blob: 0299f41b2b00c71d402faef6af91c77b967b8ba1 [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;
23
Evan Stade48f10d42007-06-08 13:44:28 -070024enum Unit
25{
26 UnitWorld = 0,
27 UnitDisplay = 1,
28 UnitPixel = 2,
29 UnitPoint = 3,
30 UnitInch = 4,
31 UnitDocument = 5,
32 UnitMillimeter = 6
33};
34
35enum BrushType
36{
37 BrushTypeSolidColor = 0,
38 BrushTypeHatchFill = 1,
39 BrushTypeTextureFill = 2,
40 BrushTypePathGradient = 3,
41 BrushTypeLinearGradient = 4
42};
43
Evan Stade14802872007-06-21 16:15:17 -070044enum FillMode
45{
46 FillModeAlternate = 0,
47 FillModeWinding = 1
48};
49
Evan Stade68ba30f2007-07-05 18:37:52 -070050enum LineCap
51{
52 LineCapFlat = 0x00,
53 LineCapSquare = 0x01,
54 LineCapRound = 0x02,
55 LineCapTriangle = 0x03,
56
57 LineCapNoAnchor = 0x10,
58 LineCapSquareAnchor = 0x11,
59 LineCapRoundAnchor = 0x12,
60 LineCapDiamondAnchor = 0x13,
61 LineCapArrowAnchor = 0x14,
62
63 LineCapCustom = 0xff,
64 LineCapAnchorMask = 0xf0
65};
66
Evan Stadee4118c12007-07-06 16:14:07 -070067enum PathPointType{
68 PathPointTypeStart = 0, /* start of a figure */
69 PathPointTypeLine = 1,
70 PathPointTypeBezier = 3,
71 PathPointTypePathTypeMask = 7,
72 PathPointTypePathDashMode = 16, /* not used */
73 PathPointTypePathMarker = 32,
74 PathPointTypeCloseSubpath = 128, /* end of a closed figure */
75 PathPointTypeBezier3 = 3
76};
77
Evan Stadebcd0eda2007-07-12 19:42:47 -070078enum LineJoin
79{
80 LineJoinMiter = 0,
81 LineJoinBevel = 1,
82 LineJoinRound = 2,
83 LineJoinMiterClipped = 3
84};
85
Evan Stade53e17d22007-07-13 17:51:13 -070086enum QualityMode
87{
88 QualityModeInvalid = -1,
89 QualityModeDefault = 0,
90 QualityModeLow = 1,
91 QualityModeHigh = 2
92};
93
94enum SmoothingMode
95{
96 SmoothingModeInvalid = QualityModeInvalid,
97 SmoothingModeDefault = QualityModeDefault,
98 SmoothingModeHighSpeed = QualityModeLow,
99 SmoothingModeHighQuality = QualityModeHigh,
100 SmoothingModeNone,
101 SmoothingModeAntiAlias
102};
103
Evan Stade60cad232007-07-13 17:51:25 -0700104enum CompositingQuality
105{
106 CompositingQualityInvalid = QualityModeInvalid,
107 CompositingQualityDefault = QualityModeDefault,
108 CompositingQualityHighSpeed = QualityModeLow,
109 CompositingQualityHighQuality = QualityModeHigh,
110 CompositingQualityGammaCorrected,
111 CompositingQualityAssumeLinear
112};
113
Evan Stadea87ce7a2007-07-13 17:51:29 -0700114enum InterpolationMode
115{
116 InterpolationModeInvalid = QualityModeInvalid,
117 InterpolationModeDefault = QualityModeDefault,
118 InterpolationModeLowQuality = QualityModeLow,
119 InterpolationModeHighQuality = QualityModeHigh,
120 InterpolationModeBilinear,
121 InterpolationModeBicubic,
122 InterpolationModeNearestNeighbor,
123 InterpolationModeHighQualityBilinear,
124 InterpolationModeHighQualityBicubic
125};
126
Alistair Leslie-Hughes9f0f9772008-01-30 15:46:25 +1100127enum PenAlignment
128{
129 PenAlignmentCenter = 0,
130 PenAlignmentInset = 1
131};
132
Evan Staded6bd866d2007-07-13 17:51:33 -0700133enum PixelOffsetMode
134{
135 PixelOffsetModeInvalid = QualityModeInvalid,
136 PixelOffsetModeDefault = QualityModeDefault,
137 PixelOffsetModeHighSpeed = QualityModeLow,
138 PixelOffsetModeHighQuality = QualityModeHigh,
139 PixelOffsetModeNone,
140 PixelOffsetModeHalf
141};
142
Evan Stade6893ef32007-07-16 19:44:50 -0700143enum DashCap
144{
145 DashCapFlat = 0,
146 DashCapRound = 2,
147 DashCapTriangle = 3
148};
149
Evan Stadedaf00ab2007-07-16 19:45:16 -0700150enum DashStyle
151{
152 DashStyleSolid,
153 DashStyleDash,
154 DashStyleDot,
155 DashStyleDashDot,
156 DashStyleDashDotDot,
157 DashStyleCustom
158};
159
Evan Stade12e3ead2007-07-17 19:31:15 -0700160enum MatrixOrder
161{
162 MatrixOrderPrepend = 0,
163 MatrixOrderAppend = 1
164};
165
Evan Stade8770b6e2007-07-24 17:19:12 -0700166enum ImageType
167{
168 ImageTypeUnknown,
169 ImageTypeBitmap,
170 ImageTypeMetafile
171};
172
Evan Stade5dd58252007-07-30 19:09:41 -0700173enum WrapMode
174{
175 WrapModeTile,
176 WrapModeTileFlipX,
177 WrapModeTileFlipY,
178 WrapModeTileFlipXY,
179 WrapModeClamp
180};
181
Evan Stadee91d1242007-07-31 19:15:29 -0700182enum MetafileType
183{
184 MetafileTypeInvalid,
185 MetafileTypeWmf,
186 MetafileTypeWmfPlaceable,
187 MetafileTypeEmf,
188 MetafileTypeEmfPlusOnly,
189 MetafileTypeEmfPlusDual
190};
191
Evan Staded806c672007-08-07 18:43:00 -0700192enum LinearGradientMode
193{
194 LinearGradientModeHorizontal,
195 LinearGradientModeVertical,
196 LinearGradientModeForwardDiagonal,
197 LinearGradientModeBackwardDiagonal
198};
199
Evan Stadef8b2b772007-08-09 18:25:37 -0700200enum EmfType
201{
202 EmfTypeEmfOnly = MetafileTypeEmf,
203 EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly,
204 EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
205};
206
Evan Stadee807eb92007-08-13 18:34:27 -0700207enum CompositingMode
208{
209 CompositingModeSourceOver,
210 CompositingModeSourceCopy
211};
212
Evan Stade56628202007-08-14 19:00:09 -0700213enum TextRenderingHint
214{
215 TextRenderingHintSystemDefault = 0,
216 TextRenderingHintSingleBitPerPixelGridFit,
217 TextRenderingHintSingleBitPerPixel,
218 TextRenderingHintAntiAliasGridFit,
219 TextRenderingHintAntiAlias,
220 TextRenderingHintClearTypeGridFit
221};
222
Evan Stade16dea472007-08-14 19:00:32 -0700223enum StringAlignment
224{
225 StringAlignmentNear = 0,
226 StringAlignmentCenter = 1,
227 StringAlignmentFar = 2
228};
229
Nikolay Sivov9ed8a2b2008-07-29 01:12:49 +0400230enum StringDigitSubstitute
231{
232 StringDigitSubstituteUser = 0,
233 StringDigitSubstituteNone = 1,
234 StringDigitSubstituteNational = 2,
235 StringDigitSubstituteTraditional = 3
236};
237
Evan Stade551a6062007-08-14 19:00:40 -0700238enum StringFormatFlags
239{
240 StringFormatFlagsDirectionRightToLeft = 0x00000001,
241 StringFormatFlagsDirectionVertical = 0x00000002,
242 StringFormatFlagsNoFitBlackBox = 0x00000004,
243 StringFormatFlagsDisplayFormatControl = 0x00000020,
244 StringFormatFlagsNoFontFallback = 0x00000400,
245 StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
246 StringFormatFlagsNoWrap = 0x00001000,
247 StringFormatFlagsLineLimit = 0x00002000,
248 StringFormatFlagsNoClip = 0x00004000
249};
250
251enum StringTrimming
252{
253 StringTrimmingNone = 0,
254 StringTrimmingCharacter = 1,
255 StringTrimmingWord = 2,
256 StringTrimmingEllipsisCharacter = 3,
257 StringTrimmingEllipsisWord = 4,
258 StringTrimmingEllipsisPath = 5
259};
260
Adam Petacciab0b15882008-06-21 13:02:53 -0400261enum FontStyle
262{
263 FontStyleRegular = 0,
264 FontStyleBold = 1,
265 FontStyleItalic = 2,
266 FontStyleBoldItalic = 3,
267 FontStyleUnderline = 4,
268 FontStyleStrikeout = 8
269};
270
Evan Stade936f3102007-08-14 19:00:53 -0700271enum HotkeyPrefix
272{
273 HotkeyPrefixNone = 0,
274 HotkeyPrefixShow = 1,
275 HotkeyPrefixHide = 2
276};
277
Nathan Beckmann366854a2008-03-06 01:17:00 -0800278enum ImageCodecFlags
279{
Nikolay Sivov388caf32008-05-09 16:39:13 +0400280 ImageCodecFlagsEncoder = 1,
281 ImageCodecFlagsDecoder = 2,
282 ImageCodecFlagsSupportBitmap = 4,
283 ImageCodecFlagsSupportVector = 8,
284 ImageCodecFlagsSeekableEncode = 16,
285 ImageCodecFlagsBlockingDecode = 32,
286 ImageCodecFlagsBuiltin = 65536,
287 ImageCodecFlagsSystem = 131072,
288 ImageCodecFlagsUser = 262144
289};
290
291enum ImageFlags
292{
293 ImageFlagsNone = 0,
294 ImageFlagsScalable = 0x0001,
295 ImageFlagsHasAlpha = 0x0002,
296 ImageFlagsHasTranslucent = 0x0004,
297 ImageFlagsPartiallyScalable = 0x0008,
298 ImageFlagsColorSpaceRGB = 0x0010,
299 ImageFlagsColorSpaceCMYK = 0x0020,
300 ImageFlagsColorSpaceGRAY = 0x0040,
301 ImageFlagsColorSpaceYCBCR = 0x0080,
302 ImageFlagsColorSpaceYCCK = 0x0100,
303 ImageFlagsHasRealDPI = 0x1000,
304 ImageFlagsHasRealPixelSize = 0x2000,
305 ImageFlagsReadOnly = 0x00010000,
306 ImageFlagsCaching = 0x00020000
Nathan Beckmann366854a2008-03-06 01:17:00 -0800307};
Evan Stade936f3102007-08-14 19:00:53 -0700308
Lei Zhangd9a42992008-04-08 14:44:41 -0700309enum CombineMode
310{
311 CombineModeReplace,
312 CombineModeIntersect,
313 CombineModeUnion,
314 CombineModeXor,
315 CombineModeExclude,
316 CombineModeComplement
317};
318
Nikolay Sivovf620b662008-06-18 11:33:10 +0400319enum FlushIntention
320{
321 FlushIntentionFlush = 0,
322 FlushIntentionSync = 1
323};
324
Huw Davies3ab76662008-07-10 15:26:58 +0100325enum CoordinateSpace
326{
327 CoordinateSpaceWorld,
328 CoordinateSpacePage,
329 CoordinateSpaceDevice
330};
331
Nikolay Sivovd923d782008-09-07 01:40:26 +0400332enum GpTestControlEnum
333{
334 TestControlForceBilinear = 0,
335 TestControlNoICM = 1,
336 TestControlGetBuildNumber = 2
337};
338
Alistair Leslie-Hughes4b6cc6e2008-10-03 20:56:40 +1000339enum MetafileFrameUnit
340{
341 MetafileFrameUnitPixel = UnitPixel,
342 MetafileFrameUnitPoint = UnitPoint,
343 MetafileFrameUnitInch = UnitInch,
344 MetafileFrameUnitDocument = UnitDocument,
345 MetafileFrameUnitMillimeter = UnitMillimeter,
346 MetafileFrameUnitGdi
347};
348
Evan Stade48f10d42007-06-08 13:44:28 -0700349#ifndef __cplusplus
350
351typedef enum Unit Unit;
352typedef enum BrushType BrushType;
Evan Stade14802872007-06-21 16:15:17 -0700353typedef enum FillMode FillMode;
Evan Stade68ba30f2007-07-05 18:37:52 -0700354typedef enum LineCap LineCap;
Evan Stadee4118c12007-07-06 16:14:07 -0700355typedef enum PathPointType PathPointType;
Evan Stadebcd0eda2007-07-12 19:42:47 -0700356typedef enum LineJoin LineJoin;
Evan Stade53e17d22007-07-13 17:51:13 -0700357typedef enum QualityMode QualityMode;
358typedef enum SmoothingMode SmoothingMode;
Evan Stade60cad232007-07-13 17:51:25 -0700359typedef enum CompositingQuality CompositingQuality;
Evan Stadea87ce7a2007-07-13 17:51:29 -0700360typedef enum InterpolationMode InterpolationMode;
Evan Staded6bd866d2007-07-13 17:51:33 -0700361typedef enum PixelOffsetMode PixelOffsetMode;
Evan Stade6893ef32007-07-16 19:44:50 -0700362typedef enum DashCap DashCap;
Evan Stadedaf00ab2007-07-16 19:45:16 -0700363typedef enum DashStyle DashStyle;
Evan Stade12e3ead2007-07-17 19:31:15 -0700364typedef enum MatrixOrder MatrixOrder;
Evan Stade8770b6e2007-07-24 17:19:12 -0700365typedef enum ImageType ImageType;
Nikolay Sivov388caf32008-05-09 16:39:13 +0400366typedef enum ImageFlags ImageFlags;
Evan Stade5dd58252007-07-30 19:09:41 -0700367typedef enum WrapMode WrapMode;
Evan Stadee91d1242007-07-31 19:15:29 -0700368typedef enum MetafileType MetafileType;
Evan Staded806c672007-08-07 18:43:00 -0700369typedef enum LinearGradientMode LinearGradientMode;
Evan Stadef8b2b772007-08-09 18:25:37 -0700370typedef enum EmfType EmfType;
Evan Stadee807eb92007-08-13 18:34:27 -0700371typedef enum CompositingMode CompositingMode;
Evan Stade56628202007-08-14 19:00:09 -0700372typedef enum TextRenderingHint TextRenderingHint;
Evan Stade16dea472007-08-14 19:00:32 -0700373typedef enum StringAlignment StringAlignment;
Nikolay Sivov9ed8a2b2008-07-29 01:12:49 +0400374typedef enum StringDigitSubstitute StringDigitSubstitute;
Evan Stade551a6062007-08-14 19:00:40 -0700375typedef enum StringTrimming StringTrimming;
Adam Petacciab0b15882008-06-21 13:02:53 -0400376typedef enum FontStyle FontStyle;
Evan Stade551a6062007-08-14 19:00:40 -0700377typedef enum StringFormatFlags StringFormatFlags;
Evan Stade936f3102007-08-14 19:00:53 -0700378typedef enum HotkeyPrefix HotkeyPrefix;
Alistair Leslie-Hughes9f0f9772008-01-30 15:46:25 +1100379typedef enum PenAlignment GpPenAlignment;
Nathan Beckmann366854a2008-03-06 01:17:00 -0800380typedef enum ImageCodecFlags ImageCodecFlags;
Lei Zhangd9a42992008-04-08 14:44:41 -0700381typedef enum CombineMode CombineMode;
Nikolay Sivovf620b662008-06-18 11:33:10 +0400382typedef enum FlushIntention FlushIntention;
Huw Davies3ab76662008-07-10 15:26:58 +0100383typedef enum CoordinateSpace CoordinateSpace;
Nikolay Sivovd923d782008-09-07 01:40:26 +0400384typedef enum GpTestControlEnum GpTestControlEnum;
Alistair Leslie-Hughes4b6cc6e2008-10-03 20:56:40 +1000385typedef enum MetafileFrameUnit MetafileFrameUnit;
Evan Stade48f10d42007-06-08 13:44:28 -0700386
387#endif /* end of c typedefs */
388
389#endif