ReactOS 0.4.15-dev-7788-g1ad9096
gdipluscolor.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2008 Google (Lei Zhang)
3 * 2015 Benedikt Freisen
4 * 2019 Katayama Hirofumi MZ
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef _GDIPLUSCOLOR_H
22#define _GDIPLUSCOLOR_H
23
25{
32
33#ifdef __cplusplus
34
35class Color
36{
37 public:
38 Color() : Argb(0xff000000)
39 {
40 }
41
42 Color(ARGB argb) : Argb(argb)
43 {
44 }
45
46 Color(BYTE r, BYTE g, BYTE b) : Argb(MakeARGB(0xFF, r, g, b))
47 {
48 }
49
50 Color(BYTE a, BYTE r, BYTE g, BYTE b) : Argb(MakeARGB(a, r, g, b))
51 {
52 }
53
54 BYTE
55 GetA() const
56 {
57 return (BYTE)(Argb >> 24);
58 }
59
60 BYTE
61 GetAlpha() const
62 {
63 return (BYTE)(Argb >> 24);
64 }
65
66 BYTE
67 GetB() const
68 {
69 return (BYTE)Argb;
70 }
71
72 BYTE
73 GetBlue() const
74 {
75 return (BYTE)Argb;
76 }
77
78 BYTE
79 GetG() const
80 {
81 return (BYTE)(Argb >> 8);
82 }
83
84 BYTE
85 GetGreen() const
86 {
87 return (BYTE)(Argb >> 8);
88 }
89
90 BYTE
91 GetR() const
92 {
93 return (BYTE)(Argb >> 16);
94 }
95
96 BYTE
97 GetRed() const
98 {
99 return (BYTE)(Argb >> 16);
100 }
101
102 ARGB
103 GetValue() const
104 {
105 return Argb;
106 }
107
108 static ARGB
109 MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b)
110 {
111 ARGB a0 = a, r0 = r, g0 = g, b0 = b;
112 return (a0 << AlphaShift) | (r0 << RedShift) | (g0 << GreenShift) | (b0 << BlueShift);
113 }
114
115 VOID
116 SetFromCOLORREF(COLORREF rgb)
117 {
118 Argb = MakeARGB(0xFF, GetRValue(rgb), GetGValue(rgb), GetBValue(rgb));
119 }
120
121 VOID
122 SetValue(ARGB argb)
123 {
124 Argb = argb;
125 }
126
128 ToCOLORREF() const
129 {
130 return RGB(GetRed(), GetGreen(), GetBlue());
131 }
132
133 enum
134 {
135 AlphaShift = 24,
136 RedShift = 16,
137 GreenShift = 8,
138 BlueShift = 0
139 };
140
141 enum
142 {
143 AlphaMask = 0xFF000000,
144 RedMask = 0x00FF0000,
145 GreenMask = 0x0000FF00,
146 BlueMask = 0x000000FF
147 };
148
149 enum
150 {
151 AliceBlue = 0xFFF0F8FF,
152 AntiqueWhite = 0xFFFAEBD7,
153 Aqua = 0xFF00FFFF,
154 Aquamarine = 0xFF7FFFD4,
155 Azure = 0xFFF0FFFF,
156 Beige = 0xFFF5F5DC,
157 Bisque = 0xFFFFE4C4,
158 Black = 0xFF000000,
159 BlanchedAlmond = 0xFFFFEBCD,
160 Blue = 0xFF0000FF,
161 BlueViolet = 0xFF8A2BE2,
162 Brown = 0xFFA52A2A,
163 BurlyWood = 0xFFDEB887,
164 CadetBlue = 0xFF5F9EA0,
165 Chartreuse = 0xFF7FFF00,
166 Chocolate = 0xFFD2691E,
167 Coral = 0xFFFF7F50,
168 CornflowerBlue = 0xFF6495ED,
169 Cornsilk = 0xFFFFF8DC,
170 Crimson = 0xFFDC143C,
171 Cyan = 0xFF00FFFF,
172 DarkBlue = 0xFF00008B,
173 DarkCyan = 0xFF008B8B,
174 DarkGoldenrod = 0xFFB8860B,
175 DarkGray = 0xFFA9A9A9,
176 DarkGreen = 0xFF006400,
177 DarkKhaki = 0xFFBDB76B,
178 DarkMagenta = 0xFF8B008B,
179 DarkOliveGreen = 0xFF556B2F,
180 DarkOrange = 0xFFFF8C00,
181 DarkOrchid = 0xFF9932CC,
182 DarkRed = 0xFF8B0000,
183 DarkSalmon = 0xFFE9967A,
184 DarkSeaGreen = 0xFF8FBC8F,
185 DarkSlateBlue = 0xFF483D8B,
186 DarkSlateGray = 0xFF2F4F4F,
187 DarkTurquoise = 0xFF00CED1,
188 DarkViolet = 0xFF9400D3,
189 DeepPink = 0xFFFF1493,
190 DeepSkyBlue = 0xFF00BFFF,
191 DimGray = 0xFF696969,
192 DodgerBlue = 0xFF1E90FF,
193 Firebrick = 0xFFB22222,
194 FloralWhite = 0xFFFFFAF0,
195 ForestGreen = 0xFF228B22,
196 Fuchsia = 0xFFFF00FF,
197 Gainsboro = 0xFFDCDCDC,
198 GhostWhite = 0xFFF8F8FF,
199 Gold = 0xFFFFD700,
200 Goldenrod = 0xFFDAA520,
201 Gray = 0xFF808080,
202 Green = 0xFF008000,
203 GreenYellow = 0xFFADFF2F,
204 Honeydew = 0xFFF0FFF0,
205 HotPink = 0xFFFF69B4,
206 IndianRed = 0xFFCD5C5C,
207 Indigo = 0xFF4B0082,
208 Ivory = 0xFFFFFFF0,
209 Khaki = 0xFFF0E68C,
210 Lavender = 0xFFE6E6FA,
211 LavenderBlush = 0xFFFFF0F5,
212 LawnGreen = 0xFF7CFC00,
213 LemonChiffon = 0xFFFFFACD,
214 LightBlue = 0xFFADD8E6,
215 LightCoral = 0xFFF08080,
216 LightCyan = 0xFFE0FFFF,
217 LightGoldenrodYellow = 0xFFFAFAD2,
218 LightGray = 0xFFD3D3D3,
219 LightGreen = 0xFF90EE90,
220 LightPink = 0xFFFFB6C1,
221 LightSalmon = 0xFFFFA07A,
222 LightSeaGreen = 0xFF20B2AA,
223 LightSkyBlue = 0xFF87CEFA,
224 LightSlateGray = 0xFF778899,
225 LightSteelBlue = 0xFFB0C4DE,
226 LightYellow = 0xFFFFFFE0,
227 Lime = 0xFF00FF00,
228 LimeGreen = 0xFF32CD32,
229 Linen = 0xFFFAF0E6,
230 Magenta = 0xFFFF00FF,
231 Maroon = 0xFF800000,
232 MediumAquamarine = 0xFF66CDAA,
233 MediumBlue = 0xFF0000CD,
234 MediumOrchid = 0xFFBA55D3,
235 MediumPurple = 0xFF9370DB,
236 MediumSeaGreen = 0xFF3CB371,
237 MediumSlateBlue = 0xFF7B68EE,
238 MediumSpringGreen = 0xFF00FA9A,
239 MediumTurquoise = 0xFF48D1CC,
240 MediumVioletRed = 0xFFC71585,
241 MidnightBlue = 0xFF191970,
242 MintCream = 0xFFF5FFFA,
243 MistyRose = 0xFFFFE4E1,
244 Moccasin = 0xFFFFE4B5,
245 NavajoWhite = 0xFFFFDEAD,
246 Navy = 0xFF000080,
247 OldLace = 0xFFFDF5E6,
248 Olive = 0xFF808000,
249 OliveDrab = 0xFF6B8E23,
250 Orange = 0xFFFFA500,
251 OrangeRed = 0xFFFF4500,
252 Orchid = 0xFFDA70D6,
253 PaleGoldenrod = 0xFFEEE8AA,
254 PaleGreen = 0xFF98FB98,
255 PaleTurquoise = 0xFFAFEEEE,
256 PaleVioletRed = 0xFFDB7093,
257 PapayaWhip = 0xFFFFEFD5,
258 PeachPuff = 0xFFFFDAB9,
259 Peru = 0xFFCD853F,
260 Pink = 0xFFFFC0CB,
261 Plum = 0xFFDDA0DD,
262 PowderBlue = 0xFFB0E0E6,
263 Purple = 0xFF800080,
264 Red = 0xFFFF0000,
265 RosyBrown = 0xFFBC8F8F,
266 RoyalBlue = 0xFF4169E1,
267 SaddleBrown = 0xFF8B4513,
268 Salmon = 0xFFFA8072,
269 SandyBrown = 0xFFF4A460,
270 SeaGreen = 0xFF2E8B57,
271 SeaShell = 0xFFFFF5EE,
272 Sienna = 0xFFA0522D,
273 Silver = 0xFFC0C0C0,
274 SkyBlue = 0xFF87CEEB,
275 SlateBlue = 0xFF6A5ACD,
276 SlateGray = 0xFF708090,
277 Snow = 0xFFFFFAFA,
278 SpringGreen = 0xFF00FF7F,
279 SteelBlue = 0xFF4682B4,
280 Tan = 0xFFD2B48C,
281 Teal = 0xFF008080,
282 Thistle = 0xFFD8BFD8,
283 Tomato = 0xFFFF6347,
284 Transparent = 0x00FFFFFF,
285 Turquoise = 0xFF40E0D0,
286 Violet = 0xFFEE82EE,
287 Wheat = 0xFFF5DEB3,
288 White = 0xFFFFFFFF,
289 WhiteSmoke = 0xFFF5F5F5,
290 Yellow = 0xFFFFFF00,
291 YellowGreen = 0xFF9ACD32
292 };
293
294 protected:
295 ARGB Argb;
296};
297
298#else /* end of c++ typedefs */
299
300typedef struct Color
301{
304
305#endif /* end of c typedefs */
306
307#endif /* _GDIPLUSCOLOR_H */
@ Gray
Definition: bl.h:205
@ Brown
Definition: bl.h:203
@ Cyan
Definition: bl.h:200
@ Magenta
Definition: bl.h:202
@ White
Definition: bl.h:212
@ Yellow
Definition: bl.h:211
@ Black
Definition: bl.h:197
@ Green
Definition: bl.h:199
@ Red
Definition: bl.h:201
@ Blue
Definition: bl.h:198
#define RGB(r, g, b)
Definition: precomp.h:62
#define GetBValue(quad)
Definition: precomp.h:66
#define GetGValue(quad)
Definition: precomp.h:65
#define GetRValue(quad)
Definition: precomp.h:64
ColorChannelFlags
Definition: gdipluscolor.h:25
@ ColorChannelFlagsLast
Definition: gdipluscolor.h:30
@ ColorChannelFlagsC
Definition: gdipluscolor.h:26
@ ColorChannelFlagsK
Definition: gdipluscolor.h:29
@ ColorChannelFlagsY
Definition: gdipluscolor.h:28
@ ColorChannelFlagsM
Definition: gdipluscolor.h:27
DWORD ARGB
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean g
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
#define a
Definition: ke_i.h:78
#define b
Definition: ke_i.h:79
@ SetValue
Definition: shader.c:1968
ARGB Argb
Definition: gdipluscolor.h:302
_In_ ULONG _In_ ULONG rgb
Definition: winddi.h:3521
DWORD COLORREF
Definition: windef.h:300
unsigned char BYTE
Definition: xxhash.c:193