Поделиться через


структура DWRITE_SCRIPT_PROPERTIES (dwrite_1.h)

Структура DWRITE_SCRIPT_PROPERTIES задает свойства скрипта для навигации по курсору и обоснования.

Синтаксис

struct DWRITE_SCRIPT_PROPERTIES {
  UINT32 isoScriptCode;
  UINT32 isoScriptNumber;
  UINT32 clusterLookahead;
  UINT32 justificationCharacter;
  UINT32 restrictCaretToClusters : 1;
  UINT32 usesWordDividers : 1;
  UINT32 isDiscreteWriting : 1;
  UINT32 isBlockWriting : 1;
  UINT32 isDistributedWithinCluster : 1;
  UINT32 isConnectedWriting : 1;
  UINT32 isCursiveWriting : 1;
  UINT32 reserved : 25;
};

Члены

isoScriptCode

Стандартизированный код четырех символов для данного скрипта.

Примечание К ним относятся только общие скрипты Юникода, а не какие-либо дополнительные скрипты ISO 15924 для библиографического различия.
 

isoScriptNumber

Стандартизированный числовой код в диапазоне от 0 до 999.

clusterLookahead

Количество символов для оценки прогноза сложных скриптов. Латынь и все кана, как правило, 1. Индийские скрипты до 15, а большинство других — 8.

Примечание Объединение меток и селекторов вариантов может создавать кластеры, которые длиннее этих прогнозов, поэтому эта оценка считается типичным использованием языка. Диакритические знаки должны проверяться явным образом отдельно.
 

justificationCharacter

Соответствующий символ для удлиняния заданного скрипта для обоснования. Пример:

  • Арабский — U+0640 Tatweel
  • Ogham - U+1680 Ogham Space Mark

restrictCaretToClusters

Ограничьте курсор целыми кластерами, такими как тайский и деванагари. Такие скрипты, как арабский язык, по умолчанию разрешают навигацию между кластерами. Другие, такие как тайский, всегда перемещаются по целым кластерам.

usesWordDividers

Язык использует разделители между словами, например пробелы между латинским или этиопическим пространством слов. Примеры: латинский, греческий, деванагари и этиопский. Китайский, корейский и тайский исключены.

isDiscreteWriting

Символы являются дискретными единицами друг от друга. Сюда входят как блочные, так и кластеризованные скрипты. Примеры: латинский, греческий, кириллица, иврит, китайский и тайский.

isBlockWriting

Язык представляет собой блочный скрипт, расширяющийся между символами. Например, китайский, японский, корейский и бопомофо.

isDistributedWithinCluster

Язык оправдан в кластерах глифов, а не только между кластерами глифов, такими как последовательность символов Тайский Лу и Сара Am (U+E026, U+E033), которые образуют один кластер, но по-прежнему расширяются между ними. Примеры: тайский, лаосский и кхмерский.

isConnectedWriting

Кластеры скрипта связаны друг с другом (например, связанные с базовыми показателями Devanagari), и между символами не добавляется разделение.

Примечание Кроме того, подключаются такие скрипты, как арабский язык( но не все подключенные скрипты являются cursive).
 
Примеры: Деванагари, арабский, сирийский, Бенгала, Гурмухи и Огхам. Латинский, китайский и тхаана исключаются.

isCursiveWriting

Скрипт, естественно, является cursive (арабский и сирийский), то есть он использует другие методы обоснования, такие как расширение кашида, а не межсимвийный интервал.

Примечание Хотя другие письма, такие как латинский и японский, могут на самом деле поддерживать рукописные карсивные формы, они не считаются рукописными.
 
Примеры: арабский, сирийский и монгольский. Thaana, Devanagari, latin и китайский исключены.

reserved

Зарезервировано

Требования

   
Минимальная версия клиента Windows 8 и Обновление платформы для Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [только классические приложения]
Верхняя часть dwrite_1.h

См. также раздел

IDWriteTextAnalyzer1::GetScriptProperties