- Sync gdiplus with Wine head
[reactos.git] / reactos / include / psdk / gdiplusenums.h
1 /*
2 * Copyright (C) 2007 Google (Evan Stade)
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19 #ifndef _GDIPLUSENUMS_H
20 #define _GDIPLUSENUMS_H
21
22 typedef UINT GraphicsState;
23
24 enum 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
35 enum BrushType
36 {
37 BrushTypeSolidColor = 0,
38 BrushTypeHatchFill = 1,
39 BrushTypeTextureFill = 2,
40 BrushTypePathGradient = 3,
41 BrushTypeLinearGradient = 4
42 };
43
44 enum FillMode
45 {
46 FillModeAlternate = 0,
47 FillModeWinding = 1
48 };
49
50 enum 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
67 enum 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
78 enum LineJoin
79 {
80 LineJoinMiter = 0,
81 LineJoinBevel = 1,
82 LineJoinRound = 2,
83 LineJoinMiterClipped = 3
84 };
85
86 enum QualityMode
87 {
88 QualityModeInvalid = -1,
89 QualityModeDefault = 0,
90 QualityModeLow = 1,
91 QualityModeHigh = 2
92 };
93
94 enum SmoothingMode
95 {
96 SmoothingModeInvalid = QualityModeInvalid,
97 SmoothingModeDefault = QualityModeDefault,
98 SmoothingModeHighSpeed = QualityModeLow,
99 SmoothingModeHighQuality = QualityModeHigh,
100 SmoothingModeNone,
101 SmoothingModeAntiAlias
102 };
103
104 enum CompositingQuality
105 {
106 CompositingQualityInvalid = QualityModeInvalid,
107 CompositingQualityDefault = QualityModeDefault,
108 CompositingQualityHighSpeed = QualityModeLow,
109 CompositingQualityHighQuality = QualityModeHigh,
110 CompositingQualityGammaCorrected,
111 CompositingQualityAssumeLinear
112 };
113
114 enum 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
127 enum PenAlignment
128 {
129 PenAlignmentCenter = 0,
130 PenAlignmentInset = 1
131 };
132
133 enum PixelOffsetMode
134 {
135 PixelOffsetModeInvalid = QualityModeInvalid,
136 PixelOffsetModeDefault = QualityModeDefault,
137 PixelOffsetModeHighSpeed = QualityModeLow,
138 PixelOffsetModeHighQuality = QualityModeHigh,
139 PixelOffsetModeNone,
140 PixelOffsetModeHalf
141 };
142
143 enum DashCap
144 {
145 DashCapFlat = 0,
146 DashCapRound = 2,
147 DashCapTriangle = 3
148 };
149
150 enum DashStyle
151 {
152 DashStyleSolid,
153 DashStyleDash,
154 DashStyleDot,
155 DashStyleDashDot,
156 DashStyleDashDotDot,
157 DashStyleCustom
158 };
159
160 enum MatrixOrder
161 {
162 MatrixOrderPrepend = 0,
163 MatrixOrderAppend = 1
164 };
165
166 enum ImageType
167 {
168 ImageTypeUnknown,
169 ImageTypeBitmap,
170 ImageTypeMetafile
171 };
172
173 enum WrapMode
174 {
175 WrapModeTile,
176 WrapModeTileFlipX,
177 WrapModeTileFlipY,
178 WrapModeTileFlipXY,
179 WrapModeClamp
180 };
181
182 enum MetafileType
183 {
184 MetafileTypeInvalid,
185 MetafileTypeWmf,
186 MetafileTypeWmfPlaceable,
187 MetafileTypeEmf,
188 MetafileTypeEmfPlusOnly,
189 MetafileTypeEmfPlusDual
190 };
191
192 enum LinearGradientMode
193 {
194 LinearGradientModeHorizontal,
195 LinearGradientModeVertical,
196 LinearGradientModeForwardDiagonal,
197 LinearGradientModeBackwardDiagonal
198 };
199
200 enum EmfType
201 {
202 EmfTypeEmfOnly = MetafileTypeEmf,
203 EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly,
204 EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
205 };
206
207 enum CompositingMode
208 {
209 CompositingModeSourceOver,
210 CompositingModeSourceCopy
211 };
212
213 enum TextRenderingHint
214 {
215 TextRenderingHintSystemDefault = 0,
216 TextRenderingHintSingleBitPerPixelGridFit,
217 TextRenderingHintSingleBitPerPixel,
218 TextRenderingHintAntiAliasGridFit,
219 TextRenderingHintAntiAlias,
220 TextRenderingHintClearTypeGridFit
221 };
222
223 enum StringAlignment
224 {
225 StringAlignmentNear = 0,
226 StringAlignmentCenter = 1,
227 StringAlignmentFar = 2
228 };
229
230 enum StringDigitSubstitute
231 {
232 StringDigitSubstituteUser = 0,
233 StringDigitSubstituteNone = 1,
234 StringDigitSubstituteNational = 2,
235 StringDigitSubstituteTraditional = 3
236 };
237
238 enum 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
251 enum StringTrimming
252 {
253 StringTrimmingNone = 0,
254 StringTrimmingCharacter = 1,
255 StringTrimmingWord = 2,
256 StringTrimmingEllipsisCharacter = 3,
257 StringTrimmingEllipsisWord = 4,
258 StringTrimmingEllipsisPath = 5
259 };
260
261 enum FontStyle
262 {
263 FontStyleRegular = 0,
264 FontStyleBold = 1,
265 FontStyleItalic = 2,
266 FontStyleBoldItalic = 3,
267 FontStyleUnderline = 4,
268 FontStyleStrikeout = 8
269 };
270
271 enum HotkeyPrefix
272 {
273 HotkeyPrefixNone = 0,
274 HotkeyPrefixShow = 1,
275 HotkeyPrefixHide = 2
276 };
277
278 enum ImageCodecFlags
279 {
280 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
291 enum 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
307 };
308
309 enum CombineMode
310 {
311 CombineModeReplace,
312 CombineModeIntersect,
313 CombineModeUnion,
314 CombineModeXor,
315 CombineModeExclude,
316 CombineModeComplement
317 };
318
319 enum FlushIntention
320 {
321 FlushIntentionFlush = 0,
322 FlushIntentionSync = 1
323 };
324
325 enum CoordinateSpace
326 {
327 CoordinateSpaceWorld,
328 CoordinateSpacePage,
329 CoordinateSpaceDevice
330 };
331
332 #ifndef __cplusplus
333
334 typedef enum Unit Unit;
335 typedef enum BrushType BrushType;
336 typedef enum FillMode FillMode;
337 typedef enum LineCap LineCap;
338 typedef enum PathPointType PathPointType;
339 typedef enum LineJoin LineJoin;
340 typedef enum QualityMode QualityMode;
341 typedef enum SmoothingMode SmoothingMode;
342 typedef enum CompositingQuality CompositingQuality;
343 typedef enum InterpolationMode InterpolationMode;
344 typedef enum PixelOffsetMode PixelOffsetMode;
345 typedef enum DashCap DashCap;
346 typedef enum DashStyle DashStyle;
347 typedef enum MatrixOrder MatrixOrder;
348 typedef enum ImageType ImageType;
349 typedef enum ImageFlags ImageFlags;
350 typedef enum WrapMode WrapMode;
351 typedef enum MetafileType MetafileType;
352 typedef enum LinearGradientMode LinearGradientMode;
353 typedef enum EmfType EmfType;
354 typedef enum CompositingMode CompositingMode;
355 typedef enum TextRenderingHint TextRenderingHint;
356 typedef enum StringAlignment StringAlignment;
357 typedef enum StringDigitSubstitute StringDigitSubstitute;
358 typedef enum StringTrimming StringTrimming;
359 typedef enum FontStyle FontStyle;
360 typedef enum StringFormatFlags StringFormatFlags;
361 typedef enum HotkeyPrefix HotkeyPrefix;
362 typedef enum PenAlignment GpPenAlignment;
363 typedef enum ImageCodecFlags ImageCodecFlags;
364 typedef enum CombineMode CombineMode;
365 typedef enum FlushIntention FlushIntention;
366 typedef enum CoordinateSpace CoordinateSpace;
367
368 #endif /* end of c typedefs */
369
370 #endif