Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gdipluscolor.h « gdiplus « include « w32api « winsup - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 178f3363a71fb7f44a12081c4e538bb2f49b8d22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
/*
 * gdipluscolor.h
 *
 * GDI+ color
 *
 * This file is part of the w32api package.
 *
 * Contributors:
 *   Created by Markus Koenig <markus@stber-koenig.de>
 *
 * THIS SOFTWARE IS NOT COPYRIGHTED
 *
 * This source code is offered for use in the public domain. You may
 * use, modify or distribute it freely.
 *
 * This code is distributed in the hope that it will be useful but
 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
 * DISCLAIMED. This includes but is not limited to warranties of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 */

#ifndef __GDIPLUS_COLOR_H
#define __GDIPLUS_COLOR_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif

typedef enum ColorChannelFlags {
	ColorChannelFlagsC = 0,
	ColorChannelFlagsM = 1,
	ColorChannelFlagsY = 2,
	ColorChannelFlagsK = 3,
	ColorChannelFlagsLast = 4
} ColorChannelFlags;

typedef struct Color
{
	#ifdef __cplusplus
	private:
	#endif
	ARGB Value;

	#ifdef __cplusplus
	public:
	friend class Bitmap;
	friend class Graphics;
	friend class HatchBrush;
	friend class PathGradientBrush;
	friend class Pen;
	friend class SolidBrush;

	static ARGB MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b)
	{
		return (ARGB) ((((DWORD) a) << 24) | (((DWORD) r) << 16)
		             | (((DWORD) g) << 8) | ((DWORD) b));
	}

	static const ARGB AlphaMask            = 0xFF000000UL;

	static const ARGB AliceBlue            = 0xFFF0F8FFUL;
	static const ARGB AntiqueWhite         = 0xFFFAEBD7UL;
	static const ARGB Aqua                 = 0xFF00FFFFUL;
	static const ARGB Aquamarine           = 0xFF7FFFD4UL;
	static const ARGB Azure                = 0xFFF0FFFFUL;
	static const ARGB Beige                = 0xFFF5F5DCUL;
	static const ARGB Bisque               = 0xFFFFE4C4UL;
	static const ARGB Black                = 0xFF000000UL;
	static const ARGB BlanchedAlmond       = 0xFFFFEBCDUL;
	static const ARGB Blue                 = 0xFF0000FFUL;
	static const ARGB BlueViolet           = 0xFF8A2BE2UL;
	static const ARGB Brown                = 0xFFA52A2AUL;
	static const ARGB BurlyWood            = 0xFFDEB887UL;
	static const ARGB CadetBlue            = 0xFF5F9EA0UL;
	static const ARGB Chartreuse           = 0xFF7FFF00UL;
	static const ARGB Chocolate            = 0xFFD2691EUL;
	static const ARGB Coral                = 0xFFFF7F50UL;
	static const ARGB CornflowerBlue       = 0xFF6495EDUL;
	static const ARGB Cornsilk             = 0xFFFFF8DCUL;
	static const ARGB Crimson              = 0xFFDC143CUL;
	static const ARGB Cyan                 = 0xFF00FFFFUL;
	static const ARGB DarkBlue             = 0xFF00008BUL;
	static const ARGB DarkCyan             = 0xFF008B8BUL;
	static const ARGB DarkGoldenrod        = 0xFFB8860BUL;
	static const ARGB DarkGray             = 0xFFA9A9A9UL;
	static const ARGB DarkGreen            = 0xFF006400UL;
	static const ARGB DarkKhaki            = 0xFFBDB76BUL;
	static const ARGB DarkMagenta          = 0xFF8B008BUL;
	static const ARGB DarkOliveGreen       = 0xFF556B2FUL;
	static const ARGB DarkOrange           = 0xFFFF8C00UL;
	static const ARGB DarkOrchid           = 0xFF9932CCUL;
	static const ARGB DarkRed              = 0xFF8B0000UL;
	static const ARGB DarkSalmon           = 0xFFE9967AUL;
	static const ARGB DarkSeaGreen         = 0xFF8FBC8FUL;
	static const ARGB DarkSlateBlue        = 0xFF483D8BUL;
	static const ARGB DarkSlateGray        = 0xFF2F4F4FUL;
	static const ARGB DarkTurquoise        = 0xFF00CED1UL;
	static const ARGB DarkViolet           = 0xFF9400D3UL;
	static const ARGB DeepPink             = 0xFFFF1493UL;
	static const ARGB DeepSkyBlue          = 0xFF00BFFFUL;
	static const ARGB DimGray              = 0xFF696969UL;
	static const ARGB DodgerBlue           = 0xFF1E90FFUL;
	static const ARGB Firebrick            = 0xFFB22222UL;
	static const ARGB FloralWhite          = 0xFFFFFAF0UL;
	static const ARGB ForestGreen          = 0xFF228B22UL;
	static const ARGB Fuchsia              = 0xFFFF00FFUL;
	static const ARGB Gainsboro            = 0xFFDCDCDCUL;
	static const ARGB GhostWhite           = 0xFFF8F8FFUL;
	static const ARGB Gold                 = 0xFFFFD700UL;
	static const ARGB Goldenrod            = 0xFFDAA520UL;
	static const ARGB Gray                 = 0xFF808080UL;
	static const ARGB Green                = 0xFF008000UL;
	static const ARGB GreenYellow          = 0xFFADFF2FUL;
	static const ARGB Honeydew             = 0xFFF0FFF0UL;
	static const ARGB HotPink              = 0xFFFF69B4UL;
	static const ARGB IndianRed            = 0xFFCD5C5CUL;
	static const ARGB Indigo               = 0xFF4B0082UL;
	static const ARGB Ivory                = 0xFFFFFFF0UL;
	static const ARGB Khaki                = 0xFFF0E68CUL;
	static const ARGB Lavender             = 0xFFE6E6FAUL;
	static const ARGB LavenderBlush        = 0xFFFFF0F5UL;
	static const ARGB LawnGreen            = 0xFF7CFC00UL;
	static const ARGB LemonChiffon         = 0xFFFFFACDUL;
	static const ARGB LightBlue            = 0xFFADD8E6UL;
	static const ARGB LightCoral           = 0xFFF08080UL;
	static const ARGB LightCyan            = 0xFFE0FFFFUL;
	static const ARGB LightGoldenrodYellow = 0xFFFAFAD2UL;
	static const ARGB LightGray            = 0xFFD3D3D3UL;
	static const ARGB LightGreen           = 0xFF90EE90UL;
	static const ARGB LightPink            = 0xFFFFB6C1UL;
	static const ARGB LightSalmon          = 0xFFFFA07AUL;
	static const ARGB LightSeaGreen        = 0xFF20B2AAUL;
	static const ARGB LightSkyBlue         = 0xFF87CEFAUL;
	static const ARGB LightSlateGray       = 0xFF778899UL;
	static const ARGB LightSteelBlue       = 0xFFB0C4DEUL;
	static const ARGB LightYellow          = 0xFFFFFFE0UL;
	static const ARGB Lime                 = 0xFF00FF00UL;
	static const ARGB LimeGreen            = 0xFF32CD32UL;
	static const ARGB Linen                = 0xFFFAF0E6UL;
	static const ARGB Magenta              = 0xFFFF00FFUL;
	static const ARGB Maroon               = 0xFF800000UL;
	static const ARGB MediumAquamarine     = 0xFF66CDAAUL;
	static const ARGB MediumBlue           = 0xFF0000CDUL;
	static const ARGB MediumOrchid         = 0xFFBA55D3UL;
	static const ARGB MediumPurple         = 0xFF9370DBUL;
	static const ARGB MediumSeaGreen       = 0xFF3CB371UL;
	static const ARGB MediumSlateBlue      = 0xFF7B68EEUL;
	static const ARGB MediumSpringGreen    = 0xFF00FA9AUL;
	static const ARGB MediumTurquoise      = 0xFF48D1CCUL;
	static const ARGB MediumVioletRed      = 0xFFC71585UL;
	static const ARGB MidnightBlue         = 0xFF191970UL;
	static const ARGB MintCream            = 0xFFF5FFFAUL;
	static const ARGB MistyRose            = 0xFFFFE4E1UL;
	static const ARGB Moccasin             = 0xFFFFE4B5UL;
	static const ARGB NavajoWhite          = 0xFFFFDEADUL;
	static const ARGB Navy                 = 0xFF000080UL;
	static const ARGB OldLace              = 0xFFFDF5E6UL;
	static const ARGB Olive                = 0xFF808000UL;
	static const ARGB OliveDrab            = 0xFF6B8E23UL;
	static const ARGB Orange               = 0xFFFFA500UL;
	static const ARGB OrangeRed            = 0xFFFF4500UL;
	static const ARGB Orchid               = 0xFFDA70D6UL;
	static const ARGB PaleGoldenrod        = 0xFFEEE8AAUL;
	static const ARGB PaleGreen            = 0xFF98FB98UL;
	static const ARGB PaleTurquoise        = 0xFFAFEEEEUL;
	static const ARGB PaleVioletRed        = 0xFFDB7093UL;
	static const ARGB PapayaWhip           = 0xFFFFEFD5UL;
	static const ARGB PeachPuff            = 0xFFFFDAB9UL;
	static const ARGB Peru                 = 0xFFCD853FUL;
	static const ARGB Pink                 = 0xFFFFC0CBUL;
	static const ARGB Plum                 = 0xFFDDA0DDUL;
	static const ARGB PowderBlue           = 0xFFB0E0E6UL;
	static const ARGB Purple               = 0xFF800080UL;
	static const ARGB Red                  = 0xFFFF0000UL;
	static const ARGB RosyBrown            = 0xFFBC8F8FUL;
	static const ARGB RoyalBlue            = 0xFF4169E1UL;
	static const ARGB SaddleBrown          = 0xFF8B4513UL;
	static const ARGB Salmon               = 0xFFFA8072UL;
	static const ARGB SandyBrown           = 0xFFF4A460UL;
	static const ARGB SeaGreen             = 0xFF2E8B57UL;
	static const ARGB SeaShell             = 0xFFFFF5EEUL;
	static const ARGB Sienna               = 0xFFA0522DUL;
	static const ARGB Silver               = 0xFFC0C0C0UL;
	static const ARGB SkyBlue              = 0xFF87CEEBUL;
	static const ARGB SlateBlue            = 0xFF6A5ACDUL;
	static const ARGB SlateGray            = 0xFF708090UL;
	static const ARGB Snow                 = 0xFFFFFAFAUL;
	static const ARGB SpringGreen          = 0xFF00FF7FUL;
	static const ARGB SteelBlue            = 0xFF4682B4UL;
	static const ARGB Tan                  = 0xFFD2B48CUL;
	static const ARGB Teal                 = 0xFF008080UL;
	static const ARGB Thistle              = 0xFFD8BFD8UL;
	static const ARGB Tomato               = 0xFFFF6347UL;
	static const ARGB Transparent          = 0x00FFFFFFUL;
	static const ARGB Turquoise            = 0xFF40E0D0UL;
	static const ARGB Violet               = 0xFFEE82EEUL;
	static const ARGB Wheat                = 0xFFF5DEB3UL;
	static const ARGB White                = 0xFFFFFFFFUL;
	static const ARGB WhiteSmoke           = 0xFFF5F5F5UL;
	static const ARGB Yellow               = 0xFFFFFF00UL;
	static const ARGB YellowGreen          = 0xFF9ACD32UL;

	Color(): Value(0xFF000000) {}
	Color(ARGB argb): Value(argb) {}
	Color(BYTE r, BYTE g, BYTE b): Value(MakeARGB(0xFF, r, g, b)) {}
	Color(BYTE a, BYTE r, BYTE g, BYTE b): Value(MakeARGB(a, r, g, b)) {}

	BYTE GetA() const
	{
		return (BYTE) (Value >> 24);
	}
	BYTE GetAlpha() const
	{
		return (BYTE) (Value >> 24);
	}
	BYTE GetB() const
	{
		return (BYTE) Value;
	}
	BYTE GetBlue() const
	{
		return (BYTE) Value;
	}
	BYTE GetG() const
	{
		return (BYTE) (Value >> 8);
	}
	BYTE GetGreen() const
	{
		return (BYTE) (Value >> 8);
	}
	BYTE GetR() const
	{
		return (BYTE) (Value >> 16);
	}
	BYTE GetRed() const
	{
		return (BYTE) (Value >> 16);
	}
	ARGB GetValue() const
	{
		return Value;
	}
	VOID SetFromCOLORREF(COLORREF rgb)
	{
		BYTE r = (BYTE) rgb;
		BYTE g = (BYTE) (rgb >> 8);
		BYTE b = (BYTE) (rgb >> 16);
		Value = MakeARGB(0xFF, r, g, b);
	}
	VOID SetValue(ARGB argb)
	{
		Value = argb;
	}
	COLORREF ToCOLORREF() const
	{
		return RGB(GetRed(), GetGreen(), GetBlue());
	}
	#endif /* __cplusplus */
} Color;

#endif /* __GDIPLUS_COLOR_H */