| /* | |
| * 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 = 0xFF000000; | |
| static const ARGB AliceBlue = 0xFFF0F8FF; | |
| static const ARGB AntiqueWhite = 0xFFFAEBD7; | |
| static const ARGB Aqua = 0xFF00FFFF; | |
| static const ARGB Aquamarine = 0xFF7FFFD4; | |
| static const ARGB Azure = 0xFFF0FFFF; | |
| static const ARGB Beige = 0xFFF5F5DC; | |
| static const ARGB Bisque = 0xFFFFE4C4; | |
| static const ARGB Black = 0xFF000000; | |
| static const ARGB BlanchedAlmond = 0xFFFFEBCD; | |
| static const ARGB Blue = 0xFF0000FF; | |
| static const ARGB BlueViolet = 0xFF8A2BE2; | |
| static const ARGB Brown = 0xFFA52A2A; | |
| static const ARGB BurlyWood = 0xFFDEB887; | |
| static const ARGB CadetBlue = 0xFF5F9EA0; | |
| static const ARGB Chartreuse = 0xFF7FFF00; | |
| static const ARGB Chocolate = 0xFFD2691E; | |
| static const ARGB Coral = 0xFFFF7F50; | |
| static const ARGB CornflowerBlue = 0xFF6495ED; | |
| static const ARGB Cornsilk = 0xFFFFF8DC; | |
| static const ARGB Crimson = 0xFFDC143C; | |
| static const ARGB Cyan = 0xFF00FFFF; | |
| static const ARGB DarkBlue = 0xFF00008B; | |
| static const ARGB DarkCyan = 0xFF008B8B; | |
| static const ARGB DarkGoldenrod = 0xFFB8860B; | |
| static const ARGB DarkGray = 0xFFA9A9A9; | |
| static const ARGB DarkGreen = 0xFF006400; | |
| static const ARGB DarkKhaki = 0xFFBDB76B; | |
| static const ARGB DarkMagenta = 0xFF8B008B; | |
| static const ARGB DarkOliveGreen = 0xFF556B2F; | |
| static const ARGB DarkOrange = 0xFFFF8C00; | |
| static const ARGB DarkOrchid = 0xFF9932CC; | |
| static const ARGB DarkRed = 0xFF8B0000; | |
| static const ARGB DarkSalmon = 0xFFE9967A; | |
| static const ARGB DarkSeaGreen = 0xFF8FBC8F; | |
| static const ARGB DarkSlateBlue = 0xFF483D8B; | |
| static const ARGB DarkSlateGray = 0xFF2F4F4F; | |
| static const ARGB DarkTurquoise = 0xFF00CED1; | |
| static const ARGB DarkViolet = 0xFF9400D3; | |
| static const ARGB DeepPink = 0xFFFF1493; | |
| static const ARGB DeepSkyBlue = 0xFF00BFFF; | |
| static const ARGB DimGray = 0xFF696969; | |
| static const ARGB DodgerBlue = 0xFF1E90FF; | |
| static const ARGB Firebrick = 0xFFB22222; | |
| static const ARGB FloralWhite = 0xFFFFFAF0; | |
| static const ARGB ForestGreen = 0xFF228B22; | |
| static const ARGB Fuchsia = 0xFFFF00FF; | |
| static const ARGB Gainsboro = 0xFFDCDCDC; | |
| static const ARGB GhostWhite = 0xFFF8F8FF; | |
| static const ARGB Gold = 0xFFFFD700; | |
| static const ARGB Goldenrod = 0xFFDAA520; | |
| static const ARGB Gray = 0xFF808080; | |
| static const ARGB Green = 0xFF008000; | |
| static const ARGB GreenYellow = 0xFFADFF2F; | |
| static const ARGB Honeydew = 0xFFF0FFF0; | |
| static const ARGB HotPink = 0xFFFF69B4; | |
| static const ARGB IndianRed = 0xFFCD5C5C; | |
| static const ARGB Indigo = 0xFF4B0082; | |
| static const ARGB Ivory = 0xFFFFFFF0; | |
| static const ARGB Khaki = 0xFFF0E68C; | |
| static const ARGB Lavender = 0xFFE6E6FA; | |
| static const ARGB LavenderBlush = 0xFFFFF0F5; | |
| static const ARGB LawnGreen = 0xFF7CFC00; | |
| static const ARGB LemonChiffon = 0xFFFFFACD; | |
| static const ARGB LightBlue = 0xFFADD8E6; | |
| static const ARGB LightCoral = 0xFFF08080; | |
| static const ARGB LightCyan = 0xFFE0FFFF; | |
| static const ARGB LightGoldenrodYellow = 0xFFFAFAD2; | |
| static const ARGB LightGray = 0xFFD3D3D3; | |
| static const ARGB LightGreen = 0xFF90EE90; | |
| static const ARGB LightPink = 0xFFFFB6C1; | |
| static const ARGB LightSalmon = 0xFFFFA07A; | |
| static const ARGB LightSeaGreen = 0xFF20B2AA; | |
| static const ARGB LightSkyBlue = 0xFF87CEFA; | |
| static const ARGB LightSlateGray = 0xFF778899; | |
| static const ARGB LightSteelBlue = 0xFFB0C4DE; | |
| static const ARGB LightYellow = 0xFFFFFFE0; | |
| static const ARGB Lime = 0xFF00FF00; | |
| static const ARGB LimeGreen = 0xFF32CD32; | |
| static const ARGB Linen = 0xFFFAF0E6; | |
| static const ARGB Magenta = 0xFFFF00FF; | |
| static const ARGB Maroon = 0xFF800000; | |
| static const ARGB MediumAquamarine = 0xFF66CDAA; | |
| static const ARGB MediumBlue = 0xFF0000CD; | |
| static const ARGB MediumOrchid = 0xFFBA55D3; | |
| static const ARGB MediumPurple = 0xFF9370DB; | |
| static const ARGB MediumSeaGreen = 0xFF3CB371; | |
| static const ARGB MediumSlateBlue = 0xFF7B68EE; | |
| static const ARGB MediumSpringGreen = 0xFF00FA9A; | |
| static const ARGB MediumTurquoise = 0xFF48D1CC; | |
| static const ARGB MediumVioletRed = 0xFFC71585; | |
| static const ARGB MidnightBlue = 0xFF191970; | |
| static const ARGB MintCream = 0xFFF5FFFA; | |
| static const ARGB MistyRose = 0xFFFFE4E1; | |
| static const ARGB Moccasin = 0xFFFFE4B5; | |
| static const ARGB NavajoWhite = 0xFFFFDEAD; | |
| static const ARGB Navy = 0xFF000080; | |
| static const ARGB OldLace = 0xFFFDF5E6; | |
| static const ARGB Olive = 0xFF808000; | |
| static const ARGB OliveDrab = 0xFF6B8E23; | |
| static const ARGB Orange = 0xFFFFA500; | |
| static const ARGB OrangeRed = 0xFFFF4500; | |
| static const ARGB Orchid = 0xFFDA70D6; | |
| static const ARGB PaleGoldenrod = 0xFFEEE8AA; | |
| static const ARGB PaleGreen = 0xFF98FB98; | |
| static const ARGB PaleTurquoise = 0xFFAFEEEE; | |
| static const ARGB PaleVioletRed = 0xFFDB7093; | |
| static const ARGB PapayaWhip = 0xFFFFEFD5; | |
| static const ARGB PeachPuff = 0xFFFFDAB9; | |
| static const ARGB Peru = 0xFFCD853F; | |
| static const ARGB Pink = 0xFFFFC0CB; | |
| static const ARGB Plum = 0xFFDDA0DD; | |
| static const ARGB PowderBlue = 0xFFB0E0E6; | |
| static const ARGB Purple = 0xFF800080; | |
| static const ARGB Red = 0xFFFF0000; | |
| static const ARGB RosyBrown = 0xFFBC8F8F; | |
| static const ARGB RoyalBlue = 0xFF4169E1; | |
| static const ARGB SaddleBrown = 0xFF8B4513; | |
| static const ARGB Salmon = 0xFFFA8072; | |
| static const ARGB SandyBrown = 0xFFF4A460; | |
| static const ARGB SeaGreen = 0xFF2E8B57; | |
| static const ARGB SeaShell = 0xFFFFF5EE; | |
| static const ARGB Sienna = 0xFFA0522D; | |
| static const ARGB Silver = 0xFFC0C0C0; | |
| static const ARGB SkyBlue = 0xFF87CEEB; | |
| static const ARGB SlateBlue = 0xFF6A5ACD; | |
| static const ARGB SlateGray = 0xFF708090; | |
| static const ARGB Snow = 0xFFFFFAFA; | |
| static const ARGB SpringGreen = 0xFF00FF7F; | |
| static const ARGB SteelBlue = 0xFF4682B4; | |
| static const ARGB Tan = 0xFFD2B48C; | |
| static const ARGB Teal = 0xFF008080; | |
| static const ARGB Thistle = 0xFFD8BFD8; | |
| static const ARGB Tomato = 0xFFFF6347; | |
| static const ARGB Transparent = 0x00FFFFFF; | |
| static const ARGB Turquoise = 0xFF40E0D0; | |
| static const ARGB Violet = 0xFFEE82EE; | |
| static const ARGB Wheat = 0xFFF5DEB3; | |
| static const ARGB White = 0xFFFFFFFF; | |
| static const ARGB WhiteSmoke = 0xFFF5F5F5; | |
| static const ARGB Yellow = 0xFFFFFF00; | |
| static const ARGB YellowGreen = 0xFF9ACD32; | |
| 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 */ |