diff --git a/GNUmakefile b/GNUmakefile
index 7680681..5ea51c5 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -26,7 +26,7 @@ L_CFLAGS = $(DEPINC) $(CFLAGS) -fPIC -D_MILSKO
L_LDFLAGS = $(LDFLAGS)
L_LIBS = $(LIBS)
-L_OBJS = src/core.o src/default.o src/draw.o src/lowlevel.o src/font.o src/boldfont.o src/error.o src/unicode.o
+L_OBJS = src/core.o src/default.o src/draw.o src/lowlevel.o src/font.o src/boldfont.o src/error.o src/unicode.o src/color.o src/messagebox.o
L_OBJS += src/external/ds.o src/external/image.o
L_OBJS += src/widget/window.o src/widget/button.o src/widget/frame.o src/widget/menu.o src/widget/submenu.o src/widget/image.o src/widget/scrollbar.o src/widget/checkbox.o src/widget/label.o src/widget/entry.o src/widget/numberentry.o
L_OBJS += src/cursor/default.o src/cursor/cross.o src/cursor/text.o
diff --git a/NTMakefile b/NTMakefile
index ad1e0ac..db18e06 100644
--- a/NTMakefile
+++ b/NTMakefile
@@ -2,7 +2,7 @@
CC = cl
LD = link
-OBJS = src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\boldfont.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\backend\gdi.obj
+OBJS = src\core.obj src\draw.obj src\default.obj src\lowlevel.obj src\error.obj src\unicode.obj src\font.obj src\color.obj src\messagebox.obj src\boldfont.obj src\widget\button.obj src\widget\frame.obj src\widget\opengl.obj src\widget\window.obj src\widget\menu.obj src\widget\entry.obj src\widget\submenu.obj src\widget\image.obj src\widget\scrollbar.obj src\widget\checkbox.obj src\widget\label.obj src\widget\numberentry.obj src\external\ds.obj src\external\image.obj src\cursor\default.obj src\cursor\cross.obj src\cursor\text.obj src\backend\gdi.obj
OOOBJS = oosrc\base.obj oosrc\widget\button.obj oosrc\widget\frame.obj oosrc\widget\image.obj oosrc\widget\menu.obj oosrc\widget\opengl.obj oosrc\widget\scrollbar.obj oosrc\widget\submenu.obj oosrc\widget\window.obj oosrc\widget\checkbox.obj oosrc\widget\label.obj oosrc\widget\entry.obj oosrc\widget\numberentry.obj
CFLAGS = /nologo /DSTBI_NO_SIMD /D_MILSKO /DUSE_GDI /DUSE_STB_IMAGE /Iinclude
CXXFLAGS = /nologo /Iinclude
diff --git a/doc/index.html b/doc/index.html
index bb0d513..9f2190e 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -23,6 +23,21 @@
#define MwDEFAULT 0x0fffffff
+
+ #define MwMB_ICONMASK 0xf
+
+
+ #define MwMB_ICONWARNING 0x1
+
+
+ #define MwMB_ICONINFO 0x2
+
+
+ #define MwMB_ICONNOTE 0x3
+
+
+ #define MwMB_ICONQUESTION 0x4
+
Mw/Core.h
@@ -176,6 +191,9 @@
MwLoadXPM
+
+ MwParseColorName
+
Mw/Error.h
@@ -200,12 +218,30 @@
MwBoldFontData[]
+
+ Mw/Icon.h
+
+
+ MwIconInfo[]
+
+
+ MwIconNote[]
+
+
+ MwIconQuestion[]
+
+
+ MwIconWarning[]
+
Mw/LowLevel.h
Mw/MachDep.h
+
+ Mw/MessageBox.h
+
Mw/Milsko.h
@@ -414,6 +450,41 @@
+#define MwMB_ICONMASK 0xf
+
+-
+ Icon mask.
+
+
+
+#define MwMB_ICONWARNING 0x1
+
+-
+ Warning icon.
+
+
+
+#define MwMB_ICONINFO 0x2
+
+-
+ Information icon.
+
+
+
+#define MwMB_ICONNOTE 0x3
+
+-
+ Note icon.
+
+
+
+#define MwMB_ICONQUESTION 0x4
+
+-
+ Question icon.
+
+
+
Mw/Core.h
-
@@ -1705,6 +1776,34 @@
+MWDECL MwLLColor MwParseColorName (
+ MwWidget handle,
+ const char* color
+);
+
+-
+ Parses a color name.
+
+-
+ Parameter
handle
+
+-
+ Widget.
+
+-
+ Parameter
color
+
+-
+ Color name.
+
+-
+ Returns
+
+-
+ Color.
+
+
+
Mw/Error.h
-
@@ -1763,6 +1862,41 @@
+Mw/Icon.h
+
+-
+ Icon.
+
+
+
+MWDECL char* MwIconInfo[];
+
+-
+ Info icon.
+
+
+
+MWDECL char* MwIconNote[];
+
+-
+ Note icon.
+
+
+
+MWDECL char* MwIconQuestion[];
+
+-
+ Question icon.
+
+
+
+MWDECL char* MwIconWarning[];
+
+-
+ Warning icon.
+
+
+
Mw/LowLevel.h
-
@@ -1780,6 +1914,13 @@
+Mw/MessageBox.h
+
+-
+ Message box.
+
+
+
Mw/Milsko.h
-
diff --git a/include/Mw/Constants.h b/include/Mw/Constants.h
index d6e6f01..2a47891 100644
--- a/include/Mw/Constants.h
+++ b/include/Mw/Constants.h
@@ -38,4 +38,29 @@ enum MwALIGNMENT {
*/
#define MwDEFAULT 0x0fffffff
+/*!
+ * %brief Icon mask
+ */
+#define MwMB_ICONMASK 0xf
+
+/*!
+ * %brief Warning icon
+ */
+#define MwMB_ICONWARNING 0x1
+
+/*!
+ * %brief Information icon
+ */
+#define MwMB_ICONINFO 0x2
+
+/*!
+ * %brief Note icon
+ */
+#define MwMB_ICONNOTE 0x3
+
+/*!
+ * %brief Question icon
+ */
+#define MwMB_ICONQUESTION 0x4
+
#endif
diff --git a/include/Mw/Draw.h b/include/Mw/Draw.h
index d62d1a7..7a993d1 100644
--- a/include/Mw/Draw.h
+++ b/include/Mw/Draw.h
@@ -133,6 +133,16 @@ MWDECL MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int
*/
MWDECL MwLLPixmap MwLoadXPM(MwWidget handle, char** data);
+/* color.c */
+
+/*!
+ * %brief Parses a color name
+ * %param handle Widget
+ * %param color Color name
+ * %return Color
+ */
+MWDECL MwLLColor MwParseColorName(MwWidget handle, const char* color);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h
index db62a9c..79b1ed0 100644
--- a/include/Mw/LowLevel.h
+++ b/include/Mw/LowLevel.h
@@ -90,6 +90,10 @@ MWDECL void MwLLSetCursor(MwLL handle, MwCursor* image, MwCursor* mask);
MWDECL void MwLLDetach(MwLL handle, MwPoint* point);
MWDECL void MwLLShow(MwLL handle, int show);
+MWDECL void MwLLMakePopup(MwLL handle, MwLL parent);
+
+MWDECL void MwLLSetSizeHints(MwLL handle, int minx, int miny, int maxx, int maxy);
+
#ifdef __cplusplus
}
#endif
diff --git a/include/Mw/MessageBox.h b/include/Mw/MessageBox.h
new file mode 100644
index 0000000..2342e46
--- /dev/null
+++ b/include/Mw/MessageBox.h
@@ -0,0 +1,29 @@
+/* $Id$ */
+/*!
+ * %file Mw/MessageBox.h
+ * %brief Message box
+ */
+#ifndef __MW_MESSAGEBOX_H__
+#define __MW_MESSAGEBOX_H__
+
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*!
+ * %param handle Widget
+ * %param text Text
+ * %param title Title text
+ * %param flag Flag
+ * %return Widget
+ */
+MWDECL MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/Mw/Milsko.h b/include/Mw/Milsko.h
index 4984b3b..d4d9aa7 100644
--- a/include/Mw/Milsko.h
+++ b/include/Mw/Milsko.h
@@ -19,6 +19,7 @@
#include
#include
#include
+#include
#include
#include
diff --git a/src/backend/gdi.c b/src/backend/gdi.c
index 970aee2..8d79ad6 100644
--- a/src/backend/gdi.c
+++ b/src/backend/gdi.c
@@ -406,3 +406,12 @@ void MwLLShow(MwLL handle, int show) {
ShowWindow(handle->hWnd, show ? SW_NORMAL : SW_HIDE);
if(show) SetFocus(handle->hWnd);
}
+
+void MwLLMakePopup(MwLL handle, MwLL parent) {
+ (void)handle;
+ (void)parent;
+ /* TODO */
+}
+
+void MwLLSetSizeHints(MwLL handle, int minx, int miny, int maxx, int maxy) {
+}
diff --git a/src/backend/x11.c b/src/backend/x11.c
index 08aff70..cb254a4 100644
--- a/src/backend/x11.c
+++ b/src/backend/x11.c
@@ -452,3 +452,25 @@ void MwLLShow(MwLL handle, int show) {
XUnmapWindow(handle->display, handle->window);
}
}
+
+void MwLLMakePopup(MwLL handle, MwLL parent) {
+ Atom wndtype = XInternAtom(handle->display, "_NET_WM_WINDOW_TYPE", False);
+ Atom wnddlg = XInternAtom(handle->display, "_NET_WM_WINDOW_TYPE_DIALOG", False);
+ Atom wndstate = XInternAtom(handle->display, "_NET_WM_STATE", False);
+ Atom wndmodal = XInternAtom(handle->display, "_NET_WM_STATE_MODAL", False);
+
+ XSetTransientForHint(handle->display, handle->window, parent->window);
+ XChangeProperty(handle->display, handle->window, wndtype, XA_ATOM, 32, PropModeReplace, (unsigned char*)&wnddlg, 1);
+ XChangeProperty(handle->display, handle->window, wndstate, XA_ATOM, 32, PropModeReplace, (unsigned char*)&wndmodal, 1);
+}
+
+void MwLLSetSizeHints(MwLL handle, int minx, int miny, int maxx, int maxy) {
+ XSizeHints* hints = XAllocSizeHints();
+ hints->flags = PMinSize | PMaxSize;
+ hints->min_width = minx;
+ hints->min_height = miny;
+ hints->max_width = maxx;
+ hints->max_height = maxy;
+ XSetWMSizeHints(handle->display, handle->window, hints, XA_WM_NORMAL_HINTS);
+ XFree(hints);
+}
diff --git a/src/backend/x11.h b/src/backend/x11.h
index 1801436..2ed8982 100644
--- a/src/backend/x11.h
+++ b/src/backend/x11.h
@@ -8,6 +8,7 @@
#include
#include
+#include
#include
#include
#include
diff --git a/src/color.c b/src/color.c
new file mode 100644
index 0000000..cae312c
--- /dev/null
+++ b/src/color.c
@@ -0,0 +1,2964 @@
+/* $Id$ */
+#include
+
+MwLLColor MwParseColorName(MwWidget handle, const char* color) {
+ int r, g, b;
+ if(strcmp(color, "snow") == 0) {
+ r = 255;
+ g = 250;
+ b = 250;
+ } else if(strcmp(color, "ghost white") == 0) {
+ r = 248;
+ g = 248;
+ b = 255;
+ } else if(strcmp(color, "GhostWhite") == 0) {
+ r = 248;
+ g = 248;
+ b = 255;
+ } else if(strcmp(color, "white smoke") == 0) {
+ r = 245;
+ g = 245;
+ b = 245;
+ } else if(strcmp(color, "WhiteSmoke") == 0) {
+ r = 245;
+ g = 245;
+ b = 245;
+ } else if(strcmp(color, "gainsboro") == 0) {
+ r = 220;
+ g = 220;
+ b = 220;
+ } else if(strcmp(color, "floral white") == 0) {
+ r = 255;
+ g = 250;
+ b = 240;
+ } else if(strcmp(color, "FloralWhite") == 0) {
+ r = 255;
+ g = 250;
+ b = 240;
+ } else if(strcmp(color, "old lace") == 0) {
+ r = 253;
+ g = 245;
+ b = 230;
+ } else if(strcmp(color, "OldLace") == 0) {
+ r = 253;
+ g = 245;
+ b = 230;
+ } else if(strcmp(color, "linen") == 0) {
+ r = 250;
+ g = 240;
+ b = 230;
+ } else if(strcmp(color, "antique white") == 0) {
+ r = 250;
+ g = 235;
+ b = 215;
+ } else if(strcmp(color, "AntiqueWhite") == 0) {
+ r = 250;
+ g = 235;
+ b = 215;
+ } else if(strcmp(color, "papaya whip") == 0) {
+ r = 255;
+ g = 239;
+ b = 213;
+ } else if(strcmp(color, "PapayaWhip") == 0) {
+ r = 255;
+ g = 239;
+ b = 213;
+ } else if(strcmp(color, "blanched almond") == 0) {
+ r = 255;
+ g = 235;
+ b = 205;
+ } else if(strcmp(color, "BlanchedAlmond") == 0) {
+ r = 255;
+ g = 235;
+ b = 205;
+ } else if(strcmp(color, "bisque") == 0) {
+ r = 255;
+ g = 228;
+ b = 196;
+ } else if(strcmp(color, "peach puff") == 0) {
+ r = 255;
+ g = 218;
+ b = 185;
+ } else if(strcmp(color, "PeachPuff") == 0) {
+ r = 255;
+ g = 218;
+ b = 185;
+ } else if(strcmp(color, "navajo white") == 0) {
+ r = 255;
+ g = 222;
+ b = 173;
+ } else if(strcmp(color, "NavajoWhite") == 0) {
+ r = 255;
+ g = 222;
+ b = 173;
+ } else if(strcmp(color, "moccasin") == 0) {
+ r = 255;
+ g = 228;
+ b = 181;
+ } else if(strcmp(color, "cornsilk") == 0) {
+ r = 255;
+ g = 248;
+ b = 220;
+ } else if(strcmp(color, "ivory") == 0) {
+ r = 255;
+ g = 255;
+ b = 240;
+ } else if(strcmp(color, "lemon chiffon") == 0) {
+ r = 255;
+ g = 250;
+ b = 205;
+ } else if(strcmp(color, "LemonChiffon") == 0) {
+ r = 255;
+ g = 250;
+ b = 205;
+ } else if(strcmp(color, "seashell") == 0) {
+ r = 255;
+ g = 245;
+ b = 238;
+ } else if(strcmp(color, "honeydew") == 0) {
+ r = 240;
+ g = 255;
+ b = 240;
+ } else if(strcmp(color, "mint cream") == 0) {
+ r = 245;
+ g = 255;
+ b = 250;
+ } else if(strcmp(color, "MintCream") == 0) {
+ r = 245;
+ g = 255;
+ b = 250;
+ } else if(strcmp(color, "azure") == 0) {
+ r = 240;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "alice blue") == 0) {
+ r = 240;
+ g = 248;
+ b = 255;
+ } else if(strcmp(color, "AliceBlue") == 0) {
+ r = 240;
+ g = 248;
+ b = 255;
+ } else if(strcmp(color, "lavender") == 0) {
+ r = 230;
+ g = 230;
+ b = 250;
+ } else if(strcmp(color, "lavender blush") == 0) {
+ r = 255;
+ g = 240;
+ b = 245;
+ } else if(strcmp(color, "LavenderBlush") == 0) {
+ r = 255;
+ g = 240;
+ b = 245;
+ } else if(strcmp(color, "misty rose") == 0) {
+ r = 255;
+ g = 228;
+ b = 225;
+ } else if(strcmp(color, "MistyRose") == 0) {
+ r = 255;
+ g = 228;
+ b = 225;
+ } else if(strcmp(color, "white") == 0) {
+ r = 255;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "black") == 0) {
+ r = 0;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "dark slate gray") == 0) {
+ r = 47;
+ g = 79;
+ b = 79;
+ } else if(strcmp(color, "DarkSlateGray") == 0) {
+ r = 47;
+ g = 79;
+ b = 79;
+ } else if(strcmp(color, "dark slate grey") == 0) {
+ r = 47;
+ g = 79;
+ b = 79;
+ } else if(strcmp(color, "DarkSlateGrey") == 0) {
+ r = 47;
+ g = 79;
+ b = 79;
+ } else if(strcmp(color, "dim gray") == 0) {
+ r = 105;
+ g = 105;
+ b = 105;
+ } else if(strcmp(color, "DimGray") == 0) {
+ r = 105;
+ g = 105;
+ b = 105;
+ } else if(strcmp(color, "dim grey") == 0) {
+ r = 105;
+ g = 105;
+ b = 105;
+ } else if(strcmp(color, "DimGrey") == 0) {
+ r = 105;
+ g = 105;
+ b = 105;
+ } else if(strcmp(color, "slate gray") == 0) {
+ r = 112;
+ g = 128;
+ b = 144;
+ } else if(strcmp(color, "SlateGray") == 0) {
+ r = 112;
+ g = 128;
+ b = 144;
+ } else if(strcmp(color, "slate grey") == 0) {
+ r = 112;
+ g = 128;
+ b = 144;
+ } else if(strcmp(color, "SlateGrey") == 0) {
+ r = 112;
+ g = 128;
+ b = 144;
+ } else if(strcmp(color, "light slate gray") == 0) {
+ r = 119;
+ g = 136;
+ b = 153;
+ } else if(strcmp(color, "LightSlateGray") == 0) {
+ r = 119;
+ g = 136;
+ b = 153;
+ } else if(strcmp(color, "light slate grey") == 0) {
+ r = 119;
+ g = 136;
+ b = 153;
+ } else if(strcmp(color, "LightSlateGrey") == 0) {
+ r = 119;
+ g = 136;
+ b = 153;
+ } else if(strcmp(color, "gray") == 0) {
+ r = 190;
+ g = 190;
+ b = 190;
+ } else if(strcmp(color, "grey") == 0) {
+ r = 190;
+ g = 190;
+ b = 190;
+ } else if(strcmp(color, "light grey") == 0) {
+ r = 211;
+ g = 211;
+ b = 211;
+ } else if(strcmp(color, "LightGrey") == 0) {
+ r = 211;
+ g = 211;
+ b = 211;
+ } else if(strcmp(color, "light gray") == 0) {
+ r = 211;
+ g = 211;
+ b = 211;
+ } else if(strcmp(color, "LightGray") == 0) {
+ r = 211;
+ g = 211;
+ b = 211;
+ } else if(strcmp(color, "midnight blue") == 0) {
+ r = 25;
+ g = 25;
+ b = 112;
+ } else if(strcmp(color, "MidnightBlue") == 0) {
+ r = 25;
+ g = 25;
+ b = 112;
+ } else if(strcmp(color, "navy") == 0) {
+ r = 0;
+ g = 0;
+ b = 128;
+ } else if(strcmp(color, "navy blue") == 0) {
+ r = 0;
+ g = 0;
+ b = 128;
+ } else if(strcmp(color, "NavyBlue") == 0) {
+ r = 0;
+ g = 0;
+ b = 128;
+ } else if(strcmp(color, "cornflower blue") == 0) {
+ r = 100;
+ g = 149;
+ b = 237;
+ } else if(strcmp(color, "CornflowerBlue") == 0) {
+ r = 100;
+ g = 149;
+ b = 237;
+ } else if(strcmp(color, "dark slate blue") == 0) {
+ r = 72;
+ g = 61;
+ b = 139;
+ } else if(strcmp(color, "DarkSlateBlue") == 0) {
+ r = 72;
+ g = 61;
+ b = 139;
+ } else if(strcmp(color, "slate blue") == 0) {
+ r = 106;
+ g = 90;
+ b = 205;
+ } else if(strcmp(color, "SlateBlue") == 0) {
+ r = 106;
+ g = 90;
+ b = 205;
+ } else if(strcmp(color, "medium slate blue") == 0) {
+ r = 123;
+ g = 104;
+ b = 238;
+ } else if(strcmp(color, "MediumSlateBlue") == 0) {
+ r = 123;
+ g = 104;
+ b = 238;
+ } else if(strcmp(color, "light slate blue") == 0) {
+ r = 132;
+ g = 112;
+ b = 255;
+ } else if(strcmp(color, "LightSlateBlue") == 0) {
+ r = 132;
+ g = 112;
+ b = 255;
+ } else if(strcmp(color, "medium blue") == 0) {
+ r = 0;
+ g = 0;
+ b = 205;
+ } else if(strcmp(color, "MediumBlue") == 0) {
+ r = 0;
+ g = 0;
+ b = 205;
+ } else if(strcmp(color, "royal blue") == 0) {
+ r = 65;
+ g = 105;
+ b = 225;
+ } else if(strcmp(color, "RoyalBlue") == 0) {
+ r = 65;
+ g = 105;
+ b = 225;
+ } else if(strcmp(color, "blue") == 0) {
+ r = 0;
+ g = 0;
+ b = 255;
+ } else if(strcmp(color, "dodger blue") == 0) {
+ r = 30;
+ g = 144;
+ b = 255;
+ } else if(strcmp(color, "DodgerBlue") == 0) {
+ r = 30;
+ g = 144;
+ b = 255;
+ } else if(strcmp(color, "deep sky blue") == 0) {
+ r = 0;
+ g = 191;
+ b = 255;
+ } else if(strcmp(color, "DeepSkyBlue") == 0) {
+ r = 0;
+ g = 191;
+ b = 255;
+ } else if(strcmp(color, "sky blue") == 0) {
+ r = 135;
+ g = 206;
+ b = 235;
+ } else if(strcmp(color, "SkyBlue") == 0) {
+ r = 135;
+ g = 206;
+ b = 235;
+ } else if(strcmp(color, "light sky blue") == 0) {
+ r = 135;
+ g = 206;
+ b = 250;
+ } else if(strcmp(color, "LightSkyBlue") == 0) {
+ r = 135;
+ g = 206;
+ b = 250;
+ } else if(strcmp(color, "steel blue") == 0) {
+ r = 70;
+ g = 130;
+ b = 180;
+ } else if(strcmp(color, "SteelBlue") == 0) {
+ r = 70;
+ g = 130;
+ b = 180;
+ } else if(strcmp(color, "light steel blue") == 0) {
+ r = 176;
+ g = 196;
+ b = 222;
+ } else if(strcmp(color, "LightSteelBlue") == 0) {
+ r = 176;
+ g = 196;
+ b = 222;
+ } else if(strcmp(color, "light blue") == 0) {
+ r = 173;
+ g = 216;
+ b = 230;
+ } else if(strcmp(color, "LightBlue") == 0) {
+ r = 173;
+ g = 216;
+ b = 230;
+ } else if(strcmp(color, "powder blue") == 0) {
+ r = 176;
+ g = 224;
+ b = 230;
+ } else if(strcmp(color, "PowderBlue") == 0) {
+ r = 176;
+ g = 224;
+ b = 230;
+ } else if(strcmp(color, "pale turquoise") == 0) {
+ r = 175;
+ g = 238;
+ b = 238;
+ } else if(strcmp(color, "PaleTurquoise") == 0) {
+ r = 175;
+ g = 238;
+ b = 238;
+ } else if(strcmp(color, "dark turquoise") == 0) {
+ r = 0;
+ g = 206;
+ b = 209;
+ } else if(strcmp(color, "DarkTurquoise") == 0) {
+ r = 0;
+ g = 206;
+ b = 209;
+ } else if(strcmp(color, "medium turquoise") == 0) {
+ r = 72;
+ g = 209;
+ b = 204;
+ } else if(strcmp(color, "MediumTurquoise") == 0) {
+ r = 72;
+ g = 209;
+ b = 204;
+ } else if(strcmp(color, "turquoise") == 0) {
+ r = 64;
+ g = 224;
+ b = 208;
+ } else if(strcmp(color, "cyan") == 0) {
+ r = 0;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "light cyan") == 0) {
+ r = 224;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "LightCyan") == 0) {
+ r = 224;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "cadet blue") == 0) {
+ r = 95;
+ g = 158;
+ b = 160;
+ } else if(strcmp(color, "CadetBlue") == 0) {
+ r = 95;
+ g = 158;
+ b = 160;
+ } else if(strcmp(color, "medium aquamarine") == 0) {
+ r = 102;
+ g = 205;
+ b = 170;
+ } else if(strcmp(color, "MediumAquamarine") == 0) {
+ r = 102;
+ g = 205;
+ b = 170;
+ } else if(strcmp(color, "aquamarine") == 0) {
+ r = 127;
+ g = 255;
+ b = 212;
+ } else if(strcmp(color, "dark green") == 0) {
+ r = 0;
+ g = 100;
+ b = 0;
+ } else if(strcmp(color, "DarkGreen") == 0) {
+ r = 0;
+ g = 100;
+ b = 0;
+ } else if(strcmp(color, "dark olive green") == 0) {
+ r = 85;
+ g = 107;
+ b = 47;
+ } else if(strcmp(color, "DarkOliveGreen") == 0) {
+ r = 85;
+ g = 107;
+ b = 47;
+ } else if(strcmp(color, "dark sea green") == 0) {
+ r = 143;
+ g = 188;
+ b = 143;
+ } else if(strcmp(color, "DarkSeaGreen") == 0) {
+ r = 143;
+ g = 188;
+ b = 143;
+ } else if(strcmp(color, "sea green") == 0) {
+ r = 46;
+ g = 139;
+ b = 87;
+ } else if(strcmp(color, "SeaGreen") == 0) {
+ r = 46;
+ g = 139;
+ b = 87;
+ } else if(strcmp(color, "medium sea green") == 0) {
+ r = 60;
+ g = 179;
+ b = 113;
+ } else if(strcmp(color, "MediumSeaGreen") == 0) {
+ r = 60;
+ g = 179;
+ b = 113;
+ } else if(strcmp(color, "light sea green") == 0) {
+ r = 32;
+ g = 178;
+ b = 170;
+ } else if(strcmp(color, "LightSeaGreen") == 0) {
+ r = 32;
+ g = 178;
+ b = 170;
+ } else if(strcmp(color, "pale green") == 0) {
+ r = 152;
+ g = 251;
+ b = 152;
+ } else if(strcmp(color, "PaleGreen") == 0) {
+ r = 152;
+ g = 251;
+ b = 152;
+ } else if(strcmp(color, "spring green") == 0) {
+ r = 0;
+ g = 255;
+ b = 127;
+ } else if(strcmp(color, "SpringGreen") == 0) {
+ r = 0;
+ g = 255;
+ b = 127;
+ } else if(strcmp(color, "lawn green") == 0) {
+ r = 124;
+ g = 252;
+ b = 0;
+ } else if(strcmp(color, "LawnGreen") == 0) {
+ r = 124;
+ g = 252;
+ b = 0;
+ } else if(strcmp(color, "green") == 0) {
+ r = 0;
+ g = 255;
+ b = 0;
+ } else if(strcmp(color, "chartreuse") == 0) {
+ r = 127;
+ g = 255;
+ b = 0;
+ } else if(strcmp(color, "medium spring green") == 0) {
+ r = 0;
+ g = 250;
+ b = 154;
+ } else if(strcmp(color, "MediumSpringGreen") == 0) {
+ r = 0;
+ g = 250;
+ b = 154;
+ } else if(strcmp(color, "green yellow") == 0) {
+ r = 173;
+ g = 255;
+ b = 47;
+ } else if(strcmp(color, "GreenYellow") == 0) {
+ r = 173;
+ g = 255;
+ b = 47;
+ } else if(strcmp(color, "lime green") == 0) {
+ r = 50;
+ g = 205;
+ b = 50;
+ } else if(strcmp(color, "LimeGreen") == 0) {
+ r = 50;
+ g = 205;
+ b = 50;
+ } else if(strcmp(color, "yellow green") == 0) {
+ r = 154;
+ g = 205;
+ b = 50;
+ } else if(strcmp(color, "YellowGreen") == 0) {
+ r = 154;
+ g = 205;
+ b = 50;
+ } else if(strcmp(color, "forest green") == 0) {
+ r = 34;
+ g = 139;
+ b = 34;
+ } else if(strcmp(color, "ForestGreen") == 0) {
+ r = 34;
+ g = 139;
+ b = 34;
+ } else if(strcmp(color, "olive drab") == 0) {
+ r = 107;
+ g = 142;
+ b = 35;
+ } else if(strcmp(color, "OliveDrab") == 0) {
+ r = 107;
+ g = 142;
+ b = 35;
+ } else if(strcmp(color, "dark khaki") == 0) {
+ r = 189;
+ g = 183;
+ b = 107;
+ } else if(strcmp(color, "DarkKhaki") == 0) {
+ r = 189;
+ g = 183;
+ b = 107;
+ } else if(strcmp(color, "khaki") == 0) {
+ r = 240;
+ g = 230;
+ b = 140;
+ } else if(strcmp(color, "pale goldenrod") == 0) {
+ r = 238;
+ g = 232;
+ b = 170;
+ } else if(strcmp(color, "PaleGoldenrod") == 0) {
+ r = 238;
+ g = 232;
+ b = 170;
+ } else if(strcmp(color, "light goldenrod yellow") == 0) {
+ r = 250;
+ g = 250;
+ b = 210;
+ } else if(strcmp(color, "LightGoldenrodYellow") == 0) {
+ r = 250;
+ g = 250;
+ b = 210;
+ } else if(strcmp(color, "light yellow") == 0) {
+ r = 255;
+ g = 255;
+ b = 224;
+ } else if(strcmp(color, "LightYellow") == 0) {
+ r = 255;
+ g = 255;
+ b = 224;
+ } else if(strcmp(color, "yellow") == 0) {
+ r = 255;
+ g = 255;
+ b = 0;
+ } else if(strcmp(color, "gold") == 0) {
+ r = 255;
+ g = 215;
+ b = 0;
+ } else if(strcmp(color, "light goldenrod") == 0) {
+ r = 238;
+ g = 221;
+ b = 130;
+ } else if(strcmp(color, "LightGoldenrod") == 0) {
+ r = 238;
+ g = 221;
+ b = 130;
+ } else if(strcmp(color, "goldenrod") == 0) {
+ r = 218;
+ g = 165;
+ b = 32;
+ } else if(strcmp(color, "dark goldenrod") == 0) {
+ r = 184;
+ g = 134;
+ b = 11;
+ } else if(strcmp(color, "DarkGoldenrod") == 0) {
+ r = 184;
+ g = 134;
+ b = 11;
+ } else if(strcmp(color, "rosy brown") == 0) {
+ r = 188;
+ g = 143;
+ b = 143;
+ } else if(strcmp(color, "RosyBrown") == 0) {
+ r = 188;
+ g = 143;
+ b = 143;
+ } else if(strcmp(color, "indian red") == 0) {
+ r = 205;
+ g = 92;
+ b = 92;
+ } else if(strcmp(color, "IndianRed") == 0) {
+ r = 205;
+ g = 92;
+ b = 92;
+ } else if(strcmp(color, "saddle brown") == 0) {
+ r = 139;
+ g = 69;
+ b = 19;
+ } else if(strcmp(color, "SaddleBrown") == 0) {
+ r = 139;
+ g = 69;
+ b = 19;
+ } else if(strcmp(color, "sienna") == 0) {
+ r = 160;
+ g = 82;
+ b = 45;
+ } else if(strcmp(color, "peru") == 0) {
+ r = 205;
+ g = 133;
+ b = 63;
+ } else if(strcmp(color, "burlywood") == 0) {
+ r = 222;
+ g = 184;
+ b = 135;
+ } else if(strcmp(color, "beige") == 0) {
+ r = 245;
+ g = 245;
+ b = 220;
+ } else if(strcmp(color, "wheat") == 0) {
+ r = 245;
+ g = 222;
+ b = 179;
+ } else if(strcmp(color, "sandy brown") == 0) {
+ r = 244;
+ g = 164;
+ b = 96;
+ } else if(strcmp(color, "SandyBrown") == 0) {
+ r = 244;
+ g = 164;
+ b = 96;
+ } else if(strcmp(color, "tan") == 0) {
+ r = 210;
+ g = 180;
+ b = 140;
+ } else if(strcmp(color, "chocolate") == 0) {
+ r = 210;
+ g = 105;
+ b = 30;
+ } else if(strcmp(color, "firebrick") == 0) {
+ r = 178;
+ g = 34;
+ b = 34;
+ } else if(strcmp(color, "brown") == 0) {
+ r = 165;
+ g = 42;
+ b = 42;
+ } else if(strcmp(color, "dark salmon") == 0) {
+ r = 233;
+ g = 150;
+ b = 122;
+ } else if(strcmp(color, "DarkSalmon") == 0) {
+ r = 233;
+ g = 150;
+ b = 122;
+ } else if(strcmp(color, "salmon") == 0) {
+ r = 250;
+ g = 128;
+ b = 114;
+ } else if(strcmp(color, "light salmon") == 0) {
+ r = 255;
+ g = 160;
+ b = 122;
+ } else if(strcmp(color, "LightSalmon") == 0) {
+ r = 255;
+ g = 160;
+ b = 122;
+ } else if(strcmp(color, "orange") == 0) {
+ r = 255;
+ g = 165;
+ b = 0;
+ } else if(strcmp(color, "dark orange") == 0) {
+ r = 255;
+ g = 140;
+ b = 0;
+ } else if(strcmp(color, "DarkOrange") == 0) {
+ r = 255;
+ g = 140;
+ b = 0;
+ } else if(strcmp(color, "coral") == 0) {
+ r = 255;
+ g = 127;
+ b = 80;
+ } else if(strcmp(color, "light coral") == 0) {
+ r = 240;
+ g = 128;
+ b = 128;
+ } else if(strcmp(color, "LightCoral") == 0) {
+ r = 240;
+ g = 128;
+ b = 128;
+ } else if(strcmp(color, "tomato") == 0) {
+ r = 255;
+ g = 99;
+ b = 71;
+ } else if(strcmp(color, "orange red") == 0) {
+ r = 255;
+ g = 69;
+ b = 0;
+ } else if(strcmp(color, "OrangeRed") == 0) {
+ r = 255;
+ g = 69;
+ b = 0;
+ } else if(strcmp(color, "red") == 0) {
+ r = 255;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "hot pink") == 0) {
+ r = 255;
+ g = 105;
+ b = 180;
+ } else if(strcmp(color, "HotPink") == 0) {
+ r = 255;
+ g = 105;
+ b = 180;
+ } else if(strcmp(color, "deep pink") == 0) {
+ r = 255;
+ g = 20;
+ b = 147;
+ } else if(strcmp(color, "DeepPink") == 0) {
+ r = 255;
+ g = 20;
+ b = 147;
+ } else if(strcmp(color, "pink") == 0) {
+ r = 255;
+ g = 192;
+ b = 203;
+ } else if(strcmp(color, "light pink") == 0) {
+ r = 255;
+ g = 182;
+ b = 193;
+ } else if(strcmp(color, "LightPink") == 0) {
+ r = 255;
+ g = 182;
+ b = 193;
+ } else if(strcmp(color, "pale violet red") == 0) {
+ r = 219;
+ g = 112;
+ b = 147;
+ } else if(strcmp(color, "PaleVioletRed") == 0) {
+ r = 219;
+ g = 112;
+ b = 147;
+ } else if(strcmp(color, "maroon") == 0) {
+ r = 176;
+ g = 48;
+ b = 96;
+ } else if(strcmp(color, "medium violet red") == 0) {
+ r = 199;
+ g = 21;
+ b = 133;
+ } else if(strcmp(color, "MediumVioletRed") == 0) {
+ r = 199;
+ g = 21;
+ b = 133;
+ } else if(strcmp(color, "violet red") == 0) {
+ r = 208;
+ g = 32;
+ b = 144;
+ } else if(strcmp(color, "VioletRed") == 0) {
+ r = 208;
+ g = 32;
+ b = 144;
+ } else if(strcmp(color, "magenta") == 0) {
+ r = 255;
+ g = 0;
+ b = 255;
+ } else if(strcmp(color, "violet") == 0) {
+ r = 238;
+ g = 130;
+ b = 238;
+ } else if(strcmp(color, "plum") == 0) {
+ r = 221;
+ g = 160;
+ b = 221;
+ } else if(strcmp(color, "orchid") == 0) {
+ r = 218;
+ g = 112;
+ b = 214;
+ } else if(strcmp(color, "medium orchid") == 0) {
+ r = 186;
+ g = 85;
+ b = 211;
+ } else if(strcmp(color, "MediumOrchid") == 0) {
+ r = 186;
+ g = 85;
+ b = 211;
+ } else if(strcmp(color, "dark orchid") == 0) {
+ r = 153;
+ g = 50;
+ b = 204;
+ } else if(strcmp(color, "DarkOrchid") == 0) {
+ r = 153;
+ g = 50;
+ b = 204;
+ } else if(strcmp(color, "dark violet") == 0) {
+ r = 148;
+ g = 0;
+ b = 211;
+ } else if(strcmp(color, "DarkViolet") == 0) {
+ r = 148;
+ g = 0;
+ b = 211;
+ } else if(strcmp(color, "blue violet") == 0) {
+ r = 138;
+ g = 43;
+ b = 226;
+ } else if(strcmp(color, "BlueViolet") == 0) {
+ r = 138;
+ g = 43;
+ b = 226;
+ } else if(strcmp(color, "purple") == 0) {
+ r = 160;
+ g = 32;
+ b = 240;
+ } else if(strcmp(color, "medium purple") == 0) {
+ r = 147;
+ g = 112;
+ b = 219;
+ } else if(strcmp(color, "MediumPurple") == 0) {
+ r = 147;
+ g = 112;
+ b = 219;
+ } else if(strcmp(color, "thistle") == 0) {
+ r = 216;
+ g = 191;
+ b = 216;
+ } else if(strcmp(color, "snow1") == 0) {
+ r = 255;
+ g = 250;
+ b = 250;
+ } else if(strcmp(color, "snow2") == 0) {
+ r = 238;
+ g = 233;
+ b = 233;
+ } else if(strcmp(color, "snow3") == 0) {
+ r = 205;
+ g = 201;
+ b = 201;
+ } else if(strcmp(color, "snow4") == 0) {
+ r = 139;
+ g = 137;
+ b = 137;
+ } else if(strcmp(color, "seashell1") == 0) {
+ r = 255;
+ g = 245;
+ b = 238;
+ } else if(strcmp(color, "seashell2") == 0) {
+ r = 238;
+ g = 229;
+ b = 222;
+ } else if(strcmp(color, "seashell3") == 0) {
+ r = 205;
+ g = 197;
+ b = 191;
+ } else if(strcmp(color, "seashell4") == 0) {
+ r = 139;
+ g = 134;
+ b = 130;
+ } else if(strcmp(color, "AntiqueWhite1") == 0) {
+ r = 255;
+ g = 239;
+ b = 219;
+ } else if(strcmp(color, "AntiqueWhite2") == 0) {
+ r = 238;
+ g = 223;
+ b = 204;
+ } else if(strcmp(color, "AntiqueWhite3") == 0) {
+ r = 205;
+ g = 192;
+ b = 176;
+ } else if(strcmp(color, "AntiqueWhite4") == 0) {
+ r = 139;
+ g = 131;
+ b = 120;
+ } else if(strcmp(color, "bisque1") == 0) {
+ r = 255;
+ g = 228;
+ b = 196;
+ } else if(strcmp(color, "bisque2") == 0) {
+ r = 238;
+ g = 213;
+ b = 183;
+ } else if(strcmp(color, "bisque3") == 0) {
+ r = 205;
+ g = 183;
+ b = 158;
+ } else if(strcmp(color, "bisque4") == 0) {
+ r = 139;
+ g = 125;
+ b = 107;
+ } else if(strcmp(color, "PeachPuff1") == 0) {
+ r = 255;
+ g = 218;
+ b = 185;
+ } else if(strcmp(color, "PeachPuff2") == 0) {
+ r = 238;
+ g = 203;
+ b = 173;
+ } else if(strcmp(color, "PeachPuff3") == 0) {
+ r = 205;
+ g = 175;
+ b = 149;
+ } else if(strcmp(color, "PeachPuff4") == 0) {
+ r = 139;
+ g = 119;
+ b = 101;
+ } else if(strcmp(color, "NavajoWhite1") == 0) {
+ r = 255;
+ g = 222;
+ b = 173;
+ } else if(strcmp(color, "NavajoWhite2") == 0) {
+ r = 238;
+ g = 207;
+ b = 161;
+ } else if(strcmp(color, "NavajoWhite3") == 0) {
+ r = 205;
+ g = 179;
+ b = 139;
+ } else if(strcmp(color, "NavajoWhite4") == 0) {
+ r = 139;
+ g = 121;
+ b = 94;
+ } else if(strcmp(color, "LemonChiffon1") == 0) {
+ r = 255;
+ g = 250;
+ b = 205;
+ } else if(strcmp(color, "LemonChiffon2") == 0) {
+ r = 238;
+ g = 233;
+ b = 191;
+ } else if(strcmp(color, "LemonChiffon3") == 0) {
+ r = 205;
+ g = 201;
+ b = 165;
+ } else if(strcmp(color, "LemonChiffon4") == 0) {
+ r = 139;
+ g = 137;
+ b = 112;
+ } else if(strcmp(color, "cornsilk1") == 0) {
+ r = 255;
+ g = 248;
+ b = 220;
+ } else if(strcmp(color, "cornsilk2") == 0) {
+ r = 238;
+ g = 232;
+ b = 205;
+ } else if(strcmp(color, "cornsilk3") == 0) {
+ r = 205;
+ g = 200;
+ b = 177;
+ } else if(strcmp(color, "cornsilk4") == 0) {
+ r = 139;
+ g = 136;
+ b = 120;
+ } else if(strcmp(color, "ivory1") == 0) {
+ r = 255;
+ g = 255;
+ b = 240;
+ } else if(strcmp(color, "ivory2") == 0) {
+ r = 238;
+ g = 238;
+ b = 224;
+ } else if(strcmp(color, "ivory3") == 0) {
+ r = 205;
+ g = 205;
+ b = 193;
+ } else if(strcmp(color, "ivory4") == 0) {
+ r = 139;
+ g = 139;
+ b = 131;
+ } else if(strcmp(color, "honeydew1") == 0) {
+ r = 240;
+ g = 255;
+ b = 240;
+ } else if(strcmp(color, "honeydew2") == 0) {
+ r = 224;
+ g = 238;
+ b = 224;
+ } else if(strcmp(color, "honeydew3") == 0) {
+ r = 193;
+ g = 205;
+ b = 193;
+ } else if(strcmp(color, "honeydew4") == 0) {
+ r = 131;
+ g = 139;
+ b = 131;
+ } else if(strcmp(color, "LavenderBlush1") == 0) {
+ r = 255;
+ g = 240;
+ b = 245;
+ } else if(strcmp(color, "LavenderBlush2") == 0) {
+ r = 238;
+ g = 224;
+ b = 229;
+ } else if(strcmp(color, "LavenderBlush3") == 0) {
+ r = 205;
+ g = 193;
+ b = 197;
+ } else if(strcmp(color, "LavenderBlush4") == 0) {
+ r = 139;
+ g = 131;
+ b = 134;
+ } else if(strcmp(color, "MistyRose1") == 0) {
+ r = 255;
+ g = 228;
+ b = 225;
+ } else if(strcmp(color, "MistyRose2") == 0) {
+ r = 238;
+ g = 213;
+ b = 210;
+ } else if(strcmp(color, "MistyRose3") == 0) {
+ r = 205;
+ g = 183;
+ b = 181;
+ } else if(strcmp(color, "MistyRose4") == 0) {
+ r = 139;
+ g = 125;
+ b = 123;
+ } else if(strcmp(color, "azure1") == 0) {
+ r = 240;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "azure2") == 0) {
+ r = 224;
+ g = 238;
+ b = 238;
+ } else if(strcmp(color, "azure3") == 0) {
+ r = 193;
+ g = 205;
+ b = 205;
+ } else if(strcmp(color, "azure4") == 0) {
+ r = 131;
+ g = 139;
+ b = 139;
+ } else if(strcmp(color, "SlateBlue1") == 0) {
+ r = 131;
+ g = 111;
+ b = 255;
+ } else if(strcmp(color, "SlateBlue2") == 0) {
+ r = 122;
+ g = 103;
+ b = 238;
+ } else if(strcmp(color, "SlateBlue3") == 0) {
+ r = 105;
+ g = 89;
+ b = 205;
+ } else if(strcmp(color, "SlateBlue4") == 0) {
+ r = 71;
+ g = 60;
+ b = 139;
+ } else if(strcmp(color, "RoyalBlue1") == 0) {
+ r = 72;
+ g = 118;
+ b = 255;
+ } else if(strcmp(color, "RoyalBlue2") == 0) {
+ r = 67;
+ g = 110;
+ b = 238;
+ } else if(strcmp(color, "RoyalBlue3") == 0) {
+ r = 58;
+ g = 95;
+ b = 205;
+ } else if(strcmp(color, "RoyalBlue4") == 0) {
+ r = 39;
+ g = 64;
+ b = 139;
+ } else if(strcmp(color, "blue1") == 0) {
+ r = 0;
+ g = 0;
+ b = 255;
+ } else if(strcmp(color, "blue2") == 0) {
+ r = 0;
+ g = 0;
+ b = 238;
+ } else if(strcmp(color, "blue3") == 0) {
+ r = 0;
+ g = 0;
+ b = 205;
+ } else if(strcmp(color, "blue4") == 0) {
+ r = 0;
+ g = 0;
+ b = 139;
+ } else if(strcmp(color, "DodgerBlue1") == 0) {
+ r = 30;
+ g = 144;
+ b = 255;
+ } else if(strcmp(color, "DodgerBlue2") == 0) {
+ r = 28;
+ g = 134;
+ b = 238;
+ } else if(strcmp(color, "DodgerBlue3") == 0) {
+ r = 24;
+ g = 116;
+ b = 205;
+ } else if(strcmp(color, "DodgerBlue4") == 0) {
+ r = 16;
+ g = 78;
+ b = 139;
+ } else if(strcmp(color, "SteelBlue1") == 0) {
+ r = 99;
+ g = 184;
+ b = 255;
+ } else if(strcmp(color, "SteelBlue2") == 0) {
+ r = 92;
+ g = 172;
+ b = 238;
+ } else if(strcmp(color, "SteelBlue3") == 0) {
+ r = 79;
+ g = 148;
+ b = 205;
+ } else if(strcmp(color, "SteelBlue4") == 0) {
+ r = 54;
+ g = 100;
+ b = 139;
+ } else if(strcmp(color, "DeepSkyBlue1") == 0) {
+ r = 0;
+ g = 191;
+ b = 255;
+ } else if(strcmp(color, "DeepSkyBlue2") == 0) {
+ r = 0;
+ g = 178;
+ b = 238;
+ } else if(strcmp(color, "DeepSkyBlue3") == 0) {
+ r = 0;
+ g = 154;
+ b = 205;
+ } else if(strcmp(color, "DeepSkyBlue4") == 0) {
+ r = 0;
+ g = 104;
+ b = 139;
+ } else if(strcmp(color, "SkyBlue1") == 0) {
+ r = 135;
+ g = 206;
+ b = 255;
+ } else if(strcmp(color, "SkyBlue2") == 0) {
+ r = 126;
+ g = 192;
+ b = 238;
+ } else if(strcmp(color, "SkyBlue3") == 0) {
+ r = 108;
+ g = 166;
+ b = 205;
+ } else if(strcmp(color, "SkyBlue4") == 0) {
+ r = 74;
+ g = 112;
+ b = 139;
+ } else if(strcmp(color, "LightSkyBlue1") == 0) {
+ r = 176;
+ g = 226;
+ b = 255;
+ } else if(strcmp(color, "LightSkyBlue2") == 0) {
+ r = 164;
+ g = 211;
+ b = 238;
+ } else if(strcmp(color, "LightSkyBlue3") == 0) {
+ r = 141;
+ g = 182;
+ b = 205;
+ } else if(strcmp(color, "LightSkyBlue4") == 0) {
+ r = 96;
+ g = 123;
+ b = 139;
+ } else if(strcmp(color, "SlateGray1") == 0) {
+ r = 198;
+ g = 226;
+ b = 255;
+ } else if(strcmp(color, "SlateGray2") == 0) {
+ r = 185;
+ g = 211;
+ b = 238;
+ } else if(strcmp(color, "SlateGray3") == 0) {
+ r = 159;
+ g = 182;
+ b = 205;
+ } else if(strcmp(color, "SlateGray4") == 0) {
+ r = 108;
+ g = 123;
+ b = 139;
+ } else if(strcmp(color, "LightSteelBlue1") == 0) {
+ r = 202;
+ g = 225;
+ b = 255;
+ } else if(strcmp(color, "LightSteelBlue2") == 0) {
+ r = 188;
+ g = 210;
+ b = 238;
+ } else if(strcmp(color, "LightSteelBlue3") == 0) {
+ r = 162;
+ g = 181;
+ b = 205;
+ } else if(strcmp(color, "LightSteelBlue4") == 0) {
+ r = 110;
+ g = 123;
+ b = 139;
+ } else if(strcmp(color, "LightBlue1") == 0) {
+ r = 191;
+ g = 239;
+ b = 255;
+ } else if(strcmp(color, "LightBlue2") == 0) {
+ r = 178;
+ g = 223;
+ b = 238;
+ } else if(strcmp(color, "LightBlue3") == 0) {
+ r = 154;
+ g = 192;
+ b = 205;
+ } else if(strcmp(color, "LightBlue4") == 0) {
+ r = 104;
+ g = 131;
+ b = 139;
+ } else if(strcmp(color, "LightCyan1") == 0) {
+ r = 224;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "LightCyan2") == 0) {
+ r = 209;
+ g = 238;
+ b = 238;
+ } else if(strcmp(color, "LightCyan3") == 0) {
+ r = 180;
+ g = 205;
+ b = 205;
+ } else if(strcmp(color, "LightCyan4") == 0) {
+ r = 122;
+ g = 139;
+ b = 139;
+ } else if(strcmp(color, "PaleTurquoise1") == 0) {
+ r = 187;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "PaleTurquoise2") == 0) {
+ r = 174;
+ g = 238;
+ b = 238;
+ } else if(strcmp(color, "PaleTurquoise3") == 0) {
+ r = 150;
+ g = 205;
+ b = 205;
+ } else if(strcmp(color, "PaleTurquoise4") == 0) {
+ r = 102;
+ g = 139;
+ b = 139;
+ } else if(strcmp(color, "CadetBlue1") == 0) {
+ r = 152;
+ g = 245;
+ b = 255;
+ } else if(strcmp(color, "CadetBlue2") == 0) {
+ r = 142;
+ g = 229;
+ b = 238;
+ } else if(strcmp(color, "CadetBlue3") == 0) {
+ r = 122;
+ g = 197;
+ b = 205;
+ } else if(strcmp(color, "CadetBlue4") == 0) {
+ r = 83;
+ g = 134;
+ b = 139;
+ } else if(strcmp(color, "turquoise1") == 0) {
+ r = 0;
+ g = 245;
+ b = 255;
+ } else if(strcmp(color, "turquoise2") == 0) {
+ r = 0;
+ g = 229;
+ b = 238;
+ } else if(strcmp(color, "turquoise3") == 0) {
+ r = 0;
+ g = 197;
+ b = 205;
+ } else if(strcmp(color, "turquoise4") == 0) {
+ r = 0;
+ g = 134;
+ b = 139;
+ } else if(strcmp(color, "cyan1") == 0) {
+ r = 0;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "cyan2") == 0) {
+ r = 0;
+ g = 238;
+ b = 238;
+ } else if(strcmp(color, "cyan3") == 0) {
+ r = 0;
+ g = 205;
+ b = 205;
+ } else if(strcmp(color, "cyan4") == 0) {
+ r = 0;
+ g = 139;
+ b = 139;
+ } else if(strcmp(color, "DarkSlateGray1") == 0) {
+ r = 151;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "DarkSlateGray2") == 0) {
+ r = 141;
+ g = 238;
+ b = 238;
+ } else if(strcmp(color, "DarkSlateGray3") == 0) {
+ r = 121;
+ g = 205;
+ b = 205;
+ } else if(strcmp(color, "DarkSlateGray4") == 0) {
+ r = 82;
+ g = 139;
+ b = 139;
+ } else if(strcmp(color, "aquamarine1") == 0) {
+ r = 127;
+ g = 255;
+ b = 212;
+ } else if(strcmp(color, "aquamarine2") == 0) {
+ r = 118;
+ g = 238;
+ b = 198;
+ } else if(strcmp(color, "aquamarine3") == 0) {
+ r = 102;
+ g = 205;
+ b = 170;
+ } else if(strcmp(color, "aquamarine4") == 0) {
+ r = 69;
+ g = 139;
+ b = 116;
+ } else if(strcmp(color, "DarkSeaGreen1") == 0) {
+ r = 193;
+ g = 255;
+ b = 193;
+ } else if(strcmp(color, "DarkSeaGreen2") == 0) {
+ r = 180;
+ g = 238;
+ b = 180;
+ } else if(strcmp(color, "DarkSeaGreen3") == 0) {
+ r = 155;
+ g = 205;
+ b = 155;
+ } else if(strcmp(color, "DarkSeaGreen4") == 0) {
+ r = 105;
+ g = 139;
+ b = 105;
+ } else if(strcmp(color, "SeaGreen1") == 0) {
+ r = 84;
+ g = 255;
+ b = 159;
+ } else if(strcmp(color, "SeaGreen2") == 0) {
+ r = 78;
+ g = 238;
+ b = 148;
+ } else if(strcmp(color, "SeaGreen3") == 0) {
+ r = 67;
+ g = 205;
+ b = 128;
+ } else if(strcmp(color, "SeaGreen4") == 0) {
+ r = 46;
+ g = 139;
+ b = 87;
+ } else if(strcmp(color, "PaleGreen1") == 0) {
+ r = 154;
+ g = 255;
+ b = 154;
+ } else if(strcmp(color, "PaleGreen2") == 0) {
+ r = 144;
+ g = 238;
+ b = 144;
+ } else if(strcmp(color, "PaleGreen3") == 0) {
+ r = 124;
+ g = 205;
+ b = 124;
+ } else if(strcmp(color, "PaleGreen4") == 0) {
+ r = 84;
+ g = 139;
+ b = 84;
+ } else if(strcmp(color, "SpringGreen1") == 0) {
+ r = 0;
+ g = 255;
+ b = 127;
+ } else if(strcmp(color, "SpringGreen2") == 0) {
+ r = 0;
+ g = 238;
+ b = 118;
+ } else if(strcmp(color, "SpringGreen3") == 0) {
+ r = 0;
+ g = 205;
+ b = 102;
+ } else if(strcmp(color, "SpringGreen4") == 0) {
+ r = 0;
+ g = 139;
+ b = 69;
+ } else if(strcmp(color, "green1") == 0) {
+ r = 0;
+ g = 255;
+ b = 0;
+ } else if(strcmp(color, "green2") == 0) {
+ r = 0;
+ g = 238;
+ b = 0;
+ } else if(strcmp(color, "green3") == 0) {
+ r = 0;
+ g = 205;
+ b = 0;
+ } else if(strcmp(color, "green4") == 0) {
+ r = 0;
+ g = 139;
+ b = 0;
+ } else if(strcmp(color, "chartreuse1") == 0) {
+ r = 127;
+ g = 255;
+ b = 0;
+ } else if(strcmp(color, "chartreuse2") == 0) {
+ r = 118;
+ g = 238;
+ b = 0;
+ } else if(strcmp(color, "chartreuse3") == 0) {
+ r = 102;
+ g = 205;
+ b = 0;
+ } else if(strcmp(color, "chartreuse4") == 0) {
+ r = 69;
+ g = 139;
+ b = 0;
+ } else if(strcmp(color, "OliveDrab1") == 0) {
+ r = 192;
+ g = 255;
+ b = 62;
+ } else if(strcmp(color, "OliveDrab2") == 0) {
+ r = 179;
+ g = 238;
+ b = 58;
+ } else if(strcmp(color, "OliveDrab3") == 0) {
+ r = 154;
+ g = 205;
+ b = 50;
+ } else if(strcmp(color, "OliveDrab4") == 0) {
+ r = 105;
+ g = 139;
+ b = 34;
+ } else if(strcmp(color, "DarkOliveGreen1") == 0) {
+ r = 202;
+ g = 255;
+ b = 112;
+ } else if(strcmp(color, "DarkOliveGreen2") == 0) {
+ r = 188;
+ g = 238;
+ b = 104;
+ } else if(strcmp(color, "DarkOliveGreen3") == 0) {
+ r = 162;
+ g = 205;
+ b = 90;
+ } else if(strcmp(color, "DarkOliveGreen4") == 0) {
+ r = 110;
+ g = 139;
+ b = 61;
+ } else if(strcmp(color, "khaki1") == 0) {
+ r = 255;
+ g = 246;
+ b = 143;
+ } else if(strcmp(color, "khaki2") == 0) {
+ r = 238;
+ g = 230;
+ b = 133;
+ } else if(strcmp(color, "khaki3") == 0) {
+ r = 205;
+ g = 198;
+ b = 115;
+ } else if(strcmp(color, "khaki4") == 0) {
+ r = 139;
+ g = 134;
+ b = 78;
+ } else if(strcmp(color, "LightGoldenrod1") == 0) {
+ r = 255;
+ g = 236;
+ b = 139;
+ } else if(strcmp(color, "LightGoldenrod2") == 0) {
+ r = 238;
+ g = 220;
+ b = 130;
+ } else if(strcmp(color, "LightGoldenrod3") == 0) {
+ r = 205;
+ g = 190;
+ b = 112;
+ } else if(strcmp(color, "LightGoldenrod4") == 0) {
+ r = 139;
+ g = 129;
+ b = 76;
+ } else if(strcmp(color, "LightYellow1") == 0) {
+ r = 255;
+ g = 255;
+ b = 224;
+ } else if(strcmp(color, "LightYellow2") == 0) {
+ r = 238;
+ g = 238;
+ b = 209;
+ } else if(strcmp(color, "LightYellow3") == 0) {
+ r = 205;
+ g = 205;
+ b = 180;
+ } else if(strcmp(color, "LightYellow4") == 0) {
+ r = 139;
+ g = 139;
+ b = 122;
+ } else if(strcmp(color, "yellow1") == 0) {
+ r = 255;
+ g = 255;
+ b = 0;
+ } else if(strcmp(color, "yellow2") == 0) {
+ r = 238;
+ g = 238;
+ b = 0;
+ } else if(strcmp(color, "yellow3") == 0) {
+ r = 205;
+ g = 205;
+ b = 0;
+ } else if(strcmp(color, "yellow4") == 0) {
+ r = 139;
+ g = 139;
+ b = 0;
+ } else if(strcmp(color, "gold1") == 0) {
+ r = 255;
+ g = 215;
+ b = 0;
+ } else if(strcmp(color, "gold2") == 0) {
+ r = 238;
+ g = 201;
+ b = 0;
+ } else if(strcmp(color, "gold3") == 0) {
+ r = 205;
+ g = 173;
+ b = 0;
+ } else if(strcmp(color, "gold4") == 0) {
+ r = 139;
+ g = 117;
+ b = 0;
+ } else if(strcmp(color, "goldenrod1") == 0) {
+ r = 255;
+ g = 193;
+ b = 37;
+ } else if(strcmp(color, "goldenrod2") == 0) {
+ r = 238;
+ g = 180;
+ b = 34;
+ } else if(strcmp(color, "goldenrod3") == 0) {
+ r = 205;
+ g = 155;
+ b = 29;
+ } else if(strcmp(color, "goldenrod4") == 0) {
+ r = 139;
+ g = 105;
+ b = 20;
+ } else if(strcmp(color, "DarkGoldenrod1") == 0) {
+ r = 255;
+ g = 185;
+ b = 15;
+ } else if(strcmp(color, "DarkGoldenrod2") == 0) {
+ r = 238;
+ g = 173;
+ b = 14;
+ } else if(strcmp(color, "DarkGoldenrod3") == 0) {
+ r = 205;
+ g = 149;
+ b = 12;
+ } else if(strcmp(color, "DarkGoldenrod4") == 0) {
+ r = 139;
+ g = 101;
+ b = 8;
+ } else if(strcmp(color, "RosyBrown1") == 0) {
+ r = 255;
+ g = 193;
+ b = 193;
+ } else if(strcmp(color, "RosyBrown2") == 0) {
+ r = 238;
+ g = 180;
+ b = 180;
+ } else if(strcmp(color, "RosyBrown3") == 0) {
+ r = 205;
+ g = 155;
+ b = 155;
+ } else if(strcmp(color, "RosyBrown4") == 0) {
+ r = 139;
+ g = 105;
+ b = 105;
+ } else if(strcmp(color, "IndianRed1") == 0) {
+ r = 255;
+ g = 106;
+ b = 106;
+ } else if(strcmp(color, "IndianRed2") == 0) {
+ r = 238;
+ g = 99;
+ b = 99;
+ } else if(strcmp(color, "IndianRed3") == 0) {
+ r = 205;
+ g = 85;
+ b = 85;
+ } else if(strcmp(color, "IndianRed4") == 0) {
+ r = 139;
+ g = 58;
+ b = 58;
+ } else if(strcmp(color, "sienna1") == 0) {
+ r = 255;
+ g = 130;
+ b = 71;
+ } else if(strcmp(color, "sienna2") == 0) {
+ r = 238;
+ g = 121;
+ b = 66;
+ } else if(strcmp(color, "sienna3") == 0) {
+ r = 205;
+ g = 104;
+ b = 57;
+ } else if(strcmp(color, "sienna4") == 0) {
+ r = 139;
+ g = 71;
+ b = 38;
+ } else if(strcmp(color, "burlywood1") == 0) {
+ r = 255;
+ g = 211;
+ b = 155;
+ } else if(strcmp(color, "burlywood2") == 0) {
+ r = 238;
+ g = 197;
+ b = 145;
+ } else if(strcmp(color, "burlywood3") == 0) {
+ r = 205;
+ g = 170;
+ b = 125;
+ } else if(strcmp(color, "burlywood4") == 0) {
+ r = 139;
+ g = 115;
+ b = 85;
+ } else if(strcmp(color, "wheat1") == 0) {
+ r = 255;
+ g = 231;
+ b = 186;
+ } else if(strcmp(color, "wheat2") == 0) {
+ r = 238;
+ g = 216;
+ b = 174;
+ } else if(strcmp(color, "wheat3") == 0) {
+ r = 205;
+ g = 186;
+ b = 150;
+ } else if(strcmp(color, "wheat4") == 0) {
+ r = 139;
+ g = 126;
+ b = 102;
+ } else if(strcmp(color, "tan1") == 0) {
+ r = 255;
+ g = 165;
+ b = 79;
+ } else if(strcmp(color, "tan2") == 0) {
+ r = 238;
+ g = 154;
+ b = 73;
+ } else if(strcmp(color, "tan3") == 0) {
+ r = 205;
+ g = 133;
+ b = 63;
+ } else if(strcmp(color, "tan4") == 0) {
+ r = 139;
+ g = 90;
+ b = 43;
+ } else if(strcmp(color, "chocolate1") == 0) {
+ r = 255;
+ g = 127;
+ b = 36;
+ } else if(strcmp(color, "chocolate2") == 0) {
+ r = 238;
+ g = 118;
+ b = 33;
+ } else if(strcmp(color, "chocolate3") == 0) {
+ r = 205;
+ g = 102;
+ b = 29;
+ } else if(strcmp(color, "chocolate4") == 0) {
+ r = 139;
+ g = 69;
+ b = 19;
+ } else if(strcmp(color, "firebrick1") == 0) {
+ r = 255;
+ g = 48;
+ b = 48;
+ } else if(strcmp(color, "firebrick2") == 0) {
+ r = 238;
+ g = 44;
+ b = 44;
+ } else if(strcmp(color, "firebrick3") == 0) {
+ r = 205;
+ g = 38;
+ b = 38;
+ } else if(strcmp(color, "firebrick4") == 0) {
+ r = 139;
+ g = 26;
+ b = 26;
+ } else if(strcmp(color, "brown1") == 0) {
+ r = 255;
+ g = 64;
+ b = 64;
+ } else if(strcmp(color, "brown2") == 0) {
+ r = 238;
+ g = 59;
+ b = 59;
+ } else if(strcmp(color, "brown3") == 0) {
+ r = 205;
+ g = 51;
+ b = 51;
+ } else if(strcmp(color, "brown4") == 0) {
+ r = 139;
+ g = 35;
+ b = 35;
+ } else if(strcmp(color, "salmon1") == 0) {
+ r = 255;
+ g = 140;
+ b = 105;
+ } else if(strcmp(color, "salmon2") == 0) {
+ r = 238;
+ g = 130;
+ b = 98;
+ } else if(strcmp(color, "salmon3") == 0) {
+ r = 205;
+ g = 112;
+ b = 84;
+ } else if(strcmp(color, "salmon4") == 0) {
+ r = 139;
+ g = 76;
+ b = 57;
+ } else if(strcmp(color, "LightSalmon1") == 0) {
+ r = 255;
+ g = 160;
+ b = 122;
+ } else if(strcmp(color, "LightSalmon2") == 0) {
+ r = 238;
+ g = 149;
+ b = 114;
+ } else if(strcmp(color, "LightSalmon3") == 0) {
+ r = 205;
+ g = 129;
+ b = 98;
+ } else if(strcmp(color, "LightSalmon4") == 0) {
+ r = 139;
+ g = 87;
+ b = 66;
+ } else if(strcmp(color, "orange1") == 0) {
+ r = 255;
+ g = 165;
+ b = 0;
+ } else if(strcmp(color, "orange2") == 0) {
+ r = 238;
+ g = 154;
+ b = 0;
+ } else if(strcmp(color, "orange3") == 0) {
+ r = 205;
+ g = 133;
+ b = 0;
+ } else if(strcmp(color, "orange4") == 0) {
+ r = 139;
+ g = 90;
+ b = 0;
+ } else if(strcmp(color, "DarkOrange1") == 0) {
+ r = 255;
+ g = 127;
+ b = 0;
+ } else if(strcmp(color, "DarkOrange2") == 0) {
+ r = 238;
+ g = 118;
+ b = 0;
+ } else if(strcmp(color, "DarkOrange3") == 0) {
+ r = 205;
+ g = 102;
+ b = 0;
+ } else if(strcmp(color, "DarkOrange4") == 0) {
+ r = 139;
+ g = 69;
+ b = 0;
+ } else if(strcmp(color, "coral1") == 0) {
+ r = 255;
+ g = 114;
+ b = 86;
+ } else if(strcmp(color, "coral2") == 0) {
+ r = 238;
+ g = 106;
+ b = 80;
+ } else if(strcmp(color, "coral3") == 0) {
+ r = 205;
+ g = 91;
+ b = 69;
+ } else if(strcmp(color, "coral4") == 0) {
+ r = 139;
+ g = 62;
+ b = 47;
+ } else if(strcmp(color, "tomato1") == 0) {
+ r = 255;
+ g = 99;
+ b = 71;
+ } else if(strcmp(color, "tomato2") == 0) {
+ r = 238;
+ g = 92;
+ b = 66;
+ } else if(strcmp(color, "tomato3") == 0) {
+ r = 205;
+ g = 79;
+ b = 57;
+ } else if(strcmp(color, "tomato4") == 0) {
+ r = 139;
+ g = 54;
+ b = 38;
+ } else if(strcmp(color, "OrangeRed1") == 0) {
+ r = 255;
+ g = 69;
+ b = 0;
+ } else if(strcmp(color, "OrangeRed2") == 0) {
+ r = 238;
+ g = 64;
+ b = 0;
+ } else if(strcmp(color, "OrangeRed3") == 0) {
+ r = 205;
+ g = 55;
+ b = 0;
+ } else if(strcmp(color, "OrangeRed4") == 0) {
+ r = 139;
+ g = 37;
+ b = 0;
+ } else if(strcmp(color, "red1") == 0) {
+ r = 255;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "red2") == 0) {
+ r = 238;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "red3") == 0) {
+ r = 205;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "red4") == 0) {
+ r = 139;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "DeepPink1") == 0) {
+ r = 255;
+ g = 20;
+ b = 147;
+ } else if(strcmp(color, "DeepPink2") == 0) {
+ r = 238;
+ g = 18;
+ b = 137;
+ } else if(strcmp(color, "DeepPink3") == 0) {
+ r = 205;
+ g = 16;
+ b = 118;
+ } else if(strcmp(color, "DeepPink4") == 0) {
+ r = 139;
+ g = 10;
+ b = 80;
+ } else if(strcmp(color, "HotPink1") == 0) {
+ r = 255;
+ g = 110;
+ b = 180;
+ } else if(strcmp(color, "HotPink2") == 0) {
+ r = 238;
+ g = 106;
+ b = 167;
+ } else if(strcmp(color, "HotPink3") == 0) {
+ r = 205;
+ g = 96;
+ b = 144;
+ } else if(strcmp(color, "HotPink4") == 0) {
+ r = 139;
+ g = 58;
+ b = 98;
+ } else if(strcmp(color, "pink1") == 0) {
+ r = 255;
+ g = 181;
+ b = 197;
+ } else if(strcmp(color, "pink2") == 0) {
+ r = 238;
+ g = 169;
+ b = 184;
+ } else if(strcmp(color, "pink3") == 0) {
+ r = 205;
+ g = 145;
+ b = 158;
+ } else if(strcmp(color, "pink4") == 0) {
+ r = 139;
+ g = 99;
+ b = 108;
+ } else if(strcmp(color, "LightPink1") == 0) {
+ r = 255;
+ g = 174;
+ b = 185;
+ } else if(strcmp(color, "LightPink2") == 0) {
+ r = 238;
+ g = 162;
+ b = 173;
+ } else if(strcmp(color, "LightPink3") == 0) {
+ r = 205;
+ g = 140;
+ b = 149;
+ } else if(strcmp(color, "LightPink4") == 0) {
+ r = 139;
+ g = 95;
+ b = 101;
+ } else if(strcmp(color, "PaleVioletRed1") == 0) {
+ r = 255;
+ g = 130;
+ b = 171;
+ } else if(strcmp(color, "PaleVioletRed2") == 0) {
+ r = 238;
+ g = 121;
+ b = 159;
+ } else if(strcmp(color, "PaleVioletRed3") == 0) {
+ r = 205;
+ g = 104;
+ b = 137;
+ } else if(strcmp(color, "PaleVioletRed4") == 0) {
+ r = 139;
+ g = 71;
+ b = 93;
+ } else if(strcmp(color, "maroon1") == 0) {
+ r = 255;
+ g = 52;
+ b = 179;
+ } else if(strcmp(color, "maroon2") == 0) {
+ r = 238;
+ g = 48;
+ b = 167;
+ } else if(strcmp(color, "maroon3") == 0) {
+ r = 205;
+ g = 41;
+ b = 144;
+ } else if(strcmp(color, "maroon4") == 0) {
+ r = 139;
+ g = 28;
+ b = 98;
+ } else if(strcmp(color, "VioletRed1") == 0) {
+ r = 255;
+ g = 62;
+ b = 150;
+ } else if(strcmp(color, "VioletRed2") == 0) {
+ r = 238;
+ g = 58;
+ b = 140;
+ } else if(strcmp(color, "VioletRed3") == 0) {
+ r = 205;
+ g = 50;
+ b = 120;
+ } else if(strcmp(color, "VioletRed4") == 0) {
+ r = 139;
+ g = 34;
+ b = 82;
+ } else if(strcmp(color, "magenta1") == 0) {
+ r = 255;
+ g = 0;
+ b = 255;
+ } else if(strcmp(color, "magenta2") == 0) {
+ r = 238;
+ g = 0;
+ b = 238;
+ } else if(strcmp(color, "magenta3") == 0) {
+ r = 205;
+ g = 0;
+ b = 205;
+ } else if(strcmp(color, "magenta4") == 0) {
+ r = 139;
+ g = 0;
+ b = 139;
+ } else if(strcmp(color, "orchid1") == 0) {
+ r = 255;
+ g = 131;
+ b = 250;
+ } else if(strcmp(color, "orchid2") == 0) {
+ r = 238;
+ g = 122;
+ b = 233;
+ } else if(strcmp(color, "orchid3") == 0) {
+ r = 205;
+ g = 105;
+ b = 201;
+ } else if(strcmp(color, "orchid4") == 0) {
+ r = 139;
+ g = 71;
+ b = 137;
+ } else if(strcmp(color, "plum1") == 0) {
+ r = 255;
+ g = 187;
+ b = 255;
+ } else if(strcmp(color, "plum2") == 0) {
+ r = 238;
+ g = 174;
+ b = 238;
+ } else if(strcmp(color, "plum3") == 0) {
+ r = 205;
+ g = 150;
+ b = 205;
+ } else if(strcmp(color, "plum4") == 0) {
+ r = 139;
+ g = 102;
+ b = 139;
+ } else if(strcmp(color, "MediumOrchid1") == 0) {
+ r = 224;
+ g = 102;
+ b = 255;
+ } else if(strcmp(color, "MediumOrchid2") == 0) {
+ r = 209;
+ g = 95;
+ b = 238;
+ } else if(strcmp(color, "MediumOrchid3") == 0) {
+ r = 180;
+ g = 82;
+ b = 205;
+ } else if(strcmp(color, "MediumOrchid4") == 0) {
+ r = 122;
+ g = 55;
+ b = 139;
+ } else if(strcmp(color, "DarkOrchid1") == 0) {
+ r = 191;
+ g = 62;
+ b = 255;
+ } else if(strcmp(color, "DarkOrchid2") == 0) {
+ r = 178;
+ g = 58;
+ b = 238;
+ } else if(strcmp(color, "DarkOrchid3") == 0) {
+ r = 154;
+ g = 50;
+ b = 205;
+ } else if(strcmp(color, "DarkOrchid4") == 0) {
+ r = 104;
+ g = 34;
+ b = 139;
+ } else if(strcmp(color, "purple1") == 0) {
+ r = 155;
+ g = 48;
+ b = 255;
+ } else if(strcmp(color, "purple2") == 0) {
+ r = 145;
+ g = 44;
+ b = 238;
+ } else if(strcmp(color, "purple3") == 0) {
+ r = 125;
+ g = 38;
+ b = 205;
+ } else if(strcmp(color, "purple4") == 0) {
+ r = 85;
+ g = 26;
+ b = 139;
+ } else if(strcmp(color, "MediumPurple1") == 0) {
+ r = 171;
+ g = 130;
+ b = 255;
+ } else if(strcmp(color, "MediumPurple2") == 0) {
+ r = 159;
+ g = 121;
+ b = 238;
+ } else if(strcmp(color, "MediumPurple3") == 0) {
+ r = 137;
+ g = 104;
+ b = 205;
+ } else if(strcmp(color, "MediumPurple4") == 0) {
+ r = 93;
+ g = 71;
+ b = 139;
+ } else if(strcmp(color, "thistle1") == 0) {
+ r = 255;
+ g = 225;
+ b = 255;
+ } else if(strcmp(color, "thistle2") == 0) {
+ r = 238;
+ g = 210;
+ b = 238;
+ } else if(strcmp(color, "thistle3") == 0) {
+ r = 205;
+ g = 181;
+ b = 205;
+ } else if(strcmp(color, "thistle4") == 0) {
+ r = 139;
+ g = 123;
+ b = 139;
+ } else if(strcmp(color, "gray0") == 0) {
+ r = 0;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "grey0") == 0) {
+ r = 0;
+ g = 0;
+ b = 0;
+ } else if(strcmp(color, "gray1") == 0) {
+ r = 3;
+ g = 3;
+ b = 3;
+ } else if(strcmp(color, "grey1") == 0) {
+ r = 3;
+ g = 3;
+ b = 3;
+ } else if(strcmp(color, "gray2") == 0) {
+ r = 5;
+ g = 5;
+ b = 5;
+ } else if(strcmp(color, "grey2") == 0) {
+ r = 5;
+ g = 5;
+ b = 5;
+ } else if(strcmp(color, "gray3") == 0) {
+ r = 8;
+ g = 8;
+ b = 8;
+ } else if(strcmp(color, "grey3") == 0) {
+ r = 8;
+ g = 8;
+ b = 8;
+ } else if(strcmp(color, "gray4") == 0) {
+ r = 10;
+ g = 10;
+ b = 10;
+ } else if(strcmp(color, "grey4") == 0) {
+ r = 10;
+ g = 10;
+ b = 10;
+ } else if(strcmp(color, "gray5") == 0) {
+ r = 13;
+ g = 13;
+ b = 13;
+ } else if(strcmp(color, "grey5") == 0) {
+ r = 13;
+ g = 13;
+ b = 13;
+ } else if(strcmp(color, "gray6") == 0) {
+ r = 15;
+ g = 15;
+ b = 15;
+ } else if(strcmp(color, "grey6") == 0) {
+ r = 15;
+ g = 15;
+ b = 15;
+ } else if(strcmp(color, "gray7") == 0) {
+ r = 18;
+ g = 18;
+ b = 18;
+ } else if(strcmp(color, "grey7") == 0) {
+ r = 18;
+ g = 18;
+ b = 18;
+ } else if(strcmp(color, "gray8") == 0) {
+ r = 20;
+ g = 20;
+ b = 20;
+ } else if(strcmp(color, "grey8") == 0) {
+ r = 20;
+ g = 20;
+ b = 20;
+ } else if(strcmp(color, "gray9") == 0) {
+ r = 23;
+ g = 23;
+ b = 23;
+ } else if(strcmp(color, "grey9") == 0) {
+ r = 23;
+ g = 23;
+ b = 23;
+ } else if(strcmp(color, "gray10") == 0) {
+ r = 26;
+ g = 26;
+ b = 26;
+ } else if(strcmp(color, "grey10") == 0) {
+ r = 26;
+ g = 26;
+ b = 26;
+ } else if(strcmp(color, "gray11") == 0) {
+ r = 28;
+ g = 28;
+ b = 28;
+ } else if(strcmp(color, "grey11") == 0) {
+ r = 28;
+ g = 28;
+ b = 28;
+ } else if(strcmp(color, "gray12") == 0) {
+ r = 31;
+ g = 31;
+ b = 31;
+ } else if(strcmp(color, "grey12") == 0) {
+ r = 31;
+ g = 31;
+ b = 31;
+ } else if(strcmp(color, "gray13") == 0) {
+ r = 33;
+ g = 33;
+ b = 33;
+ } else if(strcmp(color, "grey13") == 0) {
+ r = 33;
+ g = 33;
+ b = 33;
+ } else if(strcmp(color, "gray14") == 0) {
+ r = 36;
+ g = 36;
+ b = 36;
+ } else if(strcmp(color, "grey14") == 0) {
+ r = 36;
+ g = 36;
+ b = 36;
+ } else if(strcmp(color, "gray15") == 0) {
+ r = 38;
+ g = 38;
+ b = 38;
+ } else if(strcmp(color, "grey15") == 0) {
+ r = 38;
+ g = 38;
+ b = 38;
+ } else if(strcmp(color, "gray16") == 0) {
+ r = 41;
+ g = 41;
+ b = 41;
+ } else if(strcmp(color, "grey16") == 0) {
+ r = 41;
+ g = 41;
+ b = 41;
+ } else if(strcmp(color, "gray17") == 0) {
+ r = 43;
+ g = 43;
+ b = 43;
+ } else if(strcmp(color, "grey17") == 0) {
+ r = 43;
+ g = 43;
+ b = 43;
+ } else if(strcmp(color, "gray18") == 0) {
+ r = 46;
+ g = 46;
+ b = 46;
+ } else if(strcmp(color, "grey18") == 0) {
+ r = 46;
+ g = 46;
+ b = 46;
+ } else if(strcmp(color, "gray19") == 0) {
+ r = 48;
+ g = 48;
+ b = 48;
+ } else if(strcmp(color, "grey19") == 0) {
+ r = 48;
+ g = 48;
+ b = 48;
+ } else if(strcmp(color, "gray20") == 0) {
+ r = 51;
+ g = 51;
+ b = 51;
+ } else if(strcmp(color, "grey20") == 0) {
+ r = 51;
+ g = 51;
+ b = 51;
+ } else if(strcmp(color, "gray21") == 0) {
+ r = 54;
+ g = 54;
+ b = 54;
+ } else if(strcmp(color, "grey21") == 0) {
+ r = 54;
+ g = 54;
+ b = 54;
+ } else if(strcmp(color, "gray22") == 0) {
+ r = 56;
+ g = 56;
+ b = 56;
+ } else if(strcmp(color, "grey22") == 0) {
+ r = 56;
+ g = 56;
+ b = 56;
+ } else if(strcmp(color, "gray23") == 0) {
+ r = 59;
+ g = 59;
+ b = 59;
+ } else if(strcmp(color, "grey23") == 0) {
+ r = 59;
+ g = 59;
+ b = 59;
+ } else if(strcmp(color, "gray24") == 0) {
+ r = 61;
+ g = 61;
+ b = 61;
+ } else if(strcmp(color, "grey24") == 0) {
+ r = 61;
+ g = 61;
+ b = 61;
+ } else if(strcmp(color, "gray25") == 0) {
+ r = 64;
+ g = 64;
+ b = 64;
+ } else if(strcmp(color, "grey25") == 0) {
+ r = 64;
+ g = 64;
+ b = 64;
+ } else if(strcmp(color, "gray26") == 0) {
+ r = 66;
+ g = 66;
+ b = 66;
+ } else if(strcmp(color, "grey26") == 0) {
+ r = 66;
+ g = 66;
+ b = 66;
+ } else if(strcmp(color, "gray27") == 0) {
+ r = 69;
+ g = 69;
+ b = 69;
+ } else if(strcmp(color, "grey27") == 0) {
+ r = 69;
+ g = 69;
+ b = 69;
+ } else if(strcmp(color, "gray28") == 0) {
+ r = 71;
+ g = 71;
+ b = 71;
+ } else if(strcmp(color, "grey28") == 0) {
+ r = 71;
+ g = 71;
+ b = 71;
+ } else if(strcmp(color, "gray29") == 0) {
+ r = 74;
+ g = 74;
+ b = 74;
+ } else if(strcmp(color, "grey29") == 0) {
+ r = 74;
+ g = 74;
+ b = 74;
+ } else if(strcmp(color, "gray30") == 0) {
+ r = 77;
+ g = 77;
+ b = 77;
+ } else if(strcmp(color, "grey30") == 0) {
+ r = 77;
+ g = 77;
+ b = 77;
+ } else if(strcmp(color, "gray31") == 0) {
+ r = 79;
+ g = 79;
+ b = 79;
+ } else if(strcmp(color, "grey31") == 0) {
+ r = 79;
+ g = 79;
+ b = 79;
+ } else if(strcmp(color, "gray32") == 0) {
+ r = 82;
+ g = 82;
+ b = 82;
+ } else if(strcmp(color, "grey32") == 0) {
+ r = 82;
+ g = 82;
+ b = 82;
+ } else if(strcmp(color, "gray33") == 0) {
+ r = 84;
+ g = 84;
+ b = 84;
+ } else if(strcmp(color, "grey33") == 0) {
+ r = 84;
+ g = 84;
+ b = 84;
+ } else if(strcmp(color, "gray34") == 0) {
+ r = 87;
+ g = 87;
+ b = 87;
+ } else if(strcmp(color, "grey34") == 0) {
+ r = 87;
+ g = 87;
+ b = 87;
+ } else if(strcmp(color, "gray35") == 0) {
+ r = 89;
+ g = 89;
+ b = 89;
+ } else if(strcmp(color, "grey35") == 0) {
+ r = 89;
+ g = 89;
+ b = 89;
+ } else if(strcmp(color, "gray36") == 0) {
+ r = 92;
+ g = 92;
+ b = 92;
+ } else if(strcmp(color, "grey36") == 0) {
+ r = 92;
+ g = 92;
+ b = 92;
+ } else if(strcmp(color, "gray37") == 0) {
+ r = 94;
+ g = 94;
+ b = 94;
+ } else if(strcmp(color, "grey37") == 0) {
+ r = 94;
+ g = 94;
+ b = 94;
+ } else if(strcmp(color, "gray38") == 0) {
+ r = 97;
+ g = 97;
+ b = 97;
+ } else if(strcmp(color, "grey38") == 0) {
+ r = 97;
+ g = 97;
+ b = 97;
+ } else if(strcmp(color, "gray39") == 0) {
+ r = 99;
+ g = 99;
+ b = 99;
+ } else if(strcmp(color, "grey39") == 0) {
+ r = 99;
+ g = 99;
+ b = 99;
+ } else if(strcmp(color, "gray40") == 0) {
+ r = 102;
+ g = 102;
+ b = 102;
+ } else if(strcmp(color, "grey40") == 0) {
+ r = 102;
+ g = 102;
+ b = 102;
+ } else if(strcmp(color, "gray41") == 0) {
+ r = 105;
+ g = 105;
+ b = 105;
+ } else if(strcmp(color, "grey41") == 0) {
+ r = 105;
+ g = 105;
+ b = 105;
+ } else if(strcmp(color, "gray42") == 0) {
+ r = 107;
+ g = 107;
+ b = 107;
+ } else if(strcmp(color, "grey42") == 0) {
+ r = 107;
+ g = 107;
+ b = 107;
+ } else if(strcmp(color, "gray43") == 0) {
+ r = 110;
+ g = 110;
+ b = 110;
+ } else if(strcmp(color, "grey43") == 0) {
+ r = 110;
+ g = 110;
+ b = 110;
+ } else if(strcmp(color, "gray44") == 0) {
+ r = 112;
+ g = 112;
+ b = 112;
+ } else if(strcmp(color, "grey44") == 0) {
+ r = 112;
+ g = 112;
+ b = 112;
+ } else if(strcmp(color, "gray45") == 0) {
+ r = 115;
+ g = 115;
+ b = 115;
+ } else if(strcmp(color, "grey45") == 0) {
+ r = 115;
+ g = 115;
+ b = 115;
+ } else if(strcmp(color, "gray46") == 0) {
+ r = 117;
+ g = 117;
+ b = 117;
+ } else if(strcmp(color, "grey46") == 0) {
+ r = 117;
+ g = 117;
+ b = 117;
+ } else if(strcmp(color, "gray47") == 0) {
+ r = 120;
+ g = 120;
+ b = 120;
+ } else if(strcmp(color, "grey47") == 0) {
+ r = 120;
+ g = 120;
+ b = 120;
+ } else if(strcmp(color, "gray48") == 0) {
+ r = 122;
+ g = 122;
+ b = 122;
+ } else if(strcmp(color, "grey48") == 0) {
+ r = 122;
+ g = 122;
+ b = 122;
+ } else if(strcmp(color, "gray49") == 0) {
+ r = 125;
+ g = 125;
+ b = 125;
+ } else if(strcmp(color, "grey49") == 0) {
+ r = 125;
+ g = 125;
+ b = 125;
+ } else if(strcmp(color, "gray50") == 0) {
+ r = 127;
+ g = 127;
+ b = 127;
+ } else if(strcmp(color, "grey50") == 0) {
+ r = 127;
+ g = 127;
+ b = 127;
+ } else if(strcmp(color, "gray51") == 0) {
+ r = 130;
+ g = 130;
+ b = 130;
+ } else if(strcmp(color, "grey51") == 0) {
+ r = 130;
+ g = 130;
+ b = 130;
+ } else if(strcmp(color, "gray52") == 0) {
+ r = 133;
+ g = 133;
+ b = 133;
+ } else if(strcmp(color, "grey52") == 0) {
+ r = 133;
+ g = 133;
+ b = 133;
+ } else if(strcmp(color, "gray53") == 0) {
+ r = 135;
+ g = 135;
+ b = 135;
+ } else if(strcmp(color, "grey53") == 0) {
+ r = 135;
+ g = 135;
+ b = 135;
+ } else if(strcmp(color, "gray54") == 0) {
+ r = 138;
+ g = 138;
+ b = 138;
+ } else if(strcmp(color, "grey54") == 0) {
+ r = 138;
+ g = 138;
+ b = 138;
+ } else if(strcmp(color, "gray55") == 0) {
+ r = 140;
+ g = 140;
+ b = 140;
+ } else if(strcmp(color, "grey55") == 0) {
+ r = 140;
+ g = 140;
+ b = 140;
+ } else if(strcmp(color, "gray56") == 0) {
+ r = 143;
+ g = 143;
+ b = 143;
+ } else if(strcmp(color, "grey56") == 0) {
+ r = 143;
+ g = 143;
+ b = 143;
+ } else if(strcmp(color, "gray57") == 0) {
+ r = 145;
+ g = 145;
+ b = 145;
+ } else if(strcmp(color, "grey57") == 0) {
+ r = 145;
+ g = 145;
+ b = 145;
+ } else if(strcmp(color, "gray58") == 0) {
+ r = 148;
+ g = 148;
+ b = 148;
+ } else if(strcmp(color, "grey58") == 0) {
+ r = 148;
+ g = 148;
+ b = 148;
+ } else if(strcmp(color, "gray59") == 0) {
+ r = 150;
+ g = 150;
+ b = 150;
+ } else if(strcmp(color, "grey59") == 0) {
+ r = 150;
+ g = 150;
+ b = 150;
+ } else if(strcmp(color, "gray60") == 0) {
+ r = 153;
+ g = 153;
+ b = 153;
+ } else if(strcmp(color, "grey60") == 0) {
+ r = 153;
+ g = 153;
+ b = 153;
+ } else if(strcmp(color, "gray61") == 0) {
+ r = 156;
+ g = 156;
+ b = 156;
+ } else if(strcmp(color, "grey61") == 0) {
+ r = 156;
+ g = 156;
+ b = 156;
+ } else if(strcmp(color, "gray62") == 0) {
+ r = 158;
+ g = 158;
+ b = 158;
+ } else if(strcmp(color, "grey62") == 0) {
+ r = 158;
+ g = 158;
+ b = 158;
+ } else if(strcmp(color, "gray63") == 0) {
+ r = 161;
+ g = 161;
+ b = 161;
+ } else if(strcmp(color, "grey63") == 0) {
+ r = 161;
+ g = 161;
+ b = 161;
+ } else if(strcmp(color, "gray64") == 0) {
+ r = 163;
+ g = 163;
+ b = 163;
+ } else if(strcmp(color, "grey64") == 0) {
+ r = 163;
+ g = 163;
+ b = 163;
+ } else if(strcmp(color, "gray65") == 0) {
+ r = 166;
+ g = 166;
+ b = 166;
+ } else if(strcmp(color, "grey65") == 0) {
+ r = 166;
+ g = 166;
+ b = 166;
+ } else if(strcmp(color, "gray66") == 0) {
+ r = 168;
+ g = 168;
+ b = 168;
+ } else if(strcmp(color, "grey66") == 0) {
+ r = 168;
+ g = 168;
+ b = 168;
+ } else if(strcmp(color, "gray67") == 0) {
+ r = 171;
+ g = 171;
+ b = 171;
+ } else if(strcmp(color, "grey67") == 0) {
+ r = 171;
+ g = 171;
+ b = 171;
+ } else if(strcmp(color, "gray68") == 0) {
+ r = 173;
+ g = 173;
+ b = 173;
+ } else if(strcmp(color, "grey68") == 0) {
+ r = 173;
+ g = 173;
+ b = 173;
+ } else if(strcmp(color, "gray69") == 0) {
+ r = 176;
+ g = 176;
+ b = 176;
+ } else if(strcmp(color, "grey69") == 0) {
+ r = 176;
+ g = 176;
+ b = 176;
+ } else if(strcmp(color, "gray70") == 0) {
+ r = 179;
+ g = 179;
+ b = 179;
+ } else if(strcmp(color, "grey70") == 0) {
+ r = 179;
+ g = 179;
+ b = 179;
+ } else if(strcmp(color, "gray71") == 0) {
+ r = 181;
+ g = 181;
+ b = 181;
+ } else if(strcmp(color, "grey71") == 0) {
+ r = 181;
+ g = 181;
+ b = 181;
+ } else if(strcmp(color, "gray72") == 0) {
+ r = 184;
+ g = 184;
+ b = 184;
+ } else if(strcmp(color, "grey72") == 0) {
+ r = 184;
+ g = 184;
+ b = 184;
+ } else if(strcmp(color, "gray73") == 0) {
+ r = 186;
+ g = 186;
+ b = 186;
+ } else if(strcmp(color, "grey73") == 0) {
+ r = 186;
+ g = 186;
+ b = 186;
+ } else if(strcmp(color, "gray74") == 0) {
+ r = 189;
+ g = 189;
+ b = 189;
+ } else if(strcmp(color, "grey74") == 0) {
+ r = 189;
+ g = 189;
+ b = 189;
+ } else if(strcmp(color, "gray75") == 0) {
+ r = 191;
+ g = 191;
+ b = 191;
+ } else if(strcmp(color, "grey75") == 0) {
+ r = 191;
+ g = 191;
+ b = 191;
+ } else if(strcmp(color, "gray76") == 0) {
+ r = 194;
+ g = 194;
+ b = 194;
+ } else if(strcmp(color, "grey76") == 0) {
+ r = 194;
+ g = 194;
+ b = 194;
+ } else if(strcmp(color, "gray77") == 0) {
+ r = 196;
+ g = 196;
+ b = 196;
+ } else if(strcmp(color, "grey77") == 0) {
+ r = 196;
+ g = 196;
+ b = 196;
+ } else if(strcmp(color, "gray78") == 0) {
+ r = 199;
+ g = 199;
+ b = 199;
+ } else if(strcmp(color, "grey78") == 0) {
+ r = 199;
+ g = 199;
+ b = 199;
+ } else if(strcmp(color, "gray79") == 0) {
+ r = 201;
+ g = 201;
+ b = 201;
+ } else if(strcmp(color, "grey79") == 0) {
+ r = 201;
+ g = 201;
+ b = 201;
+ } else if(strcmp(color, "gray80") == 0) {
+ r = 204;
+ g = 204;
+ b = 204;
+ } else if(strcmp(color, "grey80") == 0) {
+ r = 204;
+ g = 204;
+ b = 204;
+ } else if(strcmp(color, "gray81") == 0) {
+ r = 207;
+ g = 207;
+ b = 207;
+ } else if(strcmp(color, "grey81") == 0) {
+ r = 207;
+ g = 207;
+ b = 207;
+ } else if(strcmp(color, "gray82") == 0) {
+ r = 209;
+ g = 209;
+ b = 209;
+ } else if(strcmp(color, "grey82") == 0) {
+ r = 209;
+ g = 209;
+ b = 209;
+ } else if(strcmp(color, "gray83") == 0) {
+ r = 212;
+ g = 212;
+ b = 212;
+ } else if(strcmp(color, "grey83") == 0) {
+ r = 212;
+ g = 212;
+ b = 212;
+ } else if(strcmp(color, "gray84") == 0) {
+ r = 214;
+ g = 214;
+ b = 214;
+ } else if(strcmp(color, "grey84") == 0) {
+ r = 214;
+ g = 214;
+ b = 214;
+ } else if(strcmp(color, "gray85") == 0) {
+ r = 217;
+ g = 217;
+ b = 217;
+ } else if(strcmp(color, "grey85") == 0) {
+ r = 217;
+ g = 217;
+ b = 217;
+ } else if(strcmp(color, "gray86") == 0) {
+ r = 219;
+ g = 219;
+ b = 219;
+ } else if(strcmp(color, "grey86") == 0) {
+ r = 219;
+ g = 219;
+ b = 219;
+ } else if(strcmp(color, "gray87") == 0) {
+ r = 222;
+ g = 222;
+ b = 222;
+ } else if(strcmp(color, "grey87") == 0) {
+ r = 222;
+ g = 222;
+ b = 222;
+ } else if(strcmp(color, "gray88") == 0) {
+ r = 224;
+ g = 224;
+ b = 224;
+ } else if(strcmp(color, "grey88") == 0) {
+ r = 224;
+ g = 224;
+ b = 224;
+ } else if(strcmp(color, "gray89") == 0) {
+ r = 227;
+ g = 227;
+ b = 227;
+ } else if(strcmp(color, "grey89") == 0) {
+ r = 227;
+ g = 227;
+ b = 227;
+ } else if(strcmp(color, "gray90") == 0) {
+ r = 229;
+ g = 229;
+ b = 229;
+ } else if(strcmp(color, "grey90") == 0) {
+ r = 229;
+ g = 229;
+ b = 229;
+ } else if(strcmp(color, "gray91") == 0) {
+ r = 232;
+ g = 232;
+ b = 232;
+ } else if(strcmp(color, "grey91") == 0) {
+ r = 232;
+ g = 232;
+ b = 232;
+ } else if(strcmp(color, "gray92") == 0) {
+ r = 235;
+ g = 235;
+ b = 235;
+ } else if(strcmp(color, "grey92") == 0) {
+ r = 235;
+ g = 235;
+ b = 235;
+ } else if(strcmp(color, "gray93") == 0) {
+ r = 237;
+ g = 237;
+ b = 237;
+ } else if(strcmp(color, "grey93") == 0) {
+ r = 237;
+ g = 237;
+ b = 237;
+ } else if(strcmp(color, "gray94") == 0) {
+ r = 240;
+ g = 240;
+ b = 240;
+ } else if(strcmp(color, "grey94") == 0) {
+ r = 240;
+ g = 240;
+ b = 240;
+ } else if(strcmp(color, "gray95") == 0) {
+ r = 242;
+ g = 242;
+ b = 242;
+ } else if(strcmp(color, "grey95") == 0) {
+ r = 242;
+ g = 242;
+ b = 242;
+ } else if(strcmp(color, "gray96") == 0) {
+ r = 245;
+ g = 245;
+ b = 245;
+ } else if(strcmp(color, "grey96") == 0) {
+ r = 245;
+ g = 245;
+ b = 245;
+ } else if(strcmp(color, "gray97") == 0) {
+ r = 247;
+ g = 247;
+ b = 247;
+ } else if(strcmp(color, "grey97") == 0) {
+ r = 247;
+ g = 247;
+ b = 247;
+ } else if(strcmp(color, "gray98") == 0) {
+ r = 250;
+ g = 250;
+ b = 250;
+ } else if(strcmp(color, "grey98") == 0) {
+ r = 250;
+ g = 250;
+ b = 250;
+ } else if(strcmp(color, "gray99") == 0) {
+ r = 252;
+ g = 252;
+ b = 252;
+ } else if(strcmp(color, "grey99") == 0) {
+ r = 252;
+ g = 252;
+ b = 252;
+ } else if(strcmp(color, "gray100") == 0) {
+ r = 255;
+ g = 255;
+ b = 255;
+ } else if(strcmp(color, "grey100") == 0) {
+ r = 255;
+ g = 255;
+ b = 255;
+ } else {
+ r = 0;
+ g = 0;
+ b = 0;
+ }
+ return MwLLAllocColor(handle->lowlevel, r, g, b);
+}
diff --git a/src/draw.c b/src/draw.c
index d958405..540e0cd 100644
--- a/src/draw.c
+++ b/src/draw.c
@@ -52,6 +52,8 @@ MwLLColor MwParseColor(MwWidget handle, const char* text) {
r = hex(text + 1, 2);
g = hex(text + 3, 2);
b = hex(text + 5, 2);
+ } else {
+ return MwParseColorName(handle, text);
}
return MwLLAllocColor(handle->lowlevel, r, g, b);
@@ -560,9 +562,26 @@ MwLLPixmap MwLoadImage(MwWidget handle, const char* path) {
}
MwLLPixmap MwLoadRaw(MwWidget handle, unsigned char* rgb, int width, int height) {
- MwLLPixmap px;
+ MwLLPixmap px;
+ MwLLColor bg = MwParseColor(handle, MwGetText(handle, MwNbackground));
+ unsigned char* out = malloc(width * height * 4);
+ int y, x;
+ for(y = 0; y < height; y++) {
+ for(x = 0; x < width; x++) {
+ unsigned char* pin = &rgb[(y * width + x) * 4];
+ unsigned char* pout = &out[(y * width + x) * 4];
+ pout[0] = pin[0] * (pin[3] / 255.0) + bg->red * (1.0 - pin[3] / 255.0);
+ pout[1] = pin[1] * (pin[3] / 255.0) + bg->green * (1.0 - pin[3] / 255.0);
+ pout[2] = pin[2] * (pin[3] / 255.0) + bg->blue * (1.0 - pin[3] / 255.0);
+ pout[3] = 255;
+ }
+ }
- px = MwLLCreatePixmap(handle->lowlevel, rgb, width, height);
+ MwLLFreeColor(bg);
+
+ px = MwLLCreatePixmap(handle->lowlevel, out, width, height);
+
+ free(out);
return px;
}
@@ -576,27 +595,75 @@ void MwGetColor(MwLLColor color, int* red, int* green, int* blue) {
typedef struct color {
char* key;
char* value;
+ int r;
+ int g;
+ int b;
+ int a;
} color_t;
MwLLPixmap MwLoadXPM(MwWidget handle, char** data) {
int col, row, colors, cpp;
unsigned char* rgb;
MwLLPixmap px;
- char k[512];
color_t* c = NULL;
- int i;
+ int i, y, x;
+ char* comp;
sh_new_strdup(c);
sscanf(data[0], "%d %d %d %d", &col, &row, &colors, &cpp);
for(i = 0; i < colors; i++) {
- memcpy(k, data[i + 1], cpp);
- k[cpp] = 0;
- printf("%s\n", k);
+ char k[128];
+ char* v = data[i + 1] + cpp + 3;
+ int ind;
+ if(strcmp(v, "None") == 0) {
+ memcpy(k, data[i + 1], cpp);
+ k[cpp] = 0;
+
+ shput(c, k, v);
+ ind = shgeti(c, k);
+
+ c[ind].r = 0;
+ c[ind].g = 0;
+ c[ind].b = 0;
+ c[ind].a = 0;
+ } else {
+ MwLLColor color = MwParseColor(handle, v);
+
+ memcpy(k, data[i + 1], cpp);
+ k[cpp] = 0;
+
+ shput(c, k, v);
+ ind = shgeti(c, k);
+
+ c[ind].r = color->red;
+ c[ind].g = color->green;
+ c[ind].b = color->blue;
+ c[ind].a = 255;
+
+ MwLLFreeColor(color);
+ }
}
- rgb = malloc(row * col * 4);
+ rgb = malloc(row * col * 4);
+ comp = malloc(cpp + 1);
+ comp[cpp] = 0;
+ for(y = 0; y < row; y++) {
+ for(x = 0; x < col; x++) {
+ unsigned char* pout = &rgb[(y * col + x) * 4];
+ color_t colent;
+ memcpy(comp, &data[1 + colors + y][x * cpp], cpp);
+
+ colent = shgets(c, comp);
+
+ pout[0] = colent.r;
+ pout[1] = colent.g;
+ pout[2] = colent.b;
+ pout[3] = colent.a;
+ }
+ }
+ free(comp);
px = MwLoadRaw(handle, rgb, col, row);
diff --git a/src/messagebox.c b/src/messagebox.c
new file mode 100644
index 0000000..9ab673a
--- /dev/null
+++ b/src/messagebox.c
@@ -0,0 +1,55 @@
+/* $Id$ */
+#include
+
+MwWidget MwMessageBox(MwWidget handle, const char* text, const char* title, unsigned int flag) {
+ MwWidget window, ok;
+ MwPoint p;
+ int w, h;
+
+ p.x = 0;
+ p.y = 0;
+
+ window = MwVaCreateWidget(MwWindowClass, "messagebox", handle, 0, 0, (w = 512), (h = 32 * 4),
+ MwNtitle, title,
+ NULL);
+ ok = MwVaCreateWidget(MwButtonClass, "ok", window, w - 8 - 64, h - 8 - 24, 64, 24,
+ MwNtext, "OK",
+ NULL);
+
+ if((flag & MwMB_ICONMASK) != 0) {
+ MwWidget icon;
+ MwLLPixmap px;
+ char** data = NULL;
+
+ icon = MwCreateWidget(MwImageClass, "image", window, 16, (h - 48) / 2, 48, 48);
+
+ switch(flag & MwMB_ICONMASK) {
+ case MwMB_ICONWARNING: {
+ data = MwIconWarning;
+ break;
+ }
+ case MwMB_ICONINFO: {
+ data = MwIconInfo;
+ break;
+ }
+ case MwMB_ICONNOTE: {
+ data = MwIconNote;
+ break;
+ }
+ case MwMB_ICONQUESTION: {
+ data = MwIconQuestion;
+ break;
+ }
+ }
+
+ px = MwLoadXPM(icon, data);
+
+ MwSetVoid(icon, MwNpixmap, px);
+ }
+
+ MwLLDetach(window->lowlevel, &p);
+ MwLLSetSizeHints(window->lowlevel, w, h, w, h);
+ MwLLMakePopup(window->lowlevel, handle->lowlevel);
+
+ return window;
+}
diff --git a/src/widget/submenu.c b/src/widget/submenu.c
index 895962d..464cc30 100644
--- a/src/widget/submenu.c
+++ b/src/widget/submenu.c
@@ -174,7 +174,7 @@ void MwSubMenuAppear(MwWidget handle, MwMenu menu, MwPoint* point) {
xswa.override_redirect = True;
XChangeWindowAttributes(handle->lowlevel->display, handle->lowlevel->window, CWOverrideRedirect, &xswa);
- XChangeProperty(handle->lowlevel->display, handle->lowlevel->window, wndtype, 4, 32, PropModeReplace, (unsigned char*)&wndmenu, 1);
+ XChangeProperty(handle->lowlevel->display, handle->lowlevel->window, wndtype, XA_ATOM, 32, PropModeReplace, (unsigned char*)&wndmenu, 1);
#endif
handle->internal = menu;
diff --git a/tools/color.pl b/tools/color.pl
new file mode 100755
index 0000000..f3a219b
--- /dev/null
+++ b/tools/color.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/env perl
+# $Id$
+
+open(IN, "<", "resource/rgb.txt");
+open(OUT, ">", "src/color.c");
+
+print(OUT "/* \$Id\$ */\n");
+print(OUT "#include \n");
+print(OUT "\n");
+print(OUT "MwLLColor MwParseColorName(MwWidget handle, const char* color){\n");
+print(OUT " int r, g, b;\n");
+print(OUT " ");
+while (my $l = ) {
+ $l =~ s/\r?\n$//;
+ if ($l =~ /^[ \t]*([0-9]+)[ \t]+([0-9]+)[ \t]+([0-9]+)[ \t]+(.+)$/) {
+ print(OUT "if(strcmp(color, \"$4\") == 0){\n");
+ print(OUT " r = $1;\n");
+ print(OUT " g = $2;\n");
+ print(OUT " b = $3;\n");
+ print(OUT " }else ");
+ }
+}
+print(OUT "{\n");
+print(OUT " r = 0;\n");
+print(OUT " g = 0;\n");
+print(OUT " b = 0;\n");
+print(OUT " }\n");
+print(OUT " return MwLLAllocColor(handle->lowlevel, r, g, b);\n");
+print(OUT "}\n");
+
+close(OUT);
+close(IN);