2 * Copyright (c) 2007-2010 SlimDX Group
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
30 // NOTE: The enumerations defined in this file are in alphabetical order. When
31 // adding new enumerations or renaming existing ones, please make sure
32 // the ordering is maintained.
35 /// Indicates the condition at the edges of inline objects or text used to determine line-breaking behavior.
37 public enum class BreakCondition : System::Int32
39 Neutral = DWRITE_BREAK_CONDITION_NEUTRAL,
40 CanBreak = DWRITE_BREAK_CONDITION_CAN_BREAK,
41 MayNotBreak = DWRITE_BREAK_CONDITION_MAY_NOT_BREAK,
42 MustBreak = DWRITE_BREAK_CONDITION_MUST_BREAK
46 /// Specifies the type of the DirectWrite factory object.
48 public enum class FactoryType : System::Int32
50 Shared = DWRITE_FACTORY_TYPE_SHARED,
51 Isolated = DWRITE_FACTORY_TYPE_ISOLATED
55 /// Indicates the direction of flow for placing lines of text in a paragraph.
57 public enum class FlowDirection : System::Int32
59 TopToBottom = DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM
63 /// Indicates the file format of a font face.
65 public enum class FontFaceType : System::Int32
67 Cff = DWRITE_FONT_FACE_TYPE_CFF,
68 TrueType = DWRITE_FONT_FACE_TYPE_TRUETYPE,
69 TrueTypeCollection = DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION,
70 Type1 = DWRITE_FONT_FACE_TYPE_TYPE1,
71 Vector = DWRITE_FONT_FACE_TYPE_VECTOR,
72 Bitmap = DWRITE_FONT_FACE_TYPE_BITMAP,
73 Unknown = DWRITE_FONT_FACE_TYPE_UNKNOWN
77 /// Indicates the typographic feature of text supplied by the font.
79 public enum class FontFeatureTag : System::Int32
81 AlternativeFractions = DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS,
82 PetiteCapitalsFromCapitals = DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS,
83 SmallCapitalsFromCapitals = DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS,
84 ContextualAlternates = DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES,
85 CaseSensitiveForms = DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS,
86 GlyphComposition = DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION,
87 ContextualLigatures = DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES,
88 CapitalSpacing = DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING,
89 ContextualSwash = DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH,
90 CursivePositioning = DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING,
91 Default = DWRITE_FONT_FEATURE_TAG_DEFAULT,
92 DiscretionaryLigatures = DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES,
93 ExpertForms = DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS,
94 Fractions = DWRITE_FONT_FEATURE_TAG_FRACTIONS,
95 FullWidth = DWRITE_FONT_FEATURE_TAG_FULL_WIDTH,
96 HalfForms = DWRITE_FONT_FEATURE_TAG_HALF_FORMS,
97 HalantForms = DWRITE_FONT_FEATURE_TAG_HALANT_FORMS,
98 AlternateHalfWidth = DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH,
99 HistoricalForms = DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS,
100 HorizontalKanaAlternates = DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES,
101 HistoricalLigatures = DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES,
102 HalfWidth = DWRITE_FONT_FEATURE_TAG_HALF_WIDTH,
103 HojoKanjiForms = DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS,
104 JIS04Forms = DWRITE_FONT_FEATURE_TAG_JIS04_FORMS,
105 JIS78Forms = DWRITE_FONT_FEATURE_TAG_JIS78_FORMS,
106 JIS83Forms = DWRITE_FONT_FEATURE_TAG_JIS83_FORMS,
107 JIS90Forms = DWRITE_FONT_FEATURE_TAG_JIS90_FORMS,
108 Kerning = DWRITE_FONT_FEATURE_TAG_KERNING,
109 StandardLigatures = DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES,
110 LiningFigures = DWRITE_FONT_FEATURE_TAG_LINING_FIGURES,
111 LocalizedForms = DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS,
112 MarkPositioning = DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING,
113 MathematicalGreek = DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK,
114 MarkToMarkPositioning = DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING,
115 AlternateAnnotationForms = DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS,
116 NlcKanjiForms = DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS,
117 OldStyleFigures = DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES,
118 Ordinals = DWRITE_FONT_FEATURE_TAG_ORDINALS,
119 ProportionalAlternateWidth = DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH,
120 PetiteCapitals = DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS,
121 ProportionalFigures = DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES,
122 ProportionalWidths = DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS,
123 QuarterWidths = DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS,
124 RequiredLigatures = DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES,
125 RubyNotationForms = DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS,
126 StylisticAlternates = DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES,
127 ScientificInferiors = DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS,
128 SmallCapitals = DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS,
129 SimplifiedForms = DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS,
130 StylisticSet1 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1,
131 StylisticSet2 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2,
132 StylisticSet3 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3,
133 StylisticSet4 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4,
134 StylisticSet5 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5,
135 StylisticSet6 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6,
136 StylisticSet7 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7,
137 StylisticSet8 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8,
138 StylisticSet9 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9,
139 StylisticSet10 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10,
140 StylisticSet11 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11,
141 StylisticSet12 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12,
142 StylisticSet13 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13,
143 StylisticSet14 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14,
144 StylisticSet15 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15,
145 StylisticSet16 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16,
146 StylisticSet17 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17,
147 StylisticSet18 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18,
148 StylisticSet19 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19,
149 StylisticSet20 = DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20,
150 Subscript = DWRITE_FONT_FEATURE_TAG_SUBSCRIPT,
151 Superscript = DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT,
152 Swash = DWRITE_FONT_FEATURE_TAG_SWASH,
153 Titling = DWRITE_FONT_FEATURE_TAG_TITLING,
154 TraditionalNameForms = DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS,
155 TabularFigures = DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES,
156 TraditionalForms = DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS,
157 ThirdWidths = DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS,
158 Unicase = DWRITE_FONT_FEATURE_TAG_UNICASE,
159 SlashedZero = DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO
163 /// The type of font represented by a single font file.
165 public enum class FontFileType : System::Int32
167 Unknown = DWRITE_FONT_FILE_TYPE_UNKNOWN,
168 Cff = DWRITE_FONT_FILE_TYPE_CFF,
169 TrueType = DWRITE_FONT_FILE_TYPE_TRUETYPE,
170 TrueTypeCollection = DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION,
171 Type1Pfm = DWRITE_FONT_FILE_TYPE_TYPE1_PFM,
172 Type1Pfb = DWRITE_FONT_FILE_TYPE_TYPE1_PFB,
173 Vector = DWRITE_FONT_FILE_TYPE_VECTOR,
174 Bitmap = DWRITE_FONT_FILE_TYPE_BITMAP,
178 /// Specifies algorithmic style simulations to be applied to the font face.
181 public enum class FontSimulations : System::Int32
183 None = DWRITE_FONT_SIMULATIONS_NONE,
184 Bold = DWRITE_FONT_SIMULATIONS_BOLD,
185 Oblique = DWRITE_FONT_SIMULATIONS_OBLIQUE,
189 /// Represents the degree to which a font has been stretched compared to a font's normal aspect ratio.
191 public enum class FontStretch : System::Int32
193 Undefined = DWRITE_FONT_STRETCH_UNDEFINED,
194 UltraCondensed = DWRITE_FONT_STRETCH_ULTRA_CONDENSED,
195 ExtraCondensed = DWRITE_FONT_STRETCH_EXTRA_CONDENSED,
196 Condensed = DWRITE_FONT_STRETCH_CONDENSED,
197 SemiCondensed = DWRITE_FONT_STRETCH_SEMI_CONDENSED,
198 Normal = DWRITE_FONT_STRETCH_NORMAL,
199 Medium = DWRITE_FONT_STRETCH_MEDIUM,
200 SemiExpanded = DWRITE_FONT_STRETCH_SEMI_EXPANDED,
201 Expanded = DWRITE_FONT_STRETCH_EXPANDED,
202 ExtraExpanded = DWRITE_FONT_STRETCH_EXTRA_EXPANDED,
203 UltraExpanded = DWRITE_FONT_STRETCH_ULTRA_EXPANDED
207 /// Represents the style of a font face as normal, italic, or oblique.
209 public enum class FontStyle : System::Int32
211 Normal = DWRITE_FONT_STYLE_NORMAL,
212 Oblique = DWRITE_FONT_STYLE_OBLIQUE,
213 Italic = DWRITE_FONT_STYLE_ITALIC
217 /// Describes common values for degree of blackness, or thickness of strokes of characters in a font.
219 public enum class FontWeight : System::Int32
221 Thin = DWRITE_FONT_WEIGHT_THIN,
222 ExtraLight = DWRITE_FONT_WEIGHT_EXTRA_LIGHT,
223 UltraLight = DWRITE_FONT_WEIGHT_ULTRA_LIGHT,
224 Light = DWRITE_FONT_WEIGHT_LIGHT,
225 Normal = DWRITE_FONT_WEIGHT_NORMAL,
226 Regular = DWRITE_FONT_WEIGHT_REGULAR,
227 Medium = DWRITE_FONT_WEIGHT_MEDIUM,
228 DemiBold = DWRITE_FONT_WEIGHT_DEMI_BOLD,
229 SemiBold = DWRITE_FONT_WEIGHT_SEMI_BOLD,
230 Bold = DWRITE_FONT_WEIGHT_BOLD,
231 ExtraBold = DWRITE_FONT_WEIGHT_EXTRA_BOLD,
232 UltraBold = DWRITE_FONT_WEIGHT_ULTRA_BOLD,
233 Black = DWRITE_FONT_WEIGHT_BLACK,
234 Heavy = DWRITE_FONT_WEIGHT_HEAVY,
235 ExtraBlack = DWRITE_FONT_WEIGHT_EXTRA_BLACK,
236 UltraBlack = DWRITE_FONT_WEIGHT_ULTRA_BLACK
240 /// The informational string enumeration which identifies a string embedded in a font file.
242 public enum class InformationalStringId : System::Int32
244 None = DWRITE_INFORMATIONAL_STRING_NONE,
245 CopyrightNotice = DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE,
246 VersionStrings = DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS,
247 Trademark = DWRITE_INFORMATIONAL_STRING_TRADEMARK,
248 Manufacturer = DWRITE_INFORMATIONAL_STRING_MANUFACTURER,
249 Designer = DWRITE_INFORMATIONAL_STRING_DESIGNER,
250 DesignerUrl = DWRITE_INFORMATIONAL_STRING_DESIGNER_URL,
251 Description = DWRITE_INFORMATIONAL_STRING_DESCRIPTION,
252 FontVendorUrl = DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL,
253 LicenseDescription = DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION,
254 LicenseInfoUrl = DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL,
255 Win32FamilyNames = DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES,
256 Win32SubfamilyNames = DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES,
257 PreferredFamilyNames = DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES,
258 PreferredSubfamilyNames = DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES,
259 SampleText = DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT
263 /// The method used for line spacing in a text layout.
265 public enum class LineSpacingMethod : System::Int32
267 Default = DWRITE_LINE_SPACING_METHOD_DEFAULT,
268 Uniform = DWRITE_LINE_SPACING_METHOD_UNIFORM
271 public enum class MeasuringMode : System::Int32
273 Natural = DWRITE_MEASURING_MODE_NATURAL,
274 GdiClassic = DWRITE_MEASURING_MODE_GDI_CLASSIC,
275 GdiNatural = DWRITE_MEASURING_MODE_GDI_NATURAL
279 /// Specifies how to apply number substitution on digits and related punctuation.
281 public enum class NumberSubstitutionMethod : System::Int32
283 FromCulture = DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE,
284 Contextual = DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL,
285 None = DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE,
286 National = DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL,
287 Traditional = DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL
291 /// Specifies alignment of paragraph text along the flow direction axis, relative to the flow's beginning and trailing edge of the layout box.
293 public enum class ParagraphAlignment : System::Int32
295 Near = DWRITE_PARAGRAPH_ALIGNMENT_NEAR,
296 Far = DWRITE_PARAGRAPH_ALIGNMENT_FAR,
297 Center = DWRITE_PARAGRAPH_ALIGNMENT_CENTER
301 /// Represents the internal structure of a device pixel (that is the physical arrangement of red, green,
302 /// and blue color components) that is assumed for purposes of rendering text.
304 public enum class PixelGeometry : System::Int32
306 Flat = DWRITE_PIXEL_GEOMETRY_FLAT,
307 Rgb = DWRITE_PIXEL_GEOMETRY_RGB,
308 Bgr = DWRITE_PIXEL_GEOMETRY_BGR
312 /// Specifies the direction in which reading progresses.
314 public enum class ReadingDirection : System::Int32
316 LeftToRight = DWRITE_READING_DIRECTION_LEFT_TO_RIGHT,
317 RightToLeft = DWRITE_READING_DIRECTION_RIGHT_TO_LEFT
321 /// Represents a method of rendering glyphs.
323 public enum class RenderingMode : System::Int32
325 Default = DWRITE_RENDERING_MODE_DEFAULT,
326 Aliased = DWRITE_RENDERING_MODE_ALIASED,
327 ClearTypeGdiClassic = DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
328 ClearTypeGdiNatural = DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL,
329 ClearTypeNatural = DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL,
330 ClearTypeNaturalSymmetric = DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC,
331 Outline = DWRITE_RENDERING_MODE_OUTLINE
335 /// Indicates additional shaping requirements for text.
337 public enum class ScriptShapes : System::Int32
339 Default = DWRITE_SCRIPT_SHAPES_DEFAULT,
340 NoVisual = DWRITE_SCRIPT_SHAPES_NO_VISUAL
344 /// Specifies alignment of paragraph text along the reading direction axis relative to the leading and trailing edge of the layout box.
346 public enum class TextAlignment : System::Int32
348 Leading = DWRITE_TEXT_ALIGNMENT_LEADING,
349 Trailing = DWRITE_TEXT_ALIGNMENT_TRAILING,
350 Center = DWRITE_TEXT_ALIGNMENT_CENTER
353 public enum class TextureType : System::Int32
355 Aliased1x1 = DWRITE_TEXTURE_ALIASED_1x1,
356 ClearType3x1 = DWRITE_TEXTURE_CLEARTYPE_3x1
360 /// Specifies the measuring method used for text layout.
362 public enum class MeasuringMethod : System::Int32
364 Natural = DWRITE_MEASURING_MODE_NATURAL,
365 GdiClassic = DWRITE_MEASURING_MODE_GDI_CLASSIC,
366 GdiNatural = DWRITE_MEASURING_MODE_GDI_NATURAL,
370 /// Specifies the text granularity used to trim text overflowing the layout box.
372 public enum class TrimmingGranularity : System::Int32
374 None = DWRITE_TRIMMING_GRANULARITY_NONE,
375 Character = DWRITE_TRIMMING_GRANULARITY_CHARACTER,
376 Word = DWRITE_TRIMMING_GRANULARITY_WORD
380 /// Specifies the word wrapping to be used in a particular multiline paragraph.
382 public enum class WordWrapping : System::Int32
384 Wrap = DWRITE_WORD_WRAPPING_WRAP,
385 NoWrap = DWRITE_WORD_WRAPPING_NO_WRAP