1 /**
2 * @file gdiplusenums.h
3 * Copyright 2012, 2013 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
ObjectTypeIsValid(ObjectType type)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 */
761