blob: c989000f12df0c820fb7a0b1a26d8b94c6750a97 [file] [log] [blame]
Evan Stade48f10d42007-06-08 13:44:28 -07001/*
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
Evan Stadec7606682007-07-13 17:51:37 -070022typedef UINT GraphicsState;
Hans Leidekker5ce729a2008-11-24 10:22:51 +010023typedef UINT GraphicsContainer;
Evan Stadec7606682007-07-13 17:51:37 -070024
Evan Stade48f10d42007-06-08 13:44:28 -070025enum 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
36enum BrushType
37{
38 BrushTypeSolidColor = 0,
39 BrushTypeHatchFill = 1,
40 BrushTypeTextureFill = 2,
41 BrushTypePathGradient = 3,
42 BrushTypeLinearGradient = 4
43};
44
Evan Stade14802872007-06-21 16:15:17 -070045enum FillMode
46{
47 FillModeAlternate = 0,
48 FillModeWinding = 1
49};
50
Evan Stade68ba30f2007-07-05 18:37:52 -070051enum 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
Evan Stadee4118c12007-07-06 16:14:07 -070068enum 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
Nikolay Sivov9f25eb32008-12-03 18:22:55 +030079enum PenType
80{
81 PenTypeSolidColor = BrushTypeSolidColor,
82 PenTypeHatchFill = BrushTypeHatchFill,
83 PenTypeTextureFill = BrushTypeTextureFill,
84 PenTypePathGradient = BrushTypePathGradient,
85 PenTypeLinearGradient = BrushTypeLinearGradient,
86 PenTypeUnknown = -1
87};
88
Evan Stadebcd0eda2007-07-12 19:42:47 -070089enum LineJoin
90{
91 LineJoinMiter = 0,
92 LineJoinBevel = 1,
93 LineJoinRound = 2,
94 LineJoinMiterClipped = 3
95};
96
Evan Stade53e17d22007-07-13 17:51:13 -070097enum QualityMode
98{
99 QualityModeInvalid = -1,
100 QualityModeDefault = 0,
101 QualityModeLow = 1,
102 QualityModeHigh = 2
103};
104
105enum SmoothingMode
106{
107 SmoothingModeInvalid = QualityModeInvalid,
108 SmoothingModeDefault = QualityModeDefault,
109 SmoothingModeHighSpeed = QualityModeLow,
110 SmoothingModeHighQuality = QualityModeHigh,
111 SmoothingModeNone,
112 SmoothingModeAntiAlias
113};
114
Evan Stade60cad232007-07-13 17:51:25 -0700115enum CompositingQuality
116{
117 CompositingQualityInvalid = QualityModeInvalid,
118 CompositingQualityDefault = QualityModeDefault,
119 CompositingQualityHighSpeed = QualityModeLow,
120 CompositingQualityHighQuality = QualityModeHigh,
121 CompositingQualityGammaCorrected,
122 CompositingQualityAssumeLinear
123};
124
Evan Stadea87ce7a2007-07-13 17:51:29 -0700125enum 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
Alistair Leslie-Hughes9f0f9772008-01-30 15:46:25 +1100138enum PenAlignment
139{
140 PenAlignmentCenter = 0,
141 PenAlignmentInset = 1
142};
143
Evan Staded6bd866d2007-07-13 17:51:33 -0700144enum PixelOffsetMode
145{
146 PixelOffsetModeInvalid = QualityModeInvalid,
147 PixelOffsetModeDefault = QualityModeDefault,
148 PixelOffsetModeHighSpeed = QualityModeLow,
149 PixelOffsetModeHighQuality = QualityModeHigh,
150 PixelOffsetModeNone,
151 PixelOffsetModeHalf
152};
153
Evan Stade6893ef32007-07-16 19:44:50 -0700154enum DashCap
155{
156 DashCapFlat = 0,
157 DashCapRound = 2,
158 DashCapTriangle = 3
159};
160
Evan Stadedaf00ab2007-07-16 19:45:16 -0700161enum DashStyle
162{
163 DashStyleSolid,
164 DashStyleDash,
165 DashStyleDot,
166 DashStyleDashDot,
167 DashStyleDashDotDot,
168 DashStyleCustom
169};
170
Evan Stade12e3ead2007-07-17 19:31:15 -0700171enum MatrixOrder
172{
173 MatrixOrderPrepend = 0,
174 MatrixOrderAppend = 1
175};
176
Evan Stade8770b6e2007-07-24 17:19:12 -0700177enum ImageType
178{
179 ImageTypeUnknown,
180 ImageTypeBitmap,
181 ImageTypeMetafile
182};
183
Evan Stade5dd58252007-07-30 19:09:41 -0700184enum WrapMode
185{
186 WrapModeTile,
187 WrapModeTileFlipX,
188 WrapModeTileFlipY,
189 WrapModeTileFlipXY,
190 WrapModeClamp
191};
192
Evan Stadee91d1242007-07-31 19:15:29 -0700193enum MetafileType
194{
195 MetafileTypeInvalid,
196 MetafileTypeWmf,
197 MetafileTypeWmfPlaceable,
198 MetafileTypeEmf,
199 MetafileTypeEmfPlusOnly,
200 MetafileTypeEmfPlusDual
201};
202
Evan Staded806c672007-08-07 18:43:00 -0700203enum LinearGradientMode
204{
205 LinearGradientModeHorizontal,
206 LinearGradientModeVertical,
207 LinearGradientModeForwardDiagonal,
208 LinearGradientModeBackwardDiagonal
209};
210
Evan Stadef8b2b772007-08-09 18:25:37 -0700211enum EmfType
212{
213 EmfTypeEmfOnly = MetafileTypeEmf,
214 EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly,
215 EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
216};
217
Evan Stadee807eb92007-08-13 18:34:27 -0700218enum CompositingMode
219{
220 CompositingModeSourceOver,
221 CompositingModeSourceCopy
222};
223
Evan Stade56628202007-08-14 19:00:09 -0700224enum TextRenderingHint
225{
226 TextRenderingHintSystemDefault = 0,
227 TextRenderingHintSingleBitPerPixelGridFit,
228 TextRenderingHintSingleBitPerPixel,
229 TextRenderingHintAntiAliasGridFit,
230 TextRenderingHintAntiAlias,
231 TextRenderingHintClearTypeGridFit
232};
233
Evan Stade16dea472007-08-14 19:00:32 -0700234enum StringAlignment
235{
236 StringAlignmentNear = 0,
237 StringAlignmentCenter = 1,
238 StringAlignmentFar = 2
239};
240
Nikolay Sivov9ed8a2b2008-07-29 01:12:49 +0400241enum StringDigitSubstitute
242{
243 StringDigitSubstituteUser = 0,
244 StringDigitSubstituteNone = 1,
245 StringDigitSubstituteNational = 2,
246 StringDigitSubstituteTraditional = 3
247};
248
Evan Stade551a6062007-08-14 19:00:40 -0700249enum StringFormatFlags
250{
251 StringFormatFlagsDirectionRightToLeft = 0x00000001,
252 StringFormatFlagsDirectionVertical = 0x00000002,
253 StringFormatFlagsNoFitBlackBox = 0x00000004,
254 StringFormatFlagsDisplayFormatControl = 0x00000020,
255 StringFormatFlagsNoFontFallback = 0x00000400,
256 StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
257 StringFormatFlagsNoWrap = 0x00001000,
258 StringFormatFlagsLineLimit = 0x00002000,
259 StringFormatFlagsNoClip = 0x00004000
260};
261
262enum StringTrimming
263{
264 StringTrimmingNone = 0,
265 StringTrimmingCharacter = 1,
266 StringTrimmingWord = 2,
267 StringTrimmingEllipsisCharacter = 3,
268 StringTrimmingEllipsisWord = 4,
269 StringTrimmingEllipsisPath = 5
270};
271
Adam Petacciab0b15882008-06-21 13:02:53 -0400272enum FontStyle
273{
274 FontStyleRegular = 0,
275 FontStyleBold = 1,
276 FontStyleItalic = 2,
277 FontStyleBoldItalic = 3,
278 FontStyleUnderline = 4,
279 FontStyleStrikeout = 8
280};
281
Evan Stade936f3102007-08-14 19:00:53 -0700282enum HotkeyPrefix
283{
284 HotkeyPrefixNone = 0,
285 HotkeyPrefixShow = 1,
286 HotkeyPrefixHide = 2
287};
288
Nathan Beckmann366854a2008-03-06 01:17:00 -0800289enum ImageCodecFlags
290{
Nikolay Sivov388caf32008-05-09 16:39:13 +0400291 ImageCodecFlagsEncoder = 1,
292 ImageCodecFlagsDecoder = 2,
293 ImageCodecFlagsSupportBitmap = 4,
294 ImageCodecFlagsSupportVector = 8,
295 ImageCodecFlagsSeekableEncode = 16,
296 ImageCodecFlagsBlockingDecode = 32,
297 ImageCodecFlagsBuiltin = 65536,
298 ImageCodecFlagsSystem = 131072,
299 ImageCodecFlagsUser = 262144
300};
301
302enum ImageFlags
303{
304 ImageFlagsNone = 0,
305 ImageFlagsScalable = 0x0001,
306 ImageFlagsHasAlpha = 0x0002,
307 ImageFlagsHasTranslucent = 0x0004,
308 ImageFlagsPartiallyScalable = 0x0008,
309 ImageFlagsColorSpaceRGB = 0x0010,
310 ImageFlagsColorSpaceCMYK = 0x0020,
311 ImageFlagsColorSpaceGRAY = 0x0040,
312 ImageFlagsColorSpaceYCBCR = 0x0080,
313 ImageFlagsColorSpaceYCCK = 0x0100,
314 ImageFlagsHasRealDPI = 0x1000,
315 ImageFlagsHasRealPixelSize = 0x2000,
316 ImageFlagsReadOnly = 0x00010000,
317 ImageFlagsCaching = 0x00020000
Nathan Beckmann366854a2008-03-06 01:17:00 -0800318};
Evan Stade936f3102007-08-14 19:00:53 -0700319
Lei Zhangd9a42992008-04-08 14:44:41 -0700320enum CombineMode
321{
322 CombineModeReplace,
323 CombineModeIntersect,
324 CombineModeUnion,
325 CombineModeXor,
326 CombineModeExclude,
327 CombineModeComplement
328};
329
Nikolay Sivovf620b662008-06-18 11:33:10 +0400330enum FlushIntention
331{
332 FlushIntentionFlush = 0,
333 FlushIntentionSync = 1
334};
335
Huw Davies3ab76662008-07-10 15:26:58 +0100336enum CoordinateSpace
337{
338 CoordinateSpaceWorld,
339 CoordinateSpacePage,
340 CoordinateSpaceDevice
341};
342
Nikolay Sivovd923d782008-09-07 01:40:26 +0400343enum GpTestControlEnum
344{
345 TestControlForceBilinear = 0,
346 TestControlNoICM = 1,
347 TestControlGetBuildNumber = 2
348};
349
Alistair Leslie-Hughes4b6cc6e2008-10-03 20:56:40 +1000350enum MetafileFrameUnit
351{
352 MetafileFrameUnitPixel = UnitPixel,
353 MetafileFrameUnitPoint = UnitPoint,
354 MetafileFrameUnitInch = UnitInch,
355 MetafileFrameUnitDocument = UnitDocument,
356 MetafileFrameUnitMillimeter = UnitMillimeter,
357 MetafileFrameUnitGdi
358};
359
Chris Wulffa2a94a42009-01-10 18:45:11 -0500360enum HatchStyle
361{
362 HatchStyleHorizontal = 0,
363 HatchStyleVertical = 1,
364 HatchStyleForwardDiagonal = 2,
365 HatchStyleBackwardDiagonal = 3,
366 HatchStyleCross = 4,
367 HatchStyleDiagonalCross = 5,
368 HatchStyle05Percent = 6,
369 HatchStyle10Percent = 7,
370 HatchStyle20Percent = 8,
371 HatchStyle25Percent = 9,
372 HatchStyle30Percent = 10,
373 HatchStyle40Percent = 11,
374 HatchStyle50Percent = 12,
375 HatchStyle60Percent = 13,
376 HatchStyle70Percent = 14,
377 HatchStyle75Percent = 15,
378 HatchStyle80Percent = 16,
379 HatchStyle90Percent = 17,
380 HatchStyleLightDownwardDiagonal = 18,
381 HatchStyleLightUpwardDiagonal = 19,
382 HatchStyleDarkDownwardDiagonal = 20,
383 HatchStyleDarkUpwardDiagonal = 21,
384 HatchStyleWideDownwardDiagonal = 22,
385 HatchStyleWideUpwardDiagonal = 23,
386 HatchStyleLightVertical = 24,
387 HatchStyleLightHorizontal = 25,
388 HatchStyleNarrowVertical = 26,
389 HatchStyleNarrowHorizontal = 27,
390 HatchStyleDarkVertical = 28,
391 HatchStyleDarkHorizontal = 29,
392 HatchStyleDashedDownwardDiagonal = 30,
393 HatchStyleDashedUpwardDiagonal = 31,
394 HatchStyleDashedHorizontal = 32,
395 HatchStyleDashedVertical = 33,
396 HatchStyleSmallConfetti = 34,
397 HatchStyleLargeConfetti = 35,
398 HatchStyleZigZag = 36,
399 HatchStyleWave = 37,
400 HatchStyleDiagonalBrick = 38,
401 HatchStyleHorizontalBrick = 39,
402 HatchStyleWeave = 40,
403 HatchStylePlaid = 41,
404 HatchStyleDivot = 42,
405 HatchStyleDottedGrid = 43,
406 HatchStyleDottedDiamond = 44,
407 HatchStyleShingle = 45,
408 HatchStyleTrellis = 46,
409 HatchStyleSphere = 47,
410 HatchStyleSmallGrid = 48,
411 HatchStyleSmallCheckerBoard = 49,
412 HatchStyleLargeCheckerBoard = 50,
413 HatchStyleOutlinedDiamond = 51,
414 HatchStyleSolidDiamond = 52,
415 HatchStyleTotal = 53,
416 HatchStyleLargeGrid = HatchStyleCross,
417 HatchStyleMin = HatchStyleHorizontal,
418 HatchStyleMax = HatchStyleTotal - 1
419};
420
Evan Stade48f10d42007-06-08 13:44:28 -0700421#ifndef __cplusplus
422
423typedef enum Unit Unit;
424typedef enum BrushType BrushType;
Evan Stade14802872007-06-21 16:15:17 -0700425typedef enum FillMode FillMode;
Evan Stade68ba30f2007-07-05 18:37:52 -0700426typedef enum LineCap LineCap;
Evan Stadee4118c12007-07-06 16:14:07 -0700427typedef enum PathPointType PathPointType;
Evan Stadebcd0eda2007-07-12 19:42:47 -0700428typedef enum LineJoin LineJoin;
Evan Stade53e17d22007-07-13 17:51:13 -0700429typedef enum QualityMode QualityMode;
430typedef enum SmoothingMode SmoothingMode;
Evan Stade60cad232007-07-13 17:51:25 -0700431typedef enum CompositingQuality CompositingQuality;
Evan Stadea87ce7a2007-07-13 17:51:29 -0700432typedef enum InterpolationMode InterpolationMode;
Evan Staded6bd866d2007-07-13 17:51:33 -0700433typedef enum PixelOffsetMode PixelOffsetMode;
Evan Stade6893ef32007-07-16 19:44:50 -0700434typedef enum DashCap DashCap;
Evan Stadedaf00ab2007-07-16 19:45:16 -0700435typedef enum DashStyle DashStyle;
Evan Stade12e3ead2007-07-17 19:31:15 -0700436typedef enum MatrixOrder MatrixOrder;
Evan Stade8770b6e2007-07-24 17:19:12 -0700437typedef enum ImageType ImageType;
Nikolay Sivov388caf32008-05-09 16:39:13 +0400438typedef enum ImageFlags ImageFlags;
Evan Stade5dd58252007-07-30 19:09:41 -0700439typedef enum WrapMode WrapMode;
Evan Stadee91d1242007-07-31 19:15:29 -0700440typedef enum MetafileType MetafileType;
Evan Staded806c672007-08-07 18:43:00 -0700441typedef enum LinearGradientMode LinearGradientMode;
Evan Stadef8b2b772007-08-09 18:25:37 -0700442typedef enum EmfType EmfType;
Evan Stadee807eb92007-08-13 18:34:27 -0700443typedef enum CompositingMode CompositingMode;
Evan Stade56628202007-08-14 19:00:09 -0700444typedef enum TextRenderingHint TextRenderingHint;
Evan Stade16dea472007-08-14 19:00:32 -0700445typedef enum StringAlignment StringAlignment;
Nikolay Sivov9ed8a2b2008-07-29 01:12:49 +0400446typedef enum StringDigitSubstitute StringDigitSubstitute;
Evan Stade551a6062007-08-14 19:00:40 -0700447typedef enum StringTrimming StringTrimming;
Adam Petacciab0b15882008-06-21 13:02:53 -0400448typedef enum FontStyle FontStyle;
Evan Stade551a6062007-08-14 19:00:40 -0700449typedef enum StringFormatFlags StringFormatFlags;
Evan Stade936f3102007-08-14 19:00:53 -0700450typedef enum HotkeyPrefix HotkeyPrefix;
Alistair Leslie-Hughes9f0f9772008-01-30 15:46:25 +1100451typedef enum PenAlignment GpPenAlignment;
Nathan Beckmann366854a2008-03-06 01:17:00 -0800452typedef enum ImageCodecFlags ImageCodecFlags;
Lei Zhangd9a42992008-04-08 14:44:41 -0700453typedef enum CombineMode CombineMode;
Nikolay Sivovf620b662008-06-18 11:33:10 +0400454typedef enum FlushIntention FlushIntention;
Huw Davies3ab76662008-07-10 15:26:58 +0100455typedef enum CoordinateSpace CoordinateSpace;
Nikolay Sivovd923d782008-09-07 01:40:26 +0400456typedef enum GpTestControlEnum GpTestControlEnum;
Alistair Leslie-Hughes4b6cc6e2008-10-03 20:56:40 +1000457typedef enum MetafileFrameUnit MetafileFrameUnit;
Nikolay Sivov9f25eb32008-12-03 18:22:55 +0300458typedef enum PenType PenType;
Chris Wulffa2a94a42009-01-10 18:45:11 -0500459typedef enum HatchStyle HatchStyle;
Evan Stade48f10d42007-06-08 13:44:28 -0700460
461#endif /* end of c typedefs */
462
463#endif