gdiplus: Partially implemented GdipTestControl.
[wine] / include / gdiplusenums.h
1 /*
2  * Copyright (C) 2007 Google (Evan Stade)
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #ifndef _GDIPLUSENUMS_H
20 #define _GDIPLUSENUMS_H
21
22 typedef UINT GraphicsState;
23
24 enum Unit
25 {
26     UnitWorld       = 0,
27     UnitDisplay     = 1,
28     UnitPixel       = 2,
29     UnitPoint       = 3,
30     UnitInch        = 4,
31     UnitDocument    = 5,
32     UnitMillimeter  = 6
33 };
34
35 enum BrushType
36 {
37    BrushTypeSolidColor       = 0,
38    BrushTypeHatchFill        = 1,
39    BrushTypeTextureFill      = 2,
40    BrushTypePathGradient     = 3,
41    BrushTypeLinearGradient   = 4
42 };
43
44 enum FillMode
45 {
46     FillModeAlternate   = 0,
47     FillModeWinding     = 1
48 };
49
50 enum LineCap
51 {
52     LineCapFlat             = 0x00,
53     LineCapSquare           = 0x01,
54     LineCapRound            = 0x02,
55     LineCapTriangle         = 0x03,
56
57     LineCapNoAnchor         = 0x10,
58     LineCapSquareAnchor     = 0x11,
59     LineCapRoundAnchor      = 0x12,
60     LineCapDiamondAnchor    = 0x13,
61     LineCapArrowAnchor      = 0x14,
62
63     LineCapCustom           = 0xff,
64     LineCapAnchorMask       = 0xf0
65 };
66
67 enum PathPointType{
68     PathPointTypeStart          = 0,    /* start of a figure */
69     PathPointTypeLine           = 1,
70     PathPointTypeBezier         = 3,
71     PathPointTypePathTypeMask   = 7,
72     PathPointTypePathDashMode   = 16,   /* not used */
73     PathPointTypePathMarker     = 32,
74     PathPointTypeCloseSubpath   = 128,  /* end of a closed figure */
75     PathPointTypeBezier3        = 3
76 };
77
78 enum LineJoin
79 {
80     LineJoinMiter           = 0,
81     LineJoinBevel           = 1,
82     LineJoinRound           = 2,
83     LineJoinMiterClipped    = 3
84 };
85
86 enum QualityMode
87 {
88     QualityModeInvalid  = -1,
89     QualityModeDefault  = 0,
90     QualityModeLow      = 1,
91     QualityModeHigh     = 2
92 };
93
94 enum SmoothingMode
95 {
96     SmoothingModeInvalid     = QualityModeInvalid,
97     SmoothingModeDefault     = QualityModeDefault,
98     SmoothingModeHighSpeed   = QualityModeLow,
99     SmoothingModeHighQuality = QualityModeHigh,
100     SmoothingModeNone,
101     SmoothingModeAntiAlias
102 };
103
104 enum CompositingQuality
105 {
106     CompositingQualityInvalid          = QualityModeInvalid,
107     CompositingQualityDefault          = QualityModeDefault,
108     CompositingQualityHighSpeed        = QualityModeLow,
109     CompositingQualityHighQuality      = QualityModeHigh,
110     CompositingQualityGammaCorrected,
111     CompositingQualityAssumeLinear
112 };
113
114 enum InterpolationMode
115 {
116     InterpolationModeInvalid        = QualityModeInvalid,
117     InterpolationModeDefault        = QualityModeDefault,
118     InterpolationModeLowQuality     = QualityModeLow,
119     InterpolationModeHighQuality    = QualityModeHigh,
120     InterpolationModeBilinear,
121     InterpolationModeBicubic,
122     InterpolationModeNearestNeighbor,
123     InterpolationModeHighQualityBilinear,
124     InterpolationModeHighQualityBicubic
125 };
126
127 enum PenAlignment
128 {
129     PenAlignmentCenter   = 0,
130     PenAlignmentInset    = 1
131 };
132
133 enum PixelOffsetMode
134 {
135     PixelOffsetModeInvalid     = QualityModeInvalid,
136     PixelOffsetModeDefault     = QualityModeDefault,
137     PixelOffsetModeHighSpeed   = QualityModeLow,
138     PixelOffsetModeHighQuality = QualityModeHigh,
139     PixelOffsetModeNone,
140     PixelOffsetModeHalf
141 };
142
143 enum DashCap
144 {
145     DashCapFlat     = 0,
146     DashCapRound    = 2,
147     DashCapTriangle = 3
148 };
149
150 enum DashStyle
151 {
152     DashStyleSolid,
153     DashStyleDash,
154     DashStyleDot,
155     DashStyleDashDot,
156     DashStyleDashDotDot,
157     DashStyleCustom
158 };
159
160 enum MatrixOrder
161 {
162     MatrixOrderPrepend = 0,
163     MatrixOrderAppend  = 1
164 };
165
166 enum ImageType
167 {
168     ImageTypeUnknown,
169     ImageTypeBitmap,
170     ImageTypeMetafile
171 };
172
173 enum WrapMode
174 {
175     WrapModeTile,
176     WrapModeTileFlipX,
177     WrapModeTileFlipY,
178     WrapModeTileFlipXY,
179     WrapModeClamp
180 };
181
182 enum MetafileType
183 {
184     MetafileTypeInvalid,
185     MetafileTypeWmf,
186     MetafileTypeWmfPlaceable,
187     MetafileTypeEmf,
188     MetafileTypeEmfPlusOnly,
189     MetafileTypeEmfPlusDual
190 };
191
192 enum LinearGradientMode
193 {
194     LinearGradientModeHorizontal,
195     LinearGradientModeVertical,
196     LinearGradientModeForwardDiagonal,
197     LinearGradientModeBackwardDiagonal
198 };
199
200 enum EmfType
201 {
202     EmfTypeEmfOnly     = MetafileTypeEmf,
203     EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly,
204     EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
205 };
206
207 enum CompositingMode
208 {
209     CompositingModeSourceOver,
210     CompositingModeSourceCopy
211 };
212
213 enum TextRenderingHint
214 {
215     TextRenderingHintSystemDefault = 0,
216     TextRenderingHintSingleBitPerPixelGridFit,
217     TextRenderingHintSingleBitPerPixel,
218     TextRenderingHintAntiAliasGridFit,
219     TextRenderingHintAntiAlias,
220     TextRenderingHintClearTypeGridFit
221 };
222
223 enum StringAlignment
224 {
225     StringAlignmentNear    = 0,
226     StringAlignmentCenter  = 1,
227     StringAlignmentFar     = 2
228 };
229
230 enum  StringDigitSubstitute
231 {
232     StringDigitSubstituteUser        = 0,
233     StringDigitSubstituteNone        = 1,
234     StringDigitSubstituteNational    = 2,
235     StringDigitSubstituteTraditional = 3
236 };
237
238 enum StringFormatFlags
239 {
240     StringFormatFlagsDirectionRightToLeft  = 0x00000001,
241     StringFormatFlagsDirectionVertical     = 0x00000002,
242     StringFormatFlagsNoFitBlackBox         = 0x00000004,
243     StringFormatFlagsDisplayFormatControl  = 0x00000020,
244     StringFormatFlagsNoFontFallback        = 0x00000400,
245     StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
246     StringFormatFlagsNoWrap                = 0x00001000,
247     StringFormatFlagsLineLimit             = 0x00002000,
248     StringFormatFlagsNoClip                = 0x00004000
249 };
250
251 enum StringTrimming
252 {
253     StringTrimmingNone                 = 0,
254     StringTrimmingCharacter            = 1,
255     StringTrimmingWord                 = 2,
256     StringTrimmingEllipsisCharacter    = 3,
257     StringTrimmingEllipsisWord         = 4,
258     StringTrimmingEllipsisPath         = 5
259 };
260
261 enum FontStyle
262 {
263     FontStyleRegular    = 0,
264     FontStyleBold       = 1,
265     FontStyleItalic     = 2,
266     FontStyleBoldItalic = 3,
267     FontStyleUnderline  = 4,
268     FontStyleStrikeout  = 8
269 };
270
271 enum HotkeyPrefix
272 {
273     HotkeyPrefixNone   = 0,
274     HotkeyPrefixShow   = 1,
275     HotkeyPrefixHide   = 2
276 };
277
278 enum ImageCodecFlags
279 {
280     ImageCodecFlagsEncoder          = 1,
281     ImageCodecFlagsDecoder          = 2,
282     ImageCodecFlagsSupportBitmap    = 4,
283     ImageCodecFlagsSupportVector    = 8,
284     ImageCodecFlagsSeekableEncode   = 16,
285     ImageCodecFlagsBlockingDecode   = 32,
286     ImageCodecFlagsBuiltin          = 65536,
287     ImageCodecFlagsSystem           = 131072,
288     ImageCodecFlagsUser             = 262144
289 };
290
291 enum ImageFlags
292 {
293     ImageFlagsNone              = 0,
294     ImageFlagsScalable          = 0x0001,
295     ImageFlagsHasAlpha          = 0x0002,
296     ImageFlagsHasTranslucent    = 0x0004,
297     ImageFlagsPartiallyScalable = 0x0008,
298     ImageFlagsColorSpaceRGB     = 0x0010,
299     ImageFlagsColorSpaceCMYK    = 0x0020,
300     ImageFlagsColorSpaceGRAY    = 0x0040,
301     ImageFlagsColorSpaceYCBCR   = 0x0080,
302     ImageFlagsColorSpaceYCCK    = 0x0100,
303     ImageFlagsHasRealDPI        = 0x1000,
304     ImageFlagsHasRealPixelSize  = 0x2000,
305     ImageFlagsReadOnly          = 0x00010000,
306     ImageFlagsCaching           = 0x00020000
307 };
308
309 enum CombineMode
310 {
311     CombineModeReplace,
312     CombineModeIntersect,
313     CombineModeUnion,
314     CombineModeXor,
315     CombineModeExclude,
316     CombineModeComplement
317 };
318
319 enum FlushIntention
320 {
321     FlushIntentionFlush = 0,
322     FlushIntentionSync  = 1
323 };
324
325 enum CoordinateSpace
326 {
327     CoordinateSpaceWorld,
328     CoordinateSpacePage,
329     CoordinateSpaceDevice
330 };
331
332 enum GpTestControlEnum
333 {
334     TestControlForceBilinear  = 0,
335     TestControlNoICM          = 1,
336     TestControlGetBuildNumber = 2
337 };
338
339 #ifndef __cplusplus
340
341 typedef enum Unit Unit;
342 typedef enum BrushType BrushType;
343 typedef enum FillMode FillMode;
344 typedef enum LineCap LineCap;
345 typedef enum PathPointType PathPointType;
346 typedef enum LineJoin LineJoin;
347 typedef enum QualityMode QualityMode;
348 typedef enum SmoothingMode SmoothingMode;
349 typedef enum CompositingQuality CompositingQuality;
350 typedef enum InterpolationMode InterpolationMode;
351 typedef enum PixelOffsetMode PixelOffsetMode;
352 typedef enum DashCap DashCap;
353 typedef enum DashStyle DashStyle;
354 typedef enum MatrixOrder MatrixOrder;
355 typedef enum ImageType ImageType;
356 typedef enum ImageFlags ImageFlags;
357 typedef enum WrapMode WrapMode;
358 typedef enum MetafileType MetafileType;
359 typedef enum LinearGradientMode LinearGradientMode;
360 typedef enum EmfType EmfType;
361 typedef enum CompositingMode CompositingMode;
362 typedef enum TextRenderingHint TextRenderingHint;
363 typedef enum StringAlignment StringAlignment;
364 typedef enum StringDigitSubstitute StringDigitSubstitute;
365 typedef enum StringTrimming StringTrimming;
366 typedef enum FontStyle FontStyle;
367 typedef enum StringFormatFlags StringFormatFlags;
368 typedef enum HotkeyPrefix HotkeyPrefix;
369 typedef enum PenAlignment GpPenAlignment;
370 typedef enum ImageCodecFlags ImageCodecFlags;
371 typedef enum CombineMode CombineMode;
372 typedef enum FlushIntention FlushIntention;
373 typedef enum CoordinateSpace CoordinateSpace;
374 typedef enum GpTestControlEnum GpTestControlEnum;
375
376 #endif /* end of c typedefs */
377
378 #endif