include: Add definitions for IWICBitmapScaler.
[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 typedef UINT GraphicsContainer;
24
25 enum Unit
26 {
27     UnitWorld       = 0,
28     UnitDisplay     = 1,
29     UnitPixel       = 2,
30     UnitPoint       = 3,
31     UnitInch        = 4,
32     UnitDocument    = 5,
33     UnitMillimeter  = 6
34 };
35
36 enum BrushType
37 {
38    BrushTypeSolidColor       = 0,
39    BrushTypeHatchFill        = 1,
40    BrushTypeTextureFill      = 2,
41    BrushTypePathGradient     = 3,
42    BrushTypeLinearGradient   = 4
43 };
44
45 enum FillMode
46 {
47     FillModeAlternate   = 0,
48     FillModeWinding     = 1
49 };
50
51 enum LineCap
52 {
53     LineCapFlat             = 0x00,
54     LineCapSquare           = 0x01,
55     LineCapRound            = 0x02,
56     LineCapTriangle         = 0x03,
57
58     LineCapNoAnchor         = 0x10,
59     LineCapSquareAnchor     = 0x11,
60     LineCapRoundAnchor      = 0x12,
61     LineCapDiamondAnchor    = 0x13,
62     LineCapArrowAnchor      = 0x14,
63
64     LineCapCustom           = 0xff,
65     LineCapAnchorMask       = 0xf0
66 };
67
68 enum PathPointType{
69     PathPointTypeStart          = 0,    /* start of a figure */
70     PathPointTypeLine           = 1,
71     PathPointTypeBezier         = 3,
72     PathPointTypePathTypeMask   = 7,
73     PathPointTypePathDashMode   = 16,   /* not used */
74     PathPointTypePathMarker     = 32,
75     PathPointTypeCloseSubpath   = 128,  /* end of a closed figure */
76     PathPointTypeBezier3        = 3
77 };
78
79 enum PenType
80 {
81    PenTypeSolidColor       = BrushTypeSolidColor,
82    PenTypeHatchFill        = BrushTypeHatchFill,
83    PenTypeTextureFill      = BrushTypeTextureFill,
84    PenTypePathGradient     = BrushTypePathGradient,
85    PenTypeLinearGradient   = BrushTypeLinearGradient,
86    PenTypeUnknown          = -1
87 };
88
89 enum LineJoin
90 {
91     LineJoinMiter           = 0,
92     LineJoinBevel           = 1,
93     LineJoinRound           = 2,
94     LineJoinMiterClipped    = 3
95 };
96
97 enum QualityMode
98 {
99     QualityModeInvalid  = -1,
100     QualityModeDefault  = 0,
101     QualityModeLow      = 1,
102     QualityModeHigh     = 2
103 };
104
105 enum SmoothingMode
106 {
107     SmoothingModeInvalid     = QualityModeInvalid,
108     SmoothingModeDefault     = QualityModeDefault,
109     SmoothingModeHighSpeed   = QualityModeLow,
110     SmoothingModeHighQuality = QualityModeHigh,
111     SmoothingModeNone,
112     SmoothingModeAntiAlias
113 };
114
115 enum CompositingQuality
116 {
117     CompositingQualityInvalid          = QualityModeInvalid,
118     CompositingQualityDefault          = QualityModeDefault,
119     CompositingQualityHighSpeed        = QualityModeLow,
120     CompositingQualityHighQuality      = QualityModeHigh,
121     CompositingQualityGammaCorrected,
122     CompositingQualityAssumeLinear
123 };
124
125 enum InterpolationMode
126 {
127     InterpolationModeInvalid        = QualityModeInvalid,
128     InterpolationModeDefault        = QualityModeDefault,
129     InterpolationModeLowQuality     = QualityModeLow,
130     InterpolationModeHighQuality    = QualityModeHigh,
131     InterpolationModeBilinear,
132     InterpolationModeBicubic,
133     InterpolationModeNearestNeighbor,
134     InterpolationModeHighQualityBilinear,
135     InterpolationModeHighQualityBicubic
136 };
137
138 enum PenAlignment
139 {
140     PenAlignmentCenter   = 0,
141     PenAlignmentInset    = 1
142 };
143
144 enum PixelOffsetMode
145 {
146     PixelOffsetModeInvalid     = QualityModeInvalid,
147     PixelOffsetModeDefault     = QualityModeDefault,
148     PixelOffsetModeHighSpeed   = QualityModeLow,
149     PixelOffsetModeHighQuality = QualityModeHigh,
150     PixelOffsetModeNone,
151     PixelOffsetModeHalf
152 };
153
154 enum DashCap
155 {
156     DashCapFlat     = 0,
157     DashCapRound    = 2,
158     DashCapTriangle = 3
159 };
160
161 enum DashStyle
162 {
163     DashStyleSolid,
164     DashStyleDash,
165     DashStyleDot,
166     DashStyleDashDot,
167     DashStyleDashDotDot,
168     DashStyleCustom
169 };
170
171 enum MatrixOrder
172 {
173     MatrixOrderPrepend = 0,
174     MatrixOrderAppend  = 1
175 };
176
177 enum ImageType
178 {
179     ImageTypeUnknown,
180     ImageTypeBitmap,
181     ImageTypeMetafile
182 };
183
184 enum WarpMode {
185     WarpModePerspective,
186     WarpModeBilinear
187 };
188
189 enum WrapMode
190 {
191     WrapModeTile,
192     WrapModeTileFlipX,
193     WrapModeTileFlipY,
194     WrapModeTileFlipXY,
195     WrapModeClamp
196 };
197
198 enum MetafileType
199 {
200     MetafileTypeInvalid,
201     MetafileTypeWmf,
202     MetafileTypeWmfPlaceable,
203     MetafileTypeEmf,
204     MetafileTypeEmfPlusOnly,
205     MetafileTypeEmfPlusDual
206 };
207
208 enum LinearGradientMode
209 {
210     LinearGradientModeHorizontal,
211     LinearGradientModeVertical,
212     LinearGradientModeForwardDiagonal,
213     LinearGradientModeBackwardDiagonal
214 };
215
216 enum EmfType
217 {
218     EmfTypeEmfOnly     = MetafileTypeEmf,
219     EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly,
220     EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
221 };
222
223 enum CompositingMode
224 {
225     CompositingModeSourceOver,
226     CompositingModeSourceCopy
227 };
228
229 enum TextRenderingHint
230 {
231     TextRenderingHintSystemDefault = 0,
232     TextRenderingHintSingleBitPerPixelGridFit,
233     TextRenderingHintSingleBitPerPixel,
234     TextRenderingHintAntiAliasGridFit,
235     TextRenderingHintAntiAlias,
236     TextRenderingHintClearTypeGridFit
237 };
238
239 enum StringAlignment
240 {
241     StringAlignmentNear    = 0,
242     StringAlignmentCenter  = 1,
243     StringAlignmentFar     = 2
244 };
245
246 enum  StringDigitSubstitute
247 {
248     StringDigitSubstituteUser        = 0,
249     StringDigitSubstituteNone        = 1,
250     StringDigitSubstituteNational    = 2,
251     StringDigitSubstituteTraditional = 3
252 };
253
254 enum StringFormatFlags
255 {
256     StringFormatFlagsDirectionRightToLeft  = 0x00000001,
257     StringFormatFlagsDirectionVertical     = 0x00000002,
258     StringFormatFlagsNoFitBlackBox         = 0x00000004,
259     StringFormatFlagsDisplayFormatControl  = 0x00000020,
260     StringFormatFlagsNoFontFallback        = 0x00000400,
261     StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
262     StringFormatFlagsNoWrap                = 0x00001000,
263     StringFormatFlagsLineLimit             = 0x00002000,
264     StringFormatFlagsNoClip                = 0x00004000
265 };
266
267 enum StringTrimming
268 {
269     StringTrimmingNone                 = 0,
270     StringTrimmingCharacter            = 1,
271     StringTrimmingWord                 = 2,
272     StringTrimmingEllipsisCharacter    = 3,
273     StringTrimmingEllipsisWord         = 4,
274     StringTrimmingEllipsisPath         = 5
275 };
276
277 enum FontStyle
278 {
279     FontStyleRegular    = 0,
280     FontStyleBold       = 1,
281     FontStyleItalic     = 2,
282     FontStyleBoldItalic = 3,
283     FontStyleUnderline  = 4,
284     FontStyleStrikeout  = 8
285 };
286
287 enum HotkeyPrefix
288 {
289     HotkeyPrefixNone   = 0,
290     HotkeyPrefixShow   = 1,
291     HotkeyPrefixHide   = 2
292 };
293
294 enum PaletteFlags
295 {
296     PaletteFlagsHasAlpha        = 1,
297     PaletteFlagsGrayScale       = 2,
298     PaletteFlagsHalftone        = 4
299 };
300
301 enum ImageCodecFlags
302 {
303     ImageCodecFlagsEncoder          = 1,
304     ImageCodecFlagsDecoder          = 2,
305     ImageCodecFlagsSupportBitmap    = 4,
306     ImageCodecFlagsSupportVector    = 8,
307     ImageCodecFlagsSeekableEncode   = 16,
308     ImageCodecFlagsBlockingDecode   = 32,
309     ImageCodecFlagsBuiltin          = 65536,
310     ImageCodecFlagsSystem           = 131072,
311     ImageCodecFlagsUser             = 262144
312 };
313
314 enum ImageFlags
315 {
316     ImageFlagsNone              = 0,
317     ImageFlagsScalable          = 0x0001,
318     ImageFlagsHasAlpha          = 0x0002,
319     ImageFlagsHasTranslucent    = 0x0004,
320     ImageFlagsPartiallyScalable = 0x0008,
321     ImageFlagsColorSpaceRGB     = 0x0010,
322     ImageFlagsColorSpaceCMYK    = 0x0020,
323     ImageFlagsColorSpaceGRAY    = 0x0040,
324     ImageFlagsColorSpaceYCBCR   = 0x0080,
325     ImageFlagsColorSpaceYCCK    = 0x0100,
326     ImageFlagsHasRealDPI        = 0x1000,
327     ImageFlagsHasRealPixelSize  = 0x2000,
328     ImageFlagsReadOnly          = 0x00010000,
329     ImageFlagsCaching           = 0x00020000
330 };
331
332 enum CombineMode
333 {
334     CombineModeReplace,
335     CombineModeIntersect,
336     CombineModeUnion,
337     CombineModeXor,
338     CombineModeExclude,
339     CombineModeComplement
340 };
341
342 enum FlushIntention
343 {
344     FlushIntentionFlush = 0,
345     FlushIntentionSync  = 1
346 };
347
348 enum CoordinateSpace
349 {
350     CoordinateSpaceWorld,
351     CoordinateSpacePage,
352     CoordinateSpaceDevice
353 };
354
355 enum GpTestControlEnum
356 {
357     TestControlForceBilinear  = 0,
358     TestControlNoICM          = 1,
359     TestControlGetBuildNumber = 2
360 };
361
362 enum MetafileFrameUnit
363 {
364     MetafileFrameUnitPixel      = UnitPixel,
365     MetafileFrameUnitPoint      = UnitPoint,
366     MetafileFrameUnitInch       = UnitInch,
367     MetafileFrameUnitDocument   = UnitDocument,
368     MetafileFrameUnitMillimeter = UnitMillimeter,
369     MetafileFrameUnitGdi
370 };
371
372 enum HatchStyle
373 {
374         HatchStyleHorizontal = 0,
375         HatchStyleVertical = 1,
376         HatchStyleForwardDiagonal = 2,
377         HatchStyleBackwardDiagonal = 3,
378         HatchStyleCross = 4,
379         HatchStyleDiagonalCross = 5,
380         HatchStyle05Percent = 6,
381         HatchStyle10Percent = 7,
382         HatchStyle20Percent = 8,
383         HatchStyle25Percent = 9,
384         HatchStyle30Percent = 10,
385         HatchStyle40Percent = 11,
386         HatchStyle50Percent = 12,
387         HatchStyle60Percent = 13,
388         HatchStyle70Percent = 14,
389         HatchStyle75Percent = 15,
390         HatchStyle80Percent = 16,
391         HatchStyle90Percent = 17,
392         HatchStyleLightDownwardDiagonal = 18,
393         HatchStyleLightUpwardDiagonal = 19,
394         HatchStyleDarkDownwardDiagonal = 20,
395         HatchStyleDarkUpwardDiagonal = 21,
396         HatchStyleWideDownwardDiagonal = 22,
397         HatchStyleWideUpwardDiagonal = 23,
398         HatchStyleLightVertical = 24,
399         HatchStyleLightHorizontal = 25,
400         HatchStyleNarrowVertical = 26,
401         HatchStyleNarrowHorizontal = 27,
402         HatchStyleDarkVertical = 28,
403         HatchStyleDarkHorizontal = 29,
404         HatchStyleDashedDownwardDiagonal = 30,
405         HatchStyleDashedUpwardDiagonal = 31,
406         HatchStyleDashedHorizontal = 32,
407         HatchStyleDashedVertical = 33,
408         HatchStyleSmallConfetti = 34,
409         HatchStyleLargeConfetti = 35,
410         HatchStyleZigZag = 36,
411         HatchStyleWave = 37,
412         HatchStyleDiagonalBrick = 38,
413         HatchStyleHorizontalBrick = 39,
414         HatchStyleWeave = 40,
415         HatchStylePlaid = 41,
416         HatchStyleDivot = 42,
417         HatchStyleDottedGrid = 43,
418         HatchStyleDottedDiamond = 44,
419         HatchStyleShingle = 45,
420         HatchStyleTrellis = 46,
421         HatchStyleSphere = 47,
422         HatchStyleSmallGrid = 48,
423         HatchStyleSmallCheckerBoard = 49,
424         HatchStyleLargeCheckerBoard = 50,
425         HatchStyleOutlinedDiamond = 51,
426         HatchStyleSolidDiamond = 52,
427         HatchStyleTotal = 53,
428         HatchStyleLargeGrid = HatchStyleCross,
429         HatchStyleMin = HatchStyleHorizontal,
430         HatchStyleMax = HatchStyleTotal - 1
431 };
432
433 #ifndef __cplusplus
434
435 typedef enum Unit Unit;
436 typedef enum BrushType BrushType;
437 typedef enum FillMode FillMode;
438 typedef enum LineCap LineCap;
439 typedef enum PathPointType PathPointType;
440 typedef enum LineJoin LineJoin;
441 typedef enum QualityMode QualityMode;
442 typedef enum SmoothingMode SmoothingMode;
443 typedef enum CompositingQuality CompositingQuality;
444 typedef enum InterpolationMode InterpolationMode;
445 typedef enum PixelOffsetMode PixelOffsetMode;
446 typedef enum DashCap DashCap;
447 typedef enum DashStyle DashStyle;
448 typedef enum MatrixOrder MatrixOrder;
449 typedef enum ImageType ImageType;
450 typedef enum ImageFlags ImageFlags;
451 typedef enum WarpMode WarpMode;
452 typedef enum WrapMode WrapMode;
453 typedef enum MetafileType MetafileType;
454 typedef enum LinearGradientMode LinearGradientMode;
455 typedef enum EmfType EmfType;
456 typedef enum CompositingMode CompositingMode;
457 typedef enum TextRenderingHint TextRenderingHint;
458 typedef enum StringAlignment StringAlignment;
459 typedef enum StringDigitSubstitute StringDigitSubstitute;
460 typedef enum StringTrimming StringTrimming;
461 typedef enum FontStyle FontStyle;
462 typedef enum StringFormatFlags StringFormatFlags;
463 typedef enum HotkeyPrefix HotkeyPrefix;
464 typedef enum PenAlignment GpPenAlignment;
465 typedef enum PaletteFlags PaletteFlags;
466 typedef enum ImageCodecFlags ImageCodecFlags;
467 typedef enum CombineMode CombineMode;
468 typedef enum FlushIntention FlushIntention;
469 typedef enum CoordinateSpace CoordinateSpace;
470 typedef enum GpTestControlEnum GpTestControlEnum;
471 typedef enum MetafileFrameUnit MetafileFrameUnit;
472 typedef enum PenType PenType;
473 typedef enum HatchStyle HatchStyle;
474
475 #endif /* end of c typedefs */
476
477 #endif