OSDN Git Service

Insert removed author attribution.
[mingw/mingw-org-wsl.git] / include / gdiplus / gdiplusenums.h
1 /**
2  * @file gdiplusenums.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 /* Created by Markus Koenig <markus@stber-koenig.de> */
25 #ifndef __GDIPLUS_ENUMS_H
26 #define __GDIPLUS_ENUMS_H
27 #pragma GCC system_header
28 #include <_mingw.h>
29
30 /*
31  * GDI+ enumerations
32  */
33
34 typedef enum BrushType {
35         BrushTypeSolidColor = 0,
36         BrushTypeHatchFill = 1,
37         BrushTypeTextureFill = 2,
38         BrushTypePathGradient = 3,
39         BrushTypeLinearGradient = 4
40 } BrushType;
41
42 typedef enum CombineMode {
43         CombineModeReplace = 0,
44         CombineModeIntersect = 1,
45         CombineModeUnion = 2,
46         CombineModeXor = 3,
47         CombineModeExclude = 4,
48         CombineModeComplement = 5
49 } CombineMode;
50
51 typedef enum CompositingMode {
52         CompositingModeSourceOver = 0,
53         CompositingModeSourceCopy = 1
54 } CompositingMode;
55
56 typedef enum CompositingQuality {
57         CompositingQualityDefault = 0,
58         CompositingQualityHighSpeed = 1,
59         CompositingQualityHighQuality = 2,
60         CompositingQualityGammaCorrected = 3,
61         CompositingQualityAssumeLinear = 4
62 } CompositingQuality;
63
64 typedef enum CoordinateSpace {
65         CoordinateSpaceWorld = 0,
66         CoordinateSpacePage = 1,
67         CoordinateSpaceDevice = 2
68 } CoordinateSpace;
69
70 typedef enum CustomLineCapType {
71         CustomLineCapTypeDefault = 0,
72         CustomLineCapTypeAdjustableArrow = 1
73 } CustomLineCapType;
74
75 typedef enum DashCap {
76         DashCapFlat = 0,
77         DashCapRound = 2,
78         DashCapTriangle = 3
79 } DashCap;
80
81 typedef enum DashStyle {
82         DashStyleSolid = 0,
83         DashStyleDash = 1,
84         DashStyleDot = 2,
85         DashStyleDashDot = 3,
86         DashStyleDashDotDot = 4,
87         DashStyleCustom = 5
88 } DashStyle;
89
90 typedef enum DitherType {
91         DitherTypeNone = 0,
92         DitherTypeSolid = 1,
93         DitherTypeOrdered4x4 = 2,
94         DitherTypeOrdered8x8 = 3,
95         DitherTypeOrdered16x16 = 4,
96         DitherTypeOrdered91x91 = 5,
97         DitherTypeSpiral4x4 = 6,
98         DitherTypeSpiral8x8 = 7,
99         DitherTypeDualSpiral4x4 = 8,
100         DitherTypeDualSpiral8x8 = 9,
101         DitherTypeErrorDiffusion = 10
102 } DitherType;
103
104 typedef enum DriverStringOptions {
105         DriverStringOptionsCmapLookup = 1,
106         DriverStringOptionsVertical = 2,
107         DriverStringOptionsRealizedAdvance = 4,
108         DriverStringOptionsLimitSubpixel = 8
109 } DriverStringOptions;
110
111 #define GDIP_WMF_RECORD_TO_EMFPLUS(meta) ((meta) | 0x10000)
112 #define GDIP_EMFPLUS_RECORD_BASE (0x4000)
113 typedef enum EmfPlusRecordType {
114         WmfRecordTypeSetBkColor                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR),
115         WmfRecordTypeSetBkMode                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE),
116         WmfRecordTypeSetMapMode                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPMODE),
117         WmfRecordTypeSetROP2                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETROP2),
118         WmfRecordTypeSetRelAbs                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETRELABS),
119         WmfRecordTypeSetPolyFillMode               = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPOLYFILLMODE),
120         WmfRecordTypeSetStretchBltMode             = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE),
121         WmfRecordTypeSetTextCharExtra              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA),
122         WmfRecordTypeSetTextColor                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR),
123         WmfRecordTypeSetTextJustification          = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION),
124         WmfRecordTypeSetWindowOrg                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG),
125         WmfRecordTypeSetWindowExt                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT),
126         WmfRecordTypeSetViewportOrg                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG),
127         WmfRecordTypeSetViewportExt                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTEXT),
128         WmfRecordTypeOffsetWindowOrg               = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETWINDOWORG),
129         WmfRecordTypeScaleWindowExt                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEWINDOWEXT),
130         WmfRecordTypeOffsetViewportOrg             = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETVIEWPORTORG),
131         WmfRecordTypeScaleViewportExt              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SCALEVIEWPORTEXT),
132         WmfRecordTypeLineTo                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_LINETO),
133         WmfRecordTypeMoveTo                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_MOVETO),
134         WmfRecordTypeExcludeClipRect               = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXCLUDECLIPRECT),
135         WmfRecordTypeIntersectClipRect             = GDIP_WMF_RECORD_TO_EMFPLUS(META_INTERSECTCLIPRECT),
136         WmfRecordTypeArc                           = GDIP_WMF_RECORD_TO_EMFPLUS(META_ARC),
137         WmfRecordTypeEllipse                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_ELLIPSE),
138         WmfRecordTypeFloodFill                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_FLOODFILL),
139         WmfRecordTypePie                           = GDIP_WMF_RECORD_TO_EMFPLUS(META_PIE),
140         WmfRecordTypeRectangle                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_RECTANGLE),
141         WmfRecordTypeRoundRect                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_ROUNDRECT),
142         WmfRecordTypePatBlt                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_PATBLT),
143         WmfRecordTypeSaveDC                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_SAVEDC),
144         WmfRecordTypeSetPixel                      = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPIXEL),
145         WmfRecordTypeOffsetClipRgn                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_OFFSETCLIPRGN),
146         WmfRecordTypeTextOut                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_TEXTOUT),
147         WmfRecordTypeBitBlt                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_BITBLT),
148         WmfRecordTypeStretchBlt                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHBLT),
149         WmfRecordTypePolygon                       = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYGON),
150         WmfRecordTypePolyline                      = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYLINE),
151         WmfRecordTypeEscape                        = GDIP_WMF_RECORD_TO_EMFPLUS(META_ESCAPE),
152         WmfRecordTypeRestoreDC                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESTOREDC),
153         WmfRecordTypeFillRegion                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_FILLREGION),
154         WmfRecordTypeFrameRegion                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_FRAMEREGION),
155         WmfRecordTypeInvertRegion                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_INVERTREGION),
156         WmfRecordTypePaintRegion                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_PAINTREGION),
157         WmfRecordTypeSelectClipRegion              = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTCLIPREGION),
158         WmfRecordTypeSelectObject                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTOBJECT),
159         WmfRecordTypeSetTextAlign                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTALIGN),
160         WmfRecordTypeDrawText                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x062F),
161         WmfRecordTypeChord                         = GDIP_WMF_RECORD_TO_EMFPLUS(META_CHORD),
162         WmfRecordTypeSetMapperFlags                = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETMAPPERFLAGS),
163         WmfRecordTypeExtTextOut                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTTEXTOUT),
164         WmfRecordTypeSetDIBToDev                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETDIBTODEV),
165         WmfRecordTypeSelectPalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SELECTPALETTE),
166         WmfRecordTypeRealizePalette                = GDIP_WMF_RECORD_TO_EMFPLUS(META_REALIZEPALETTE),
167         WmfRecordTypeAnimatePalette                = GDIP_WMF_RECORD_TO_EMFPLUS(META_ANIMATEPALETTE),
168         WmfRecordTypeSetPalEntries                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETPALENTRIES),
169         WmfRecordTypePolyPolygon                   = GDIP_WMF_RECORD_TO_EMFPLUS(META_POLYPOLYGON),
170         WmfRecordTypeResizePalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE),
171         WmfRecordTypeDIBBitBlt                     = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT),
172         WmfRecordTypeDIBStretchBlt                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT),
173         WmfRecordTypeDIBCreatePatternBrush         = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH),
174         WmfRecordTypeStretchDIB                    = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB),
175         WmfRecordTypeExtFloodFill                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL),
176         WmfRecordTypeSetLayout                     = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149),
177         WmfRecordTypeResetDC                       = GDIP_WMF_RECORD_TO_EMFPLUS(0x014C),
178         WmfRecordTypeStartDoc                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x014D),
179         WmfRecordTypeStartPage                     = GDIP_WMF_RECORD_TO_EMFPLUS(0x004F),
180         WmfRecordTypeEndPage                       = GDIP_WMF_RECORD_TO_EMFPLUS(0x0050),
181         WmfRecordTypeAbortDoc                      = GDIP_WMF_RECORD_TO_EMFPLUS(0x0052),
182         WmfRecordTypeEndDoc                        = GDIP_WMF_RECORD_TO_EMFPLUS(0x005E),
183         WmfRecordTypeDeleteObject                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_DELETEOBJECT),
184         WmfRecordTypeCreatePalette                 = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPALETTE),
185         WmfRecordTypeCreateBrush                   = GDIP_WMF_RECORD_TO_EMFPLUS(0x00F8),
186         WmfRecordTypeCreatePatternBrush            = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH),
187         WmfRecordTypeCreatePenIndirect             = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT),
188         WmfRecordTypeCreateFontIndirect            = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT),
189         WmfRecordTypeCreateBrushIndirect           = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT),
190         WmfRecordTypeCreateBitmapIndirect          = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD),
191         WmfRecordTypeCreateBitmap                  = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE),
192         WmfRecordTypeCreateRegion                  = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION),
193         EmfRecordTypeHeader                        = EMR_HEADER,
194         EmfRecordTypePolyBezier                    = EMR_POLYBEZIER,
195         EmfRecordTypePolygon                       = EMR_POLYGON,
196         EmfRecordTypePolyline                      = EMR_POLYLINE,
197         EmfRecordTypePolyBezierTo                  = EMR_POLYBEZIERTO,
198         EmfRecordTypePolyLineTo                    = EMR_POLYLINETO,
199         EmfRecordTypePolyPolyline                  = EMR_POLYPOLYLINE,
200         EmfRecordTypePolyPolygon                   = EMR_POLYPOLYGON,
201         EmfRecordTypeSetWindowExtEx                = EMR_SETWINDOWEXTEX,
202         EmfRecordTypeSetWindowOrgEx                = EMR_SETWINDOWORGEX,
203         EmfRecordTypeSetViewportExtEx              = EMR_SETVIEWPORTEXTEX,
204         EmfRecordTypeSetViewportOrgEx              = EMR_SETVIEWPORTORGEX,
205         EmfRecordTypeSetBrushOrgEx                 = EMR_SETBRUSHORGEX,
206         EmfRecordTypeEOF                           = EMR_EOF,
207         EmfRecordTypeSetPixelV                     = EMR_SETPIXELV,
208         EmfRecordTypeSetMapperFlags                = EMR_SETMAPPERFLAGS,
209         EmfRecordTypeSetMapMode                    = EMR_SETMAPMODE,
210         EmfRecordTypeSetBkMode                     = EMR_SETBKMODE,
211         EmfRecordTypeSetPolyFillMode               = EMR_SETPOLYFILLMODE,
212         EmfRecordTypeSetROP2                       = EMR_SETROP2,
213         EmfRecordTypeSetStretchBltMode             = EMR_SETSTRETCHBLTMODE,
214         EmfRecordTypeSetTextAlign                  = EMR_SETTEXTALIGN,
215         EmfRecordTypeSetColorAdjustment            = EMR_SETCOLORADJUSTMENT,
216         EmfRecordTypeSetTextColor                  = EMR_SETTEXTCOLOR,
217         EmfRecordTypeSetBkColor                    = EMR_SETBKCOLOR,
218         EmfRecordTypeOffsetClipRgn                 = EMR_OFFSETCLIPRGN,
219         EmfRecordTypeMoveToEx                      = EMR_MOVETOEX,
220         EmfRecordTypeSetMetaRgn                    = EMR_SETMETARGN,
221         EmfRecordTypeExcludeClipRect               = EMR_EXCLUDECLIPRECT,
222         EmfRecordTypeIntersectClipRect             = EMR_INTERSECTCLIPRECT,
223         EmfRecordTypeScaleViewportExtEx            = EMR_SCALEVIEWPORTEXTEX,
224         EmfRecordTypeScaleWindowExtEx              = EMR_SCALEWINDOWEXTEX,
225         EmfRecordTypeSaveDC                        = EMR_SAVEDC,
226         EmfRecordTypeRestoreDC                     = EMR_RESTOREDC,
227         EmfRecordTypeSetWorldTransform             = EMR_SETWORLDTRANSFORM,
228         EmfRecordTypeModifyWorldTransform          = EMR_MODIFYWORLDTRANSFORM,
229         EmfRecordTypeSelectObject                  = EMR_SELECTOBJECT,
230         EmfRecordTypeCreatePen                     = EMR_CREATEPEN,
231         EmfRecordTypeCreateBrushIndirect           = EMR_CREATEBRUSHINDIRECT,
232         EmfRecordTypeDeleteObject                  = EMR_DELETEOBJECT,
233         EmfRecordTypeAngleArc                      = EMR_ANGLEARC,
234         EmfRecordTypeEllipse                       = EMR_ELLIPSE,
235         EmfRecordTypeRectangle                     = EMR_RECTANGLE,
236         EmfRecordTypeRoundRect                     = EMR_ROUNDRECT,
237         EmfRecordTypeArc                           = EMR_ARC,
238         EmfRecordTypeChord                         = EMR_CHORD,
239         EmfRecordTypePie                           = EMR_PIE,
240         EmfRecordTypeSelectPalette                 = EMR_SELECTPALETTE,
241         EmfRecordTypeCreatePalette                 = EMR_CREATEPALETTE,
242         EmfRecordTypeSetPaletteEntries             = EMR_SETPALETTEENTRIES,
243         EmfRecordTypeResizePalette                 = EMR_RESIZEPALETTE,
244         EmfRecordTypeRealizePalette                = EMR_REALIZEPALETTE,
245         EmfRecordTypeExtFloodFill                  = EMR_EXTFLOODFILL,
246         EmfRecordTypeLineTo                        = EMR_LINETO,
247         EmfRecordTypeArcTo                         = EMR_ARCTO,
248         EmfRecordTypePolyDraw                      = EMR_POLYDRAW,
249         EmfRecordTypeSetArcDirection               = EMR_SETARCDIRECTION,
250         EmfRecordTypeSetMiterLimit                 = EMR_SETMITERLIMIT,
251         EmfRecordTypeBeginPath                     = EMR_BEGINPATH,
252         EmfRecordTypeEndPath                       = EMR_ENDPATH,
253         EmfRecordTypeCloseFigure                   = EMR_CLOSEFIGURE,
254         EmfRecordTypeFillPath                      = EMR_FILLPATH,
255         EmfRecordTypeStrokeAndFillPath             = EMR_STROKEANDFILLPATH,
256         EmfRecordTypeStrokePath                    = EMR_STROKEPATH,
257         EmfRecordTypeFlattenPath                   = EMR_FLATTENPATH,
258         EmfRecordTypeWidenPath                     = EMR_WIDENPATH,
259         EmfRecordTypeSelectClipPath                = EMR_SELECTCLIPPATH,
260         EmfRecordTypeAbortPath                     = EMR_ABORTPATH,
261         EmfRecordTypeReserved_069                  = 69,
262         EmfRecordTypeGdiComment                    = EMR_GDICOMMENT,
263         EmfRecordTypeFillRgn                       = EMR_FILLRGN,
264         EmfRecordTypeFrameRgn                      = EMR_FRAMERGN,
265         EmfRecordTypeInvertRgn                     = EMR_INVERTRGN,
266         EmfRecordTypePaintRgn                      = EMR_PAINTRGN,
267         EmfRecordTypeExtSelectClipRgn              = EMR_EXTSELECTCLIPRGN,
268         EmfRecordTypeBitBlt                        = EMR_BITBLT,
269         EmfRecordTypeStretchBlt                    = EMR_STRETCHBLT,
270         EmfRecordTypeMaskBlt                       = EMR_MASKBLT,
271         EmfRecordTypePlgBlt                        = EMR_PLGBLT,
272         EmfRecordTypeSetDIBitsToDevice             = EMR_SETDIBITSTODEVICE,
273         EmfRecordTypeStretchDIBits                 = EMR_STRETCHDIBITS,
274         EmfRecordTypeExtCreateFontIndirect         = EMR_EXTCREATEFONTINDIRECTW,
275         EmfRecordTypeExtTextOutA                   = EMR_EXTTEXTOUTA,
276         EmfRecordTypeExtTextOutW                   = EMR_EXTTEXTOUTW,
277         EmfRecordTypePolyBezier16                  = EMR_POLYBEZIER16,
278         EmfRecordTypePolygon16                     = EMR_POLYGON16,
279         EmfRecordTypePolyline16                    = EMR_POLYLINE16,
280         EmfRecordTypePolyBezierTo16                = EMR_POLYBEZIERTO16,
281         EmfRecordTypePolylineTo16                  = EMR_POLYLINETO16,
282         EmfRecordTypePolyPolyline16                = EMR_POLYPOLYLINE16,
283         EmfRecordTypePolyPolygon16                 = EMR_POLYPOLYGON16,
284         EmfRecordTypePolyDraw16                    = EMR_POLYDRAW16,
285         EmfRecordTypeCreateMonoBrush               = EMR_CREATEMONOBRUSH,
286         EmfRecordTypeCreateDIBPatternBrushPt       = EMR_CREATEDIBPATTERNBRUSHPT,
287         EmfRecordTypeExtCreatePen                  = EMR_EXTCREATEPEN,
288         EmfRecordTypePolyTextOutA                  = EMR_POLYTEXTOUTA,
289         EmfRecordTypePolyTextOutW                  = EMR_POLYTEXTOUTW,
290         EmfRecordTypeSetICMMode                    = 98,
291         EmfRecordTypeCreateColorSpace              = 99,
292         EmfRecordTypeSetColorSpace                 = 100,
293         EmfRecordTypeDeleteColorSpace              = 101,
294         EmfRecordTypeGLSRecord                     = 102,
295         EmfRecordTypeGLSBoundedRecord              = 103,
296         EmfRecordTypePixelFormat                   = 104,
297         EmfRecordTypeDrawEscape                    = 105,
298         EmfRecordTypeExtEscape                     = 106,
299         EmfRecordTypeStartDoc                      = 107,
300         EmfRecordTypeSmallTextOut                  = 108,
301         EmfRecordTypeForceUFIMapping               = 109,
302         EmfRecordTypeNamedEscape                   = 110,
303         EmfRecordTypeColorCorrectPalette           = 111,
304         EmfRecordTypeSetICMProfileA                = 112,
305         EmfRecordTypeSetICMProfileW                = 113,
306         EmfRecordTypeAlphaBlend                    = 114,
307         EmfRecordTypeSetLayout                     = 115,
308         EmfRecordTypeTransparentBlt                = 116,
309         EmfRecordTypeReserved_117                  = 117,
310         EmfRecordTypeGradientFill                  = 118,
311         EmfRecordTypeSetLinkedUFIs                 = 119,
312         EmfRecordTypeSetTextJustification          = 120,
313         EmfRecordTypeColorMatchToTargetW           = 121,
314         EmfRecordTypeCreateColorSpaceW             = 122,
315         EmfRecordTypeMax                           = 122,
316         EmfRecordTypeMin                           = 1,
317         EmfPlusRecordTypeInvalid                   = GDIP_EMFPLUS_RECORD_BASE,
318         EmfPlusRecordTypeHeader,
319         EmfPlusRecordTypeEndOfFile,
320         EmfPlusRecordTypeComment,
321         EmfPlusRecordTypeGetDC,
322         EmfPlusRecordTypeMultiFormatStart,
323         EmfPlusRecordTypeMultiFormatSection,
324         EmfPlusRecordTypeMultiFormatEnd,
325         EmfPlusRecordTypeObject,
326         EmfPlusRecordTypeClear,
327         EmfPlusRecordTypeFillRects,
328         EmfPlusRecordTypeDrawRects,
329         EmfPlusRecordTypeFillPolygon,
330         EmfPlusRecordTypeDrawLines,
331         EmfPlusRecordTypeFillEllipse,
332         EmfPlusRecordTypeDrawEllipse,
333         EmfPlusRecordTypeFillPie,
334         EmfPlusRecordTypeDrawPie,
335         EmfPlusRecordTypeDrawArc,
336         EmfPlusRecordTypeFillRegion,
337         EmfPlusRecordTypeFillPath,
338         EmfPlusRecordTypeDrawPath,
339         EmfPlusRecordTypeFillClosedCurve,
340         EmfPlusRecordTypeDrawClosedCurve,
341         EmfPlusRecordTypeDrawCurve,
342         EmfPlusRecordTypeDrawBeziers,
343         EmfPlusRecordTypeDrawImage,
344         EmfPlusRecordTypeDrawImagePoints,
345         EmfPlusRecordTypeDrawString,
346         EmfPlusRecordTypeSetRenderingOrigin,
347         EmfPlusRecordTypeSetAntiAliasMode,
348         EmfPlusRecordTypeSetTextRenderingHint,
349         EmfPlusRecordTypeSetTextContrast,
350         EmfPlusRecordTypeSetGammaValue,
351         EmfPlusRecordTypeSetInterpolationMode,
352         EmfPlusRecordTypeSetPixelOffsetMode,
353         EmfPlusRecordTypeSetCompositingMode,
354         EmfPlusRecordTypeSetCompositingQuality,
355         EmfPlusRecordTypeSave,
356         EmfPlusRecordTypeRestore,
357         EmfPlusRecordTypeBeginContainer,
358         EmfPlusRecordTypeBeginContainerNoParams,
359         EmfPlusRecordTypeEndContainer,
360         EmfPlusRecordTypeSetWorldTransform,
361         EmfPlusRecordTypeResetWorldTransform,
362         EmfPlusRecordTypeMultiplyWorldTransform,
363         EmfPlusRecordTypeTranslateWorldTransform,
364         EmfPlusRecordTypeScaleWorldTransform,
365         EmfPlusRecordTypeRotateWorldTransform,
366         EmfPlusRecordTypeSetPageTransform,
367         EmfPlusRecordTypeResetClip,
368         EmfPlusRecordTypeSetClipRect,
369         EmfPlusRecordTypeSetClipPath,
370         EmfPlusRecordTypeSetClipRegion,
371         EmfPlusRecordTypeOffsetClip,
372         EmfPlusRecordTypeDrawDriverString,
373         EmfPlusRecordTypeStrokeFillPath,
374         EmfPlusRecordTypeSerializableObject,
375         EmfPlusRecordTypeSetTSGraphics,
376         EmfPlusRecordTypeSetTSClip,
377         EmfPlusRecordTotal,
378         EmfPlusRecordTypeMax = EmfPlusRecordTotal-1,
379         EmfPlusRecordTypeMin = EmfPlusRecordTypeHeader
380 } EmfPlusRecordType;
381
382 typedef enum EmfToWmfBitsFlags {
383         EmfToWmfBitsFlagsDefault = 0,
384         EmfToWmfBitsFlagsEmbedEmf = 1,
385         EmfToWmfBitsFlagsIncludePlaceable = 2,
386         EmfToWmfBitsFlagsNoXORClip = 4
387 } EmfToWmfBitsFlags;
388
389 typedef enum EmfType {
390         EmfTypeEmfOnly = 3,
391         EmfTypeEmfPlusOnly = 4,
392         EmfTypeEmfPlusDual = 5
393 } EmfType;
394
395 typedef enum EncoderParameterValueType {
396         EncoderParameterValueTypeByte = 1,
397         EncoderParameterValueTypeASCII = 2,
398         EncoderParameterValueTypeShort = 3,
399         EncoderParameterValueTypeLong = 4,
400         EncoderParameterValueTypeRational = 5,
401         EncoderParameterValueTypeLongRange = 6,
402         EncoderParameterValueTypeUndefined = 7,
403         EncoderParameterValueTypeRationalRange = 8,
404         EncoderParameterValueTypePointer = 9
405 } EncoderParameterValueType;
406
407 typedef enum EncoderValue {
408         EncoderValueColorTypeCMYK = 0,
409         EncoderValueColorTypeYCCK = 1,
410         EncoderValueCompressionLZW = 2,
411         EncoderValueCompressionCCITT3 = 3,
412         EncoderValueCompressionCCITT4 = 4,
413         EncoderValueCompressionRle = 5,
414         EncoderValueCompressionNone = 6,
415         EncoderValueScanMethodInterlaced = 7,
416         EncoderValueScanMethodNonInterlaced = 8,
417         EncoderValueVersionGif87 = 9,
418         EncoderValueVersionGif89 = 10,
419         EncoderValueRenderProgressive = 11,
420         EncoderValueRenderNonProgressive = 12,
421         EncoderValueTransformRotate90 = 13,
422         EncoderValueTransformRotate180 = 14,
423         EncoderValueTransformRotate270 = 15,
424         EncoderValueTransformFlipHorizontal = 16,
425         EncoderValueTransformFlipVertical = 17,
426         EncoderValueMultiFrame = 18,
427         EncoderValueLastFrame = 19,
428         EncoderValueFlush = 20,
429         EncoderValueFrameDimensionTime = 21,
430         EncoderValueFrameDimensionResolution = 22,
431         EncoderValueFrameDimensionPage = 23
432 } EncoderValue;
433
434 typedef enum FillMode {
435         FillModeAlternate = 0,
436         FillModeWinding = 1
437 } FillMode;
438
439 typedef enum FlushIntention {
440         FlushIntentionFlush = 0,
441         FlushIntentionSync = 1
442 } FlushIntention;
443
444 typedef enum FontStyle {
445         FontStyleRegular = 0,
446         FontStyleBold = 1,
447         FontStyleItalic = 2,
448         FontStyleBoldItalic = 3,
449         FontStyleUnderline = 4,
450         FontStyleStrikeout = 8
451 } FontStyle;
452
453 typedef enum HatchStyle {
454         HatchStyleHorizontal = 0,
455         HatchStyleVertical = 1,
456         HatchStyleForwardDiagonal = 2,
457         HatchStyleBackwardDiagonal = 3,
458         HatchStyleCross = 4,
459         HatchStyleLargeGrid = 4,
460         HatchStyleDiagonalCross = 5,
461         HatchStyle05Percent = 6,
462         HatchStyle10Percent = 7,
463         HatchStyle20Percent = 8,
464         HatchStyle25Percent = 9,
465         HatchStyle30Percent = 10,
466         HatchStyle40Percent = 11,
467         HatchStyle50Percent = 12,
468         HatchStyle60Percent = 13,
469         HatchStyle70Percent = 14,
470         HatchStyle75Percent = 15,
471         HatchStyle80Percent = 16,
472         HatchStyle90Percent = 17,
473         HatchStyleLightDownwardDiagonal = 18,
474         HatchStyleLightUpwardDiagonal = 19,
475         HatchStyleDarkDownwardDiagonal = 20,
476         HatchStyleDarkUpwardDiagonal = 21,
477         HatchStyleWideDownwardDiagonal = 22,
478         HatchStyleWideUpwardDiagonal = 23,
479         HatchStyleLightVertical = 24,
480         HatchStyleLightHorizontal = 25,
481         HatchStyleNarrowVertical = 26,
482         HatchStyleNarrowHorizontal = 27,
483         HatchStyleDarkVertical = 28,
484         HatchStyleDarkHorizontal = 29,
485         HatchStyleDashedDownwardDiagonal = 30,
486         HatchStyleDashedUpwardDiagonal = 31,
487         HatchStyleDashedHorizontal = 32,
488         HatchStyleDashedVertical = 33,
489         HatchStyleSmallConfetti = 34,
490         HatchStyleLargeConfetti = 35,
491         HatchStyleZigZag = 36,
492         HatchStyleWave = 37,
493         HatchStyleDiagonalBrick = 38,
494         HatchStyleHorizontalBrick = 39,
495         HatchStyleWeave = 40,
496         HatchStylePlaid = 41,
497         HatchStyleDivot = 42,
498         HatchStyleDottedGrid = 43,
499         HatchStyleDottedDiamond = 44,
500         HatchStyleShingle = 45,
501         HatchStyleTrellis = 46,
502         HatchStyleSphere = 47,
503         HatchStyleSmallGrid = 48,
504         HatchStyleSmallCheckerBoard = 49,
505         HatchStyleLargeCheckerBoard = 50,
506         HatchStyleOutlinedDiamond = 51,
507         HatchStyleSolidDiamond = 52,
508         HatchStyleTotal = 53,
509         HatchStyleMin = HatchStyleHorizontal,
510         HatchStyleMax = HatchStyleTotal - 1
511 } HatchStyle;
512
513 typedef enum HotkeyPrefix {
514         HotkeyPrefixNone = 0,
515         HotkeyPrefixShow = 1,
516         HotkeyPrefixHide = 2
517 } HotkeyPrefix;
518
519 typedef enum ImageType {
520         ImageTypeUnknown = 0,
521         ImageTypeBitmap = 1,
522         ImageTypeMetafile = 2
523 } ImageType;
524
525 /* TODO: InterpolationMode */
526 typedef enum InterpolationMode {
527         /*InterpolationModeInvalid = QualityModeInvalid,*/
528         InterpolationModeDefault = 0,
529         InterpolationModeLowQuality = 1,
530         InterpolationModeHighQuality = 2,
531         InterpolationModeBilinear = 3,
532         InterpolationModeBicubic = 4,
533         InterpolationModeNearestNeighbor = 5,
534         InterpolationModeHighQualityBilinear = 6,
535         InterpolationModeHighQualityBicubic = 7
536 } InterpolationMode;
537
538 typedef enum LinearGradientMode {
539         LinearGradientModeHorizontal = 0,
540         LinearGradientModeVertical = 1,
541         LinearGradientModeForwardDiagonal = 2,
542         LinearGradientModeBackwardDiagonal = 3 
543 } LinearGradientMode;
544
545 typedef enum LineCap {
546         LineCapFlat = 0,
547         LineCapSquare = 1,
548         LineCapRound = 2,
549         LineCapTriangle = 3,
550         LineCapNoAnchor = 16,
551         LineCapSquareAnchor = 17,
552         LineCapRoundAnchor = 18,
553         LineCapDiamondAnchor = 19,
554         LineCapArrowAnchor = 20,
555         LineCapCustom = 255
556 } LineCap;
557
558 typedef enum LineJoin {
559         LineJoinMiter = 0,
560         LineJoinBevel = 1,
561         LineJoinRound = 2,
562         LineJoinMiterClipped = 3
563 } LineJoin;
564
565 typedef enum MatrixOrder {
566         MatrixOrderPrepend = 0,
567         MatrixOrderAppend = 1
568 } MatrixOrder;
569
570 typedef enum MetafileFrameUnit {
571         MetafileFrameUnitPixel = 2,
572         MetafileFrameUnitPoint = 3,
573         MetafileFrameUnitInch = 4,
574         MetafileFrameUnitDocument = 5,
575         MetafileFrameUnitMillimeter = 6,
576         MetafileFrameUnitGdi = 7
577 } MetafileFrameUnit;
578
579 typedef enum MetafileType {
580         MetafileTypeInvalid = 0,
581         MetafileTypeWmf = 1,
582         MetafileTypeWmfPlaceable = 2,
583         MetafileTypeEmf = 3,
584         MetafileTypeEmfPlusOnly = 4,
585         MetafileTypeEmfPlusDual = 5
586 } MetafileType;
587
588 typedef enum ObjectType {
589         ObjectTypeInvalid = 0,
590         ObjectTypeBrush = 1,
591         ObjectTypePen = 2,
592         ObjectTypePath = 3,
593         ObjectTypeRegion = 4,
594         ObjectTypeFont = 5,
595         ObjectTypeStringFormat = 6,
596         ObjectTypeImageAttributes = 7,
597         ObjectTypeCustomLineCap = 8,
598         ObjectTypeGraphics = 9,
599         ObjectTypeMin = ObjectTypeBrush,
600         ObjectTypeMax = ObjectTypeGraphics
601 } ObjectType;
602
603 typedef enum PathPointType {
604         PathPointTypeStart = 0x00,
605         PathPointTypeLine = 0x01,
606         PathPointTypeBezier = 0x03,
607         PathPointTypeBezier3 = 0x03,
608         PathPointTypePathTypeMask = 0x07,
609         PathPointTypePathDashMode = 0x10,
610         PathPointTypePathMarker = 0x20,
611         PathPointTypeCloseSubpath = 0x80
612 } PathPointType;
613
614 typedef enum PenAlignment {
615         PenAlignmentCenter = 0,
616         PenAlignmentInset = 1
617 } PenAlignment;
618
619 typedef enum PenType {
620         PenTypeUnknown = -1, 
621         PenTypeSolidColor = 0,
622         PenTypeHatchFill = 1,
623         PenTypeTextureFill = 2,
624         PenTypePathGradient = 3,
625         PenTypeLinearGradient = 4
626 } PenType;
627
628 /* TODO: PixelOffsetMode */
629 typedef enum PixelOffsetMode {
630         /*PixelOffsetModeInvalid = QualityModeInvalid,*/
631         PixelOffsetModeDefault = 0,
632         PixelOffsetModeHighSpeed = 1,
633         PixelOffsetModeHighQuality = 2,
634         PixelOffsetModeNone = 3,
635         PixelOffsetModeHalf = 4
636 } PixelOffsetMode;
637
638 /* TODO: QualityMode */
639 typedef enum QualityMode {
640         /*QualityModeInvalid = ?,*/
641         QualityModeDefault = 0,
642         QualityModeLow = 1,
643         QualityModeHigh = 2
644 } QualityMode;
645
646 /* TODO: SmoothingMode */
647 typedef enum SmoothingMode {
648         /*SmoothingModeInvalid = QualityModeInvalid,*/
649         SmoothingModeDefault = 0,
650         SmoothingModeHighSpeed = 1,
651         SmoothingModeHighQuality = 2,
652         SmoothingModeNone = 3,
653         SmoothingModeAntiAlias8x4 = 4,
654         SmoothingModeAntiAlias = 4,
655         SmoothingModeAntiAlias8x8 = 5
656 } SmoothingMode;
657
658 typedef enum StringAlignment {
659         StringAlignmentNear = 0,
660         StringAlignmentCenter = 1,
661         StringAlignmentFar = 2
662 } StringAlignment;
663
664 typedef enum StringDigitSubstitute {
665         StringDigitSubstituteUser = 0,
666         StringDigitSubstituteNone = 1,
667         StringDigitSubstituteNational = 2,
668         StringDigitSubstituteTraditional = 3
669 } StringDigitSubstitute;
670
671 typedef enum StringFormatFlags {
672         StringFormatFlagsDirectionRightToLeft = 0x00000001,
673         StringFormatFlagsDirectionVertical = 0x00000002,
674         StringFormatFlagsNoFitBlackBox = 0x00000004,
675         StringFormatFlagsDisplayFormatControl = 0x00000020,
676         StringFormatFlagsNoFontFallback = 0x00000400,
677         StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
678         StringFormatFlagsNoWrap = 0x00001000,
679         StringFormatFlagsLineLimit = 0x00002000,
680         StringFormatFlagsNoClip = 0x00004000
681 } StringFormatFlags;
682
683 typedef enum StringTrimming {
684         StringTrimmingNone = 0,
685         StringTrimmingCharacter = 1,
686         StringTrimmingWord = 2,
687         StringTrimmingEllipsisCharacter = 3,
688         StringTrimmingEllipsisWord = 4,
689         StringTrimmingEllipsisPath = 5
690 } StringTrimming;
691
692 typedef enum TextRenderingHint {
693         TextRenderingHintSystemDefault = 0,
694         TextRenderingHintSingleBitPerPixelGridFit = 1,
695         TextRenderingHintSingleBitPerPixel = 2,
696         TextRenderingHintAntiAliasGridFit = 3,
697         TextRenderingHintAntiAlias = 4,
698         TextRenderingHintClearTypeGridFit = 5
699 } TextRenderingHint;
700
701 typedef enum Unit {
702         UnitWorld = 0,
703         UnitDisplay = 1,
704         UnitPixel = 2,
705         UnitPoint = 3,
706         UnitInch = 4,
707         UnitDocument = 5,
708         UnitMillimeter = 6
709 } Unit;
710
711 typedef enum WarpMode {
712         WarpModePerspective = 0,
713         WarpModeBilinear = 1
714 } WarpMode;
715
716 typedef enum WrapMode {
717         WrapModeTile = 0,
718         WrapModeTileFlipX = 1,
719         WrapModeTileFlipY = 2,
720         WrapModeTileFlipXY = 3,
721         WrapModeClamp = 4
722 } WrapMode;
723
724 typedef enum GpTestControlEnum {
725         TestControlForceBilinear = 0,
726         TestControlForceNoICM = 1,
727         TestControlGetBuildNumber = 2
728 } GpTestControlEnum;
729
730 /* Opaque handles to information blocks on an internal GDI+ stack. */
731 typedef DWORD GraphicsContainer;
732 typedef DWORD GraphicsState;
733
734 /* Default flatness for GraphicsPath methods Flatten, Outline, Warp, Widen */
735 /* FIXME: Is FlatnessDefault = 0.25f correct? */
736 #ifdef __cplusplus
737 const REAL FlatnessDefault = 0.25f;
738 #else
739 #define FlatnessDefault ((REAL) 0.25f)
740 #endif
741
742 static __inline__ BOOL ObjectTypeIsValid(ObjectType type)
743 {
744         switch (type) {
745                 case ObjectTypeBrush:
746                 case ObjectTypePen:
747                 case ObjectTypePath:
748                 case ObjectTypeRegion:
749                 case ObjectTypeFont:
750                 case ObjectTypeStringFormat:
751                 case ObjectTypeImageAttributes:
752                 case ObjectTypeCustomLineCap:
753                 case ObjectTypeGraphics:
754                         return TRUE;
755                 default:
756                         return FALSE;
757         }
758 }
759
760 #endif /* __GDIPLUS_ENUMS_H */