source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/gdiplus/gdipluslinecaps.h

Last change on this file was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 3.4 KB
Line 
1/*
2 * gdipluslinecaps.h
3 *
4 * GDI+ AdjustableArrowCap class
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Markus Koenig <markus@stber-koenig.de>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23#ifndef __GDIPLUS_LINECAPS_H
24#define __GDIPLUS_LINECAPS_H
25#if __GNUC__ >=3
26#pragma GCC system_header
27#endif
28
29#ifndef __cplusplus
30#error "A C++ compiler is required to include gdipluslinecaps.h."
31#endif
32
33class AdjustableArrowCap: public CustomLineCap
34{
35public:
36 AdjustableArrowCap(REAL height, REAL width, BOOL isFilled):
37 CustomLineCap(NULL, Ok)
38 {
39 GpAdjustableArrowCap *nativeAdjustableArrowCap = NULL;
40 lastStatus = DllExports::GdipCreateAdjustableArrowCap(
41 height, width, isFilled,
42 &nativeAdjustableArrowCap);
43 nativeCustomLineCap = nativeAdjustableArrowCap;
44 }
45 virtual ~AdjustableArrowCap()
46 {
47 }
48 virtual AdjustableArrowCap* Clone() const
49 {
50 GpCustomLineCap *cloneCustomLineCap = NULL;
51 Status status = updateStatus(DllExports::GdipCloneCustomLineCap(
52 nativeCustomLineCap, &cloneCustomLineCap));
53 if (status == Ok) {
54 AdjustableArrowCap *result = new AdjustableArrowCap(
55 cloneCustomLineCap, lastStatus);
56 if (!result) {
57 DllExports::GdipDeleteCustomLineCap(
58 cloneCustomLineCap);
59 lastStatus = OutOfMemory;
60 }
61 return result;
62 } else {
63 return NULL;
64 }
65 }
66
67 REAL GetHeight() const
68 {
69 REAL result = 0.0f;
70 updateStatus(DllExports::GdipGetAdjustableArrowCapHeight(
71 (GpAdjustableArrowCap*) nativeCustomLineCap,
72 &result));
73 return result;
74 }
75 REAL GetMiddleInset() const
76 {
77 REAL result = 0.0f;
78 updateStatus(DllExports::GdipGetAdjustableArrowCapMiddleInset(
79 (GpAdjustableArrowCap*) nativeCustomLineCap,
80 &result));
81 return result;
82 }
83 REAL GetWidth() const
84 {
85 REAL result = 0.0f;
86 updateStatus(DllExports::GdipGetAdjustableArrowCapWidth(
87 (GpAdjustableArrowCap*) nativeCustomLineCap,
88 &result));
89 return result;
90 }
91 BOOL IsFilled() const
92 {
93 BOOL result = FALSE;
94 updateStatus(DllExports::GdipGetAdjustableArrowCapFillState(
95 (GpAdjustableArrowCap*) nativeCustomLineCap,
96 &result));
97 return result;
98 }
99 Status SetFillState(BOOL isFilled)
100 {
101 return updateStatus(DllExports::GdipSetAdjustableArrowCapFillState(
102 (GpAdjustableArrowCap*) nativeCustomLineCap,
103 isFilled));
104 }
105 Status SetHeight(REAL height)
106 {
107 return updateStatus(DllExports::GdipSetAdjustableArrowCapHeight(
108 (GpAdjustableArrowCap*) nativeCustomLineCap,
109 height));
110 }
111 Status SetMiddleInset(REAL middleInset)
112 {
113 return updateStatus(DllExports::GdipSetAdjustableArrowCapMiddleInset(
114 (GpAdjustableArrowCap*) nativeCustomLineCap,
115 middleInset));
116 }
117 Status SetWidth(REAL width)
118 {
119 return updateStatus(DllExports::GdipSetAdjustableArrowCapWidth(
120 (GpAdjustableArrowCap*) nativeCustomLineCap,
121 width));
122 }
123
124private:
125 AdjustableArrowCap(GpCustomLineCap *customLineCap, Status status):
126 CustomLineCap(customLineCap, status) {}
127 AdjustableArrowCap(const AdjustableArrowCap&);
128 AdjustableArrowCap& operator=(const AdjustableArrowCap&);
129};
130
131#endif /* __GDIPLUS_LINECAPS_H */
Note: See TracBrowser for help on using the repository browser.