mirror of
https://github.com/reactos/reactos.git
synced 2024-06-01 02:01:57 +00:00
parent
d24acc9779
commit
1674307fd1
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* Copyright (C) 2008 Google (Lei Zhang)
|
||||
* 2015 Benedikt Freisen
|
||||
* 2019 Katayama Hirofumi MZ
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -20,81 +21,86 @@
|
|||
#ifndef _GDIPLUSCOLOR_H
|
||||
#define _GDIPLUSCOLOR_H
|
||||
|
||||
enum ColorChannelFlags
|
||||
typedef enum ColorChannelFlags
|
||||
{
|
||||
ColorChannelFlagsC,
|
||||
ColorChannelFlagsM,
|
||||
ColorChannelFlagsY,
|
||||
ColorChannelFlagsK,
|
||||
ColorChannelFlagsLast
|
||||
};
|
||||
} ColorChannelFlags;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
class Color
|
||||
{
|
||||
public:
|
||||
Color(VOID)
|
||||
Color() : Argb(0xff000000)
|
||||
{
|
||||
Argb = 0xff000000;
|
||||
}
|
||||
|
||||
Color(ARGB argb)
|
||||
Color(ARGB argb) : Argb(argb)
|
||||
{
|
||||
Argb = argb;
|
||||
}
|
||||
|
||||
Color(BYTE r, BYTE g, BYTE b)
|
||||
Color(BYTE r, BYTE g, BYTE b) : Argb(MakeARGB(0xFF, r, g, b))
|
||||
{
|
||||
Argb = 0xff << 24 | r << 16 | g << 8 | b;
|
||||
}
|
||||
|
||||
Color(BYTE a, BYTE r, BYTE g, BYTE b)
|
||||
Color(BYTE a, BYTE r, BYTE g, BYTE b) : Argb(MakeARGB(a, r, g, b))
|
||||
{
|
||||
Argb = a << 24 | r << 16 | g << 8 | b;
|
||||
}
|
||||
|
||||
BYTE GetA(VOID) const
|
||||
BYTE
|
||||
GetA() const
|
||||
{
|
||||
return (Argb >> 24) & 0xff;
|
||||
return (BYTE)(Argb >> 24);
|
||||
}
|
||||
|
||||
BYTE GetAlpha(VOID) const
|
||||
BYTE
|
||||
GetAlpha() const
|
||||
{
|
||||
return (Argb >> 24) & 0xff;
|
||||
return (BYTE)(Argb >> 24);
|
||||
}
|
||||
|
||||
BYTE GetB(VOID) const
|
||||
BYTE
|
||||
GetB() const
|
||||
{
|
||||
return Argb & 0xff;
|
||||
return (BYTE)Argb;
|
||||
}
|
||||
|
||||
BYTE GetBlue(VOID) const
|
||||
BYTE
|
||||
GetBlue() const
|
||||
{
|
||||
return Argb & 0xff;
|
||||
return (BYTE)Argb;
|
||||
}
|
||||
|
||||
BYTE GetG(VOID) const
|
||||
BYTE
|
||||
GetG() const
|
||||
{
|
||||
return (Argb >> 8) & 0xff;
|
||||
return (BYTE)(Argb >> 8);
|
||||
}
|
||||
|
||||
BYTE GetGreen(VOID) const
|
||||
BYTE
|
||||
GetGreen() const
|
||||
{
|
||||
return (Argb >> 8) & 0xff;
|
||||
return (BYTE)(Argb >> 8);
|
||||
}
|
||||
|
||||
BYTE GetR(VOID) const
|
||||
BYTE
|
||||
GetR() const
|
||||
{
|
||||
return (Argb >> 16) & 0xff;
|
||||
return (BYTE)(Argb >> 16);
|
||||
}
|
||||
|
||||
BYTE GetRed(VOID) const
|
||||
BYTE
|
||||
GetRed() const
|
||||
{
|
||||
return (Argb >> 16) & 0xff;
|
||||
return (BYTE)(Argb >> 16);
|
||||
}
|
||||
|
||||
ARGB GetValue(VOID) const
|
||||
ARGB
|
||||
GetValue() const
|
||||
{
|
||||
return Argb;
|
||||
}
|
||||
|
@ -102,13 +108,14 @@ class Color
|
|||
static ARGB
|
||||
MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b)
|
||||
{
|
||||
return a << 24 | r << 16 | g << 8 | b;
|
||||
ARGB a0 = a, r0 = r, g0 = g, b0 = b;
|
||||
return (a0 << AlphaShift) | (r0 << RedShift) | (g0 << GreenShift) | (b0 << BlueShift);
|
||||
}
|
||||
|
||||
VOID
|
||||
SetFromCOLORREF(COLORREF rgb)
|
||||
{
|
||||
Argb = 0xff000000 | (rgb & 0x000000ff) << 16 | (rgb & 0x0000ff00) | (rgb & 0x00ff0000) >> 16;
|
||||
Argb = MakeARGB(0xFF, GetRValue(rgb), GetGValue(rgb), GetBValue(rgb));
|
||||
}
|
||||
|
||||
VOID
|
||||
|
@ -117,11 +124,173 @@ class Color
|
|||
Argb = argb;
|
||||
}
|
||||
|
||||
COLORREF ToCOLORREF(VOID) const
|
||||
COLORREF
|
||||
ToCOLORREF() const
|
||||
{
|
||||
return (Argb & 0x000000ff) << 16 | (Argb & 0x0000ff00) | (Argb & 0x00ff0000) >> 16;
|
||||
return RGB(GetRed(), GetGreen(), GetBlue());
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
AlphaShift = 24,
|
||||
RedShift = 16,
|
||||
GreenShift = 8,
|
||||
BlueShift = 0
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
AlphaMask = 0xFF000000,
|
||||
RedMask = 0x00FF0000,
|
||||
GreenMask = 0x0000FF00,
|
||||
BlueMask = 0x000000FF
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
AliceBlue = 0xFFF0F8FF,
|
||||
AntiqueWhite = 0xFFFAEBD7,
|
||||
Aqua = 0xFF00FFFF,
|
||||
Aquamarine = 0xFF7FFFD4,
|
||||
Azure = 0xFFF0FFFF,
|
||||
Beige = 0xFFF5F5DC,
|
||||
Bisque = 0xFFFFE4C4,
|
||||
Black = 0xFF000000,
|
||||
BlanchedAlmond = 0xFFFFEBCD,
|
||||
Blue = 0xFF0000FF,
|
||||
BlueViolet = 0xFF8A2BE2,
|
||||
Brown = 0xFFA52A2A,
|
||||
BurlyWood = 0xFFDEB887,
|
||||
CadetBlue = 0xFF5F9EA0,
|
||||
Chartreuse = 0xFF7FFF00,
|
||||
Chocolate = 0xFFD2691E,
|
||||
Coral = 0xFFFF7F50,
|
||||
CornflowerBlue = 0xFF6495ED,
|
||||
Cornsilk = 0xFFFFF8DC,
|
||||
Crimson = 0xFFDC143C,
|
||||
Cyan = 0xFF00FFFF,
|
||||
DarkBlue = 0xFF00008B,
|
||||
DarkCyan = 0xFF008B8B,
|
||||
DarkGoldenrod = 0xFFB8860B,
|
||||
DarkGray = 0xFFA9A9A9,
|
||||
DarkGreen = 0xFF006400,
|
||||
DarkKhaki = 0xFFBDB76B,
|
||||
DarkMagenta = 0xFF8B008B,
|
||||
DarkOliveGreen = 0xFF556B2F,
|
||||
DarkOrange = 0xFFFF8C00,
|
||||
DarkOrchid = 0xFF9932CC,
|
||||
DarkRed = 0xFF8B0000,
|
||||
DarkSalmon = 0xFFE9967A,
|
||||
DarkSeaGreen = 0xFF8FBC8F,
|
||||
DarkSlateBlue = 0xFF483D8B,
|
||||
DarkSlateGray = 0xFF2F4F4F,
|
||||
DarkTurquoise = 0xFF00CED1,
|
||||
DarkViolet = 0xFF9400D3,
|
||||
DeepPink = 0xFFFF1493,
|
||||
DeepSkyBlue = 0xFF00BFFF,
|
||||
DimGray = 0xFF696969,
|
||||
DodgerBlue = 0xFF1E90FF,
|
||||
Firebrick = 0xFFB22222,
|
||||
FloralWhite = 0xFFFFFAF0,
|
||||
ForestGreen = 0xFF228B22,
|
||||
Fuchsia = 0xFFFF00FF,
|
||||
Gainsboro = 0xFFDCDCDC,
|
||||
GhostWhite = 0xFFF8F8FF,
|
||||
Gold = 0xFFFFD700,
|
||||
Goldenrod = 0xFFDAA520,
|
||||
Gray = 0xFF808080,
|
||||
Green = 0xFF008000,
|
||||
GreenYellow = 0xFFADFF2F,
|
||||
Honeydew = 0xFFF0FFF0,
|
||||
HotPink = 0xFFFF69B4,
|
||||
IndianRed = 0xFFCD5C5C,
|
||||
Indigo = 0xFF4B0082,
|
||||
Ivory = 0xFFFFFFF0,
|
||||
Khaki = 0xFFF0E68C,
|
||||
Lavender = 0xFFE6E6FA,
|
||||
LavenderBlush = 0xFFFFF0F5,
|
||||
LawnGreen = 0xFF7CFC00,
|
||||
LemonChiffon = 0xFFFFFACD,
|
||||
LightBlue = 0xFFADD8E6,
|
||||
LightCoral = 0xFFF08080,
|
||||
LightCyan = 0xFFE0FFFF,
|
||||
LightGoldenrodYellow = 0xFFFAFAD2,
|
||||
LightGray = 0xFFD3D3D3,
|
||||
LightGreen = 0xFF90EE90,
|
||||
LightPink = 0xFFFFB6C1,
|
||||
LightSalmon = 0xFFFFA07A,
|
||||
LightSeaGreen = 0xFF20B2AA,
|
||||
LightSkyBlue = 0xFF87CEFA,
|
||||
LightSlateGray = 0xFF778899,
|
||||
LightSteelBlue = 0xFFB0C4DE,
|
||||
LightYellow = 0xFFFFFFE0,
|
||||
Lime = 0xFF00FF00,
|
||||
LimeGreen = 0xFF32CD32,
|
||||
Linen = 0xFFFAF0E6,
|
||||
Magenta = 0xFFFF00FF,
|
||||
Maroon = 0xFF800000,
|
||||
MediumAquamarine = 0xFF66CDAA,
|
||||
MediumBlue = 0xFF0000CD,
|
||||
MediumOrchid = 0xFFBA55D3,
|
||||
MediumPurple = 0xFF9370DB,
|
||||
MediumSeaGreen = 0xFF3CB371,
|
||||
MediumSlateBlue = 0xFF7B68EE,
|
||||
MediumSpringGreen = 0xFF00FA9A,
|
||||
MediumTurquoise = 0xFF48D1CC,
|
||||
MediumVioletRed = 0xFFC71585,
|
||||
MidnightBlue = 0xFF191970,
|
||||
MintCream = 0xFFF5FFFA,
|
||||
MistyRose = 0xFFFFE4E1,
|
||||
Moccasin = 0xFFFFE4B5,
|
||||
NavajoWhite = 0xFFFFDEAD,
|
||||
Navy = 0xFF000080,
|
||||
OldLace = 0xFFFDF5E6,
|
||||
Olive = 0xFF808000,
|
||||
OliveDrab = 0xFF6B8E23,
|
||||
Orange = 0xFFFFA500,
|
||||
OrangeRed = 0xFFFF4500,
|
||||
Orchid = 0xFFDA70D6,
|
||||
PaleGoldenrod = 0xFFEEE8AA,
|
||||
PaleGreen = 0xFF98FB98,
|
||||
PaleTurquoise = 0xFFAFEEEE,
|
||||
PaleVioletRed = 0xFFDB7093,
|
||||
PapayaWhip = 0xFFFFEFD5,
|
||||
PeachPuff = 0xFFFFDAB9,
|
||||
Peru = 0xFFCD853F,
|
||||
Pink = 0xFFFFC0CB,
|
||||
Plum = 0xFFDDA0DD,
|
||||
PowderBlue = 0xFFB0E0E6,
|
||||
Purple = 0xFF800080,
|
||||
Red = 0xFFFF0000,
|
||||
RosyBrown = 0xFFBC8F8F,
|
||||
RoyalBlue = 0xFF4169E1,
|
||||
SaddleBrown = 0xFF8B4513,
|
||||
Salmon = 0xFFFA8072,
|
||||
SandyBrown = 0xFFF4A460,
|
||||
SeaGreen = 0xFF2E8B57,
|
||||
SeaShell = 0xFFFFF5EE,
|
||||
Sienna = 0xFFA0522D,
|
||||
Silver = 0xFFC0C0C0,
|
||||
SkyBlue = 0xFF87CEEB,
|
||||
SlateBlue = 0xFF6A5ACD,
|
||||
SlateGray = 0xFF708090,
|
||||
Snow = 0xFFFFFAFA,
|
||||
SpringGreen = 0xFF00FF7F,
|
||||
SteelBlue = 0xFF4682B4,
|
||||
Tan = 0xFFD2B48C,
|
||||
Teal = 0xFF008080,
|
||||
Thistle = 0xFFD8BFD8,
|
||||
Tomato = 0xFFFF6347,
|
||||
Transparent = 0x00FFFFFF,
|
||||
Turquoise = 0xFF40E0D0,
|
||||
Violet = 0xFFEE82EE,
|
||||
Wheat = 0xFFF5DEB3,
|
||||
White = 0xFFFFFFFF,
|
||||
WhiteSmoke = 0xFFF5F5F5,
|
||||
Yellow = 0xFFFFFF00,
|
||||
YellowGreen = 0xFF9ACD32
|
||||
};
|
||||
|
||||
protected:
|
||||
ARGB Argb;
|
||||
};
|
||||
|
@ -133,8 +302,6 @@ typedef struct Color
|
|||
ARGB Argb;
|
||||
} Color;
|
||||
|
||||
typedef enum ColorChannelFlags ColorChannelFlags;
|
||||
|
||||
#endif /* end of c typedefs */
|
||||
|
||||
#endif /* _GDIPLUSCOLOR_H */
|
||||
|
|
Loading…
Reference in a new issue