6 * This file is part of the w32api package.
8 * THIS SOFTWARE IS NOT COPYRIGHTED
10 * This source code is offered for use in the public domain. You may
11 * use, modify or distribute it freely.
13 * This code is distributed in the hope that it will be useful but
14 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
15 * DISCLAIMED. This includes but is not limited to warranties of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 #ifndef _GDIPLUSBRUSH_H
20 #define _GDIPLUSBRUSH_H
24 class Brush
: public GdiplusBase
27 friend class Graphics
;
30 Brush
*Clone(VOID
) const
35 Status
GetLastStatus(VOID
)
40 BrushType
GetType(VOID
)
43 SetStatus(DllExports::GdipGetBrushType(brush
, &type
));
48 mutable Status status
;
51 Status
SetStatus(Status status
) const
55 this->status
= status
;
61 class HatchBrush
: public Brush
64 HatchBrush(HatchStyle hatchStyle
, const Color
&foreColor
, const Color
&backColor
)
68 Status
GetBackgroundColor(Color
*color
) const
70 return NotImplemented
;
73 Status
GetForegroundColor(Color
*color
) const
75 return NotImplemented
;
78 HatchStyle
GetHatchStyle(VOID
) const
80 return HatchStyleHorizontal
;
85 class LinearGradientBrush
: public Brush
88 LinearGradientBrush(const PointF
&point1
, const PointF
&point2
, const Color
&color1
, const Color
&color2
)
92 LinearGradientBrush(const Rect
&rect
, const Color
&color1
, const Color
&color2
, REAL angle
, BOOL isAngleScalable
)
96 LinearGradientBrush(const Rect
&rect
, const Color
&color1
, const Color
&color2
, LinearGradientMode mode
)
100 LinearGradientBrush(const Point
&point1
, const Point
&point2
, const Color
&color1
, const Color
&color2
)
104 LinearGradientBrush(const RectF
&rect
, const Color
&color1
, const Color
&color2
, REAL angle
, BOOL isAngleScalable
)
108 LinearGradientBrush(const RectF
&rect
, const Color
&color1
, const Color
&color2
, LinearGradientMode mode
)
112 Status
GetBlend(REAL
*blendFactors
, REAL
*blendPositions
, INT count
)
114 return NotImplemented
;
117 INT
GetBlendCount(VOID
) const
122 BOOL
GetGammaCorrection(VOID
) const
127 INT
GetInterpolationColorCount(VOID
) const
132 Status
GetInterpolationColors(Color
*presetColors
, REAL
*blendPositions
, INT count
) const
134 return NotImplemented
;
137 Status
GetLinearColors(Color
* colors
) const
139 return NotImplemented
;
142 Status
GetRectangle(Rect
*rect
) const
144 return NotImplemented
;
147 Status
GetRectangle(RectF
* rect
) const
149 return NotImplemented
;
152 Status
GetTransform(Matrix
* matrix
) const
154 return NotImplemented
;
157 WrapMode
GetWrapMode(VOID
) const
162 Status
MultiplyTransform(const Matrix
*matrix
, MatrixOrder order
)
164 return NotImplemented
;
167 Status
ResetTransform(VOID
)
169 return NotImplemented
;
172 Status
RotateTransform(REAL angle
, MatrixOrder order
)
174 return NotImplemented
;
177 Status
ScaleTransform(REAL sx
, REAL sy
, MatrixOrder order
)
179 return NotImplemented
;
182 Status
SetBlend(const REAL
*blendFactors
, const REAL
*blendPositions
, INT count
)
184 return NotImplemented
;
187 Status
SetBlendBellShape(REAL focus
, REAL scale
)
189 return NotImplemented
;
192 Status
SetBlendTriangularShape(REAL focus
, REAL scale
)
194 return NotImplemented
;
197 Status
SetGammaCorrection(BOOL useGammaCorrection
)
199 return NotImplemented
;
202 Status
SetInterpolationColors(const Color
*presetColors
, const REAL
*blendPositions
, INT count
)
204 return NotImplemented
;
207 Status
SetLinearColors(const Color
& color1
, const Color
& color2
)
209 return NotImplemented
;
212 Status
SetTransform(const Matrix
* matrix
)
214 return NotImplemented
;
217 Status
SetWrapMode(WrapMode wrapMode
)
219 return NotImplemented
;
222 Status
TranslateTransform(REAL dx
, REAL dy
, MatrixOrder order
)
224 return NotImplemented
;
229 class SolidBrush
: Brush
232 SolidBrush(const Color
&color
)
236 Status
GetColor(Color
*color
) const
238 return NotImplemented
;
241 Status
SetColor(const Color
&color
)
243 return NotImplemented
;
248 class TextureBrush
: Brush
251 TextureBrush(Image
*image
, WrapMode wrapMode
, const RectF
&dstRect
)
255 TextureBrush(Image
*image
, Rect
&dstRect
, ImageAttributes
*imageAttributes
)
259 TextureBrush(Image
*image
, WrapMode wrapMode
, INT dstX
, INT dstY
, INT dstWidth
, INT dstHeight
)
263 TextureBrush(Image
*image
, WrapMode wrapMode
, REAL dstX
, REAL dstY
, REAL dstWidth
, REAL dstHeight
)
267 TextureBrush(Image
*image
, RectF
&dstRect
, ImageAttributes
*imageAttributes
)
271 TextureBrush(Image
*image
, WrapMode wrapMode
)
275 TextureBrush(Image
*image
, WrapMode wrapMode
, const Rect
&dstRect
)
279 Image
*GetImage(VOID
) const
284 Status
GetTransform(Matrix
*matrix
) const
286 return NotImplemented
;
289 WrapMode
GetWrapMode(VOID
) const
294 Status
MultiplyTransform(Matrix
*matrix
, MatrixOrder order
)
296 return NotImplemented
;
299 Status
ResetTransform(VOID
)
301 return NotImplemented
;
304 Status
RotateTransform(REAL angle
, MatrixOrder order
)
306 return NotImplemented
;
309 Status
ScaleTransform(REAL sx
, REAL sy
, MatrixOrder order
)
311 return NotImplemented
;
314 Status
SetTransform(const Matrix
*matrix
)
316 return NotImplemented
;
319 Status
SetWrapMode(WrapMode wrapMode
)
321 return NotImplemented
;
324 Status
TranslateTransform(REAL dx
, REAL dy
, MatrixOrder order
)
326 return NotImplemented
;
330 #endif /* _GDIPLUSBRUSH_H */