source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/gdiplus/gdipluscolor.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: 9.8 KB
Line 
1/*
2 * gdipluscolor.h
3 *
4 * GDI+ color
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_COLOR_H
24#define __GDIPLUS_COLOR_H
25#if __GNUC__ >=3
26#pragma GCC system_header
27#endif
28
29typedef enum ColorChannelFlags {
30 ColorChannelFlagsC = 0,
31 ColorChannelFlagsM = 1,
32 ColorChannelFlagsY = 2,
33 ColorChannelFlagsK = 3,
34 ColorChannelFlagsLast = 4
35} ColorChannelFlags;
36
37typedef struct Color
38{
39 #ifdef __cplusplus
40 private:
41 #endif
42 ARGB Value;
43
44 #ifdef __cplusplus
45 public:
46 friend class Bitmap;
47 friend class Graphics;
48 friend class HatchBrush;
49 friend class PathGradientBrush;
50 friend class Pen;
51 friend class SolidBrush;
52
53 static ARGB MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b)
54 {
55 return (ARGB) ((((DWORD) a) << 24) | (((DWORD) r) << 16)
56 | (((DWORD) g) << 8) | ((DWORD) b));
57 }
58
59 static const ARGB AlphaMask = 0xFF000000;
60
61 static const ARGB AliceBlue = 0xFFF0F8FF;
62 static const ARGB AntiqueWhite = 0xFFFAEBD7;
63 static const ARGB Aqua = 0xFF00FFFF;
64 static const ARGB Aquamarine = 0xFF7FFFD4;
65 static const ARGB Azure = 0xFFF0FFFF;
66 static const ARGB Beige = 0xFFF5F5DC;
67 static const ARGB Bisque = 0xFFFFE4C4;
68 static const ARGB Black = 0xFF000000;
69 static const ARGB BlanchedAlmond = 0xFFFFEBCD;
70 static const ARGB Blue = 0xFF0000FF;
71 static const ARGB BlueViolet = 0xFF8A2BE2;
72 static const ARGB Brown = 0xFFA52A2A;
73 static const ARGB BurlyWood = 0xFFDEB887;
74 static const ARGB CadetBlue = 0xFF5F9EA0;
75 static const ARGB Chartreuse = 0xFF7FFF00;
76 static const ARGB Chocolate = 0xFFD2691E;
77 static const ARGB Coral = 0xFFFF7F50;
78 static const ARGB CornflowerBlue = 0xFF6495ED;
79 static const ARGB Cornsilk = 0xFFFFF8DC;
80 static const ARGB Crimson = 0xFFDC143C;
81 static const ARGB Cyan = 0xFF00FFFF;
82 static const ARGB DarkBlue = 0xFF00008B;
83 static const ARGB DarkCyan = 0xFF008B8B;
84 static const ARGB DarkGoldenrod = 0xFFB8860B;
85 static const ARGB DarkGray = 0xFFA9A9A9;
86 static const ARGB DarkGreen = 0xFF006400;
87 static const ARGB DarkKhaki = 0xFFBDB76B;
88 static const ARGB DarkMagenta = 0xFF8B008B;
89 static const ARGB DarkOliveGreen = 0xFF556B2F;
90 static const ARGB DarkOrange = 0xFFFF8C00;
91 static const ARGB DarkOrchid = 0xFF9932CC;
92 static const ARGB DarkRed = 0xFF8B0000;
93 static const ARGB DarkSalmon = 0xFFE9967A;
94 static const ARGB DarkSeaGreen = 0xFF8FBC8F;
95 static const ARGB DarkSlateBlue = 0xFF483D8B;
96 static const ARGB DarkSlateGray = 0xFF2F4F4F;
97 static const ARGB DarkTurquoise = 0xFF00CED1;
98 static const ARGB DarkViolet = 0xFF9400D3;
99 static const ARGB DeepPink = 0xFFFF1493;
100 static const ARGB DeepSkyBlue = 0xFF00BFFF;
101 static const ARGB DimGray = 0xFF696969;
102 static const ARGB DodgerBlue = 0xFF1E90FF;
103 static const ARGB Firebrick = 0xFFB22222;
104 static const ARGB FloralWhite = 0xFFFFFAF0;
105 static const ARGB ForestGreen = 0xFF228B22;
106 static const ARGB Fuchsia = 0xFFFF00FF;
107 static const ARGB Gainsboro = 0xFFDCDCDC;
108 static const ARGB GhostWhite = 0xFFF8F8FF;
109 static const ARGB Gold = 0xFFFFD700;
110 static const ARGB Goldenrod = 0xFFDAA520;
111 static const ARGB Gray = 0xFF808080;
112 static const ARGB Green = 0xFF008000;
113 static const ARGB GreenYellow = 0xFFADFF2F;
114 static const ARGB Honeydew = 0xFFF0FFF0;
115 static const ARGB HotPink = 0xFFFF69B4;
116 static const ARGB IndianRed = 0xFFCD5C5C;
117 static const ARGB Indigo = 0xFF4B0082;
118 static const ARGB Ivory = 0xFFFFFFF0;
119 static const ARGB Khaki = 0xFFF0E68C;
120 static const ARGB Lavender = 0xFFE6E6FA;
121 static const ARGB LavenderBlush = 0xFFFFF0F5;
122 static const ARGB LawnGreen = 0xFF7CFC00;
123 static const ARGB LemonChiffon = 0xFFFFFACD;
124 static const ARGB LightBlue = 0xFFADD8E6;
125 static const ARGB LightCoral = 0xFFF08080;
126 static const ARGB LightCyan = 0xFFE0FFFF;
127 static const ARGB LightGoldenrodYellow = 0xFFFAFAD2;
128 static const ARGB LightGray = 0xFFD3D3D3;
129 static const ARGB LightGreen = 0xFF90EE90;
130 static const ARGB LightPink = 0xFFFFB6C1;
131 static const ARGB LightSalmon = 0xFFFFA07A;
132 static const ARGB LightSeaGreen = 0xFF20B2AA;
133 static const ARGB LightSkyBlue = 0xFF87CEFA;
134 static const ARGB LightSlateGray = 0xFF778899;
135 static const ARGB LightSteelBlue = 0xFFB0C4DE;
136 static const ARGB LightYellow = 0xFFFFFFE0;
137 static const ARGB Lime = 0xFF00FF00;
138 static const ARGB LimeGreen = 0xFF32CD32;
139 static const ARGB Linen = 0xFFFAF0E6;
140 static const ARGB Magenta = 0xFFFF00FF;
141 static const ARGB Maroon = 0xFF800000;
142 static const ARGB MediumAquamarine = 0xFF66CDAA;
143 static const ARGB MediumBlue = 0xFF0000CD;
144 static const ARGB MediumOrchid = 0xFFBA55D3;
145 static const ARGB MediumPurple = 0xFF9370DB;
146 static const ARGB MediumSeaGreen = 0xFF3CB371;
147 static const ARGB MediumSlateBlue = 0xFF7B68EE;
148 static const ARGB MediumSpringGreen = 0xFF00FA9A;
149 static const ARGB MediumTurquoise = 0xFF48D1CC;
150 static const ARGB MediumVioletRed = 0xFFC71585;
151 static const ARGB MidnightBlue = 0xFF191970;
152 static const ARGB MintCream = 0xFFF5FFFA;
153 static const ARGB MistyRose = 0xFFFFE4E1;
154 static const ARGB Moccasin = 0xFFFFE4B5;
155 static const ARGB NavajoWhite = 0xFFFFDEAD;
156 static const ARGB Navy = 0xFF000080;
157 static const ARGB OldLace = 0xFFFDF5E6;
158 static const ARGB Olive = 0xFF808000;
159 static const ARGB OliveDrab = 0xFF6B8E23;
160 static const ARGB Orange = 0xFFFFA500;
161 static const ARGB OrangeRed = 0xFFFF4500;
162 static const ARGB Orchid = 0xFFDA70D6;
163 static const ARGB PaleGoldenrod = 0xFFEEE8AA;
164 static const ARGB PaleGreen = 0xFF98FB98;
165 static const ARGB PaleTurquoise = 0xFFAFEEEE;
166 static const ARGB PaleVioletRed = 0xFFDB7093;
167 static const ARGB PapayaWhip = 0xFFFFEFD5;
168 static const ARGB PeachPuff = 0xFFFFDAB9;
169 static const ARGB Peru = 0xFFCD853F;
170 static const ARGB Pink = 0xFFFFC0CB;
171 static const ARGB Plum = 0xFFDDA0DD;
172 static const ARGB PowderBlue = 0xFFB0E0E6;
173 static const ARGB Purple = 0xFF800080;
174 static const ARGB Red = 0xFFFF0000;
175 static const ARGB RosyBrown = 0xFFBC8F8F;
176 static const ARGB RoyalBlue = 0xFF4169E1;
177 static const ARGB SaddleBrown = 0xFF8B4513;
178 static const ARGB Salmon = 0xFFFA8072;
179 static const ARGB SandyBrown = 0xFFF4A460;
180 static const ARGB SeaGreen = 0xFF2E8B57;
181 static const ARGB SeaShell = 0xFFFFF5EE;
182 static const ARGB Sienna = 0xFFA0522D;
183 static const ARGB Silver = 0xFFC0C0C0;
184 static const ARGB SkyBlue = 0xFF87CEEB;
185 static const ARGB SlateBlue = 0xFF6A5ACD;
186 static const ARGB SlateGray = 0xFF708090;
187 static const ARGB Snow = 0xFFFFFAFA;
188 static const ARGB SpringGreen = 0xFF00FF7F;
189 static const ARGB SteelBlue = 0xFF4682B4;
190 static const ARGB Tan = 0xFFD2B48C;
191 static const ARGB Teal = 0xFF008080;
192 static const ARGB Thistle = 0xFFD8BFD8;
193 static const ARGB Tomato = 0xFFFF6347;
194 static const ARGB Transparent = 0x00FFFFFF;
195 static const ARGB Turquoise = 0xFF40E0D0;
196 static const ARGB Violet = 0xFFEE82EE;
197 static const ARGB Wheat = 0xFFF5DEB3;
198 static const ARGB White = 0xFFFFFFFF;
199 static const ARGB WhiteSmoke = 0xFFF5F5F5;
200 static const ARGB Yellow = 0xFFFFFF00;
201 static const ARGB YellowGreen = 0xFF9ACD32;
202
203 Color(): Value(0xFF000000) {}
204 Color(ARGB argb): Value(argb) {}
205 Color(BYTE r, BYTE g, BYTE b): Value(MakeARGB(0xFF, r, g, b)) {}
206 Color(BYTE a, BYTE r, BYTE g, BYTE b): Value(MakeARGB(a, r, g, b)) {}
207
208 BYTE GetA() const
209 {
210 return (BYTE) (Value >> 24);
211 }
212 BYTE GetAlpha() const
213 {
214 return (BYTE) (Value >> 24);
215 }
216 BYTE GetB() const
217 {
218 return (BYTE) Value;
219 }
220 BYTE GetBlue() const
221 {
222 return (BYTE) Value;
223 }
224 BYTE GetG() const
225 {
226 return (BYTE) (Value >> 8);
227 }
228 BYTE GetGreen() const
229 {
230 return (BYTE) (Value >> 8);
231 }
232 BYTE GetR() const
233 {
234 return (BYTE) (Value >> 16);
235 }
236 BYTE GetRed() const
237 {
238 return (BYTE) (Value >> 16);
239 }
240 ARGB GetValue() const
241 {
242 return Value;
243 }
244 VOID SetFromCOLORREF(COLORREF rgb)
245 {
246 BYTE r = (BYTE) rgb;
247 BYTE g = (BYTE) (rgb >> 8);
248 BYTE b = (BYTE) (rgb >> 16);
249 Value = MakeARGB(0xFF, r, g, b);
250 }
251 VOID SetValue(ARGB argb)
252 {
253 Value = argb;
254 }
255 COLORREF ToCOLORREF() const
256 {
257 return RGB(GetRed(), GetGreen(), GetBlue());
258 }
259 #endif /* __cplusplus */
260} Color;
261
262#endif /* __GDIPLUS_COLOR_H */
Note: See TracBrowser for help on using the repository browser.