oleaut32: Introduce a new helper function, TLB_FreeCustData, for freeing custom data.
[wine] / include / 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 PixelOffsetMode
128 {
129     PixelOffsetModeInvalid     = QualityModeInvalid,
130     PixelOffsetModeDefault     = QualityModeDefault,
131     PixelOffsetModeHighSpeed   = QualityModeLow,
132     PixelOffsetModeHighQuality = QualityModeHigh,
133     PixelOffsetModeNone,
134     PixelOffsetModeHalf
135 };
136
137 enum DashCap
138 {
139     DashCapFlat     = 0,
140     DashCapRound    = 2,
141     DashCapTriangle = 3
142 };
143
144 enum DashStyle
145 {
146     DashStyleSolid,
147     DashStyleDash,
148     DashStyleDot,
149     DashStyleDashDot,
150     DashStyleDashDotDot,
151     DashStyleCustom
152 };
153
154 enum MatrixOrder
155 {
156     MatrixOrderPrepend = 0,
157     MatrixOrderAppend  = 1
158 };
159
160 enum ImageType
161 {
162     ImageTypeUnknown,
163     ImageTypeBitmap,
164     ImageTypeMetafile
165 };
166
167 enum WrapMode
168 {
169     WrapModeTile,
170     WrapModeTileFlipX,
171     WrapModeTileFlipY,
172     WrapModeTileFlipXY,
173     WrapModeClamp
174 };
175
176 enum MetafileType
177 {
178     MetafileTypeInvalid,
179     MetafileTypeWmf,
180     MetafileTypeWmfPlaceable,
181     MetafileTypeEmf,
182     MetafileTypeEmfPlusOnly,
183     MetafileTypeEmfPlusDual
184 };
185
186 enum LinearGradientMode
187 {
188     LinearGradientModeHorizontal,
189     LinearGradientModeVertical,
190     LinearGradientModeForwardDiagonal,
191     LinearGradientModeBackwardDiagonal
192 };
193
194 enum EmfType
195 {
196     EmfTypeEmfOnly     = MetafileTypeEmf,
197     EmfTypeEmfPlusOnly = MetafileTypeEmfPlusOnly,
198     EmfTypeEmfPlusDual = MetafileTypeEmfPlusDual
199 };
200
201 enum CompositingMode
202 {
203     CompositingModeSourceOver,
204     CompositingModeSourceCopy
205 };
206
207 enum TextRenderingHint
208 {
209     TextRenderingHintSystemDefault = 0,
210     TextRenderingHintSingleBitPerPixelGridFit,
211     TextRenderingHintSingleBitPerPixel,
212     TextRenderingHintAntiAliasGridFit,
213     TextRenderingHintAntiAlias,
214     TextRenderingHintClearTypeGridFit
215 };
216
217 enum StringAlignment
218 {
219     StringAlignmentNear    = 0,
220     StringAlignmentCenter  = 1,
221     StringAlignmentFar     = 2
222 };
223
224 enum StringFormatFlags
225 {
226     StringFormatFlagsDirectionRightToLeft  = 0x00000001,
227     StringFormatFlagsDirectionVertical     = 0x00000002,
228     StringFormatFlagsNoFitBlackBox         = 0x00000004,
229     StringFormatFlagsDisplayFormatControl  = 0x00000020,
230     StringFormatFlagsNoFontFallback        = 0x00000400,
231     StringFormatFlagsMeasureTrailingSpaces = 0x00000800,
232     StringFormatFlagsNoWrap                = 0x00001000,
233     StringFormatFlagsLineLimit             = 0x00002000,
234     StringFormatFlagsNoClip                = 0x00004000
235 };
236
237 enum StringTrimming
238 {
239     StringTrimmingNone                 = 0,
240     StringTrimmingCharacter            = 1,
241     StringTrimmingWord                 = 2,
242     StringTrimmingEllipsisCharacter    = 3,
243     StringTrimmingEllipsisWord         = 4,
244     StringTrimmingEllipsisPath         = 5
245 };
246
247 enum HotkeyPrefix
248 {
249     HotkeyPrefixNone   = 0,
250     HotkeyPrefixShow   = 1,
251     HotkeyPrefixHide   = 2
252 };
253
254
255 #ifndef __cplusplus
256
257 typedef enum Unit Unit;
258 typedef enum BrushType BrushType;
259 typedef enum FillMode FillMode;
260 typedef enum LineCap LineCap;
261 typedef enum PathPointType PathPointType;
262 typedef enum LineJoin LineJoin;
263 typedef enum QualityMode QualityMode;
264 typedef enum SmoothingMode SmoothingMode;
265 typedef enum CompositingQuality CompositingQuality;
266 typedef enum InterpolationMode InterpolationMode;
267 typedef enum PixelOffsetMode PixelOffsetMode;
268 typedef enum DashCap DashCap;
269 typedef enum DashStyle DashStyle;
270 typedef enum MatrixOrder MatrixOrder;
271 typedef enum ImageType ImageType;
272 typedef enum WrapMode WrapMode;
273 typedef enum MetafileType MetafileType;
274 typedef enum LinearGradientMode LinearGradientMode;
275 typedef enum EmfType EmfType;
276 typedef enum CompositingMode CompositingMode;
277 typedef enum TextRenderingHint TextRenderingHint;
278 typedef enum StringAlignment StringAlignment;
279 typedef enum StringTrimming StringTrimming;
280 typedef enum StringFormatFlags StringFormatFlags;
281 typedef enum HotkeyPrefix HotkeyPrefix;
282
283 #endif /* end of c typedefs */
284
285 #endif