mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-24 23:56:49 +03:00
698c85d52f
WebView: fix very old bug related with named colors git-svn-id: svn://kolibrios.org@5499 a494cfbc-eb01-0410-851d-a64ba20cac60
194 lines
4.6 KiB
C
194 lines
4.6 KiB
C
//Íàäî áóäåò ïåðåäåëàòü íà "äåðåâî ïîèñêà" èëè, ÷òî-òî ïîäîáíîå
|
|
//áóäåò íå÷èòàáåëüíî, çàòî ìåíüøå è áûñòåå
|
|
|
|
struct color_spec {
|
|
char *name;
|
|
int rgb;
|
|
};
|
|
|
|
struct color_spec color_specs[] = {
|
|
"aliceblue", 0xF0F8FF,
|
|
"antiquewhite", 0xFAEBD7,
|
|
"aqua", 0x00FFFF,
|
|
"aquamarine", 0x7FFFD4,
|
|
"azure", 0xF0FFFF,
|
|
"beige", 0xF5F5DC,
|
|
"bisque", 0xFFE4C4,
|
|
"black", 0x000000,
|
|
"blanchedalmond",0xFFEBCD,
|
|
"blue", 0x0000FF,
|
|
"blueviolet", 0x8A2BE2,
|
|
"brown", 0xA52A2A,
|
|
"burlywood", 0xDEB887,
|
|
"cadetblue", 0x5F9EA0,
|
|
"chartreuse", 0x7FFF00,
|
|
"chocolate", 0xD2691E,
|
|
"coral", 0xFF7F50,
|
|
"cornflowerblue",0x6495ED,
|
|
"cornsilk", 0xFFF8DC,
|
|
"crimson", 0xDC143C,
|
|
"cyan", 0x00FFFF,
|
|
"darkblue", 0x00008B,
|
|
"darkcyan", 0x008B8B,
|
|
"darkgoldenrod", 0xB8860B,
|
|
"darkgray", 0xA9A9A9,
|
|
"darkgreen", 0x006400,
|
|
"darkkhaki", 0xBDB76B,
|
|
"darkmagenta", 0x8B008B,
|
|
"darkolivegreen",0x556B2F,
|
|
"darkorange", 0xFF8C00,
|
|
"darkorchid", 0x9932CC,
|
|
"darkred", 0x8B0000,
|
|
"darksalmon", 0xE9967A,
|
|
"darkseagreen", 0x8FBC8F,
|
|
"darkslateblue", 0x483D8B,
|
|
"darkslategray", 0x2F4F4F,
|
|
"darkturquoise", 0x00CED1,
|
|
"darkviolet", 0x9400D3,
|
|
"deeppink", 0xFF1493,
|
|
"deepskyblue", 0x00BFFF,
|
|
"dimgray", 0x696969,
|
|
"dodgerblue", 0x1E90FF,
|
|
"firebrick", 0xB22222,
|
|
"floralwhite", 0xFFFAF0,
|
|
"forestgreen", 0x228B22,
|
|
"fuchsia", 0xFF00FF,
|
|
"gainsboro", 0xDCDCDC,
|
|
"ghostwhite", 0xF8F8FF,
|
|
"gold", 0xFFD700,
|
|
"goldenrod", 0xDAA520,
|
|
"gray", 0x808080,
|
|
"green", 0x008000,
|
|
"greenyellow", 0xADFF2F,
|
|
"honeydew", 0xF0FFF0,
|
|
"hotpink", 0xFF69B4,
|
|
"indianred", 0xCD5C5C,
|
|
"indigo", 0x4B0082,
|
|
"ivory", 0xFFFFF0,
|
|
"khaki", 0xF0E68C,
|
|
"lavender", 0xE6E6FA,
|
|
"lavenderblush", 0xFFF0F5,
|
|
"lawngreen", 0x7CFC00,
|
|
"lemonchiffon", 0xFFFACD,
|
|
"lightblue", 0xADD8E6,
|
|
"lightcoral", 0xF08080,
|
|
"lightcyan", 0xE0FFFF,
|
|
"lightgoldenrodyellow", 0xFAFAD2,
|
|
"lightgreen", 0x90EE90,
|
|
"lightgrey", 0xD3D3D3,
|
|
"lightpink", 0xFFB6C1,
|
|
"lightsalmon", 0xFFA07A,
|
|
"lightseagreen", 0x20B2AA,
|
|
"lightskyblue", 0x87CEFA,
|
|
"lightslategray",0x778899,
|
|
"lightsteelblue",0xB0C4DE,
|
|
"lightyellow", 0xFFFFE0,
|
|
"lime", 0x00FF00,
|
|
"limegreen", 0x32CD32,
|
|
"linen", 0xFAF0E6,
|
|
"magenta", 0xFF00FF,
|
|
"maroon", 0x800000,
|
|
"mediumaquamarine",0x66CDAA,
|
|
"mediumblue", 0x0000CD,
|
|
"mediumorchid", 0xBA55D3,
|
|
"mediumpurple", 0x9370DB,
|
|
"mediumseagreen",0x3CB371,
|
|
"mediumslateblue",0x7B68EE,
|
|
"mediumspringgreen",0x00FA9A,
|
|
"mediumturquoise",0x48D1CC,
|
|
"mediumvioletred",0xC71585,
|
|
"midnightblue", 0x191970,
|
|
"mintcream", 0xF5FFFA,
|
|
"mistyrose", 0xFFE4E1,
|
|
"moccasin", 0xFFE4B5,
|
|
"navajowhite", 0xFFDEAD,
|
|
"navy", 0x000080,
|
|
"oldlace", 0xFDF5E6,
|
|
"olive", 0x808000,
|
|
"olivedrab", 0x6B8E23,
|
|
"orange", 0xFFA500,
|
|
"orangered", 0xFF4500,
|
|
"orchid", 0xDA70D6,
|
|
"palegoldenrod", 0xEEE8AA,
|
|
"palegreen", 0x98FB98,
|
|
"paleturquoise", 0xAFEEEE,
|
|
"palevioletred", 0xDB7093,
|
|
"papayawhip", 0xFFEFD5,
|
|
"peachpuff", 0xFFDAB9,
|
|
"peru", 0xCD853F,
|
|
"pink", 0xFFC0CB,
|
|
"plum", 0xDDA0DD,
|
|
"powderblue", 0xB0E0E6,
|
|
"purple", 0x800080,
|
|
"red", 0xFF0000,
|
|
"rosybrown", 0xBC8F8F,
|
|
"royalblue", 0x4169E1,
|
|
"saddlebrown", 0x8B4513,
|
|
"salmon", 0xFA8072,
|
|
"sandybrown", 0xF4A460,
|
|
"seagreen", 0x2E8B57,
|
|
"seashell", 0xFFF5EE,
|
|
"sienna", 0xA0522D,
|
|
"silver", 0xC0C0C0,
|
|
"skyblue", 0x87CEEB,
|
|
"slateblue", 0x6A5ACD,
|
|
"slategray", 0x708090,
|
|
"snow", 0xFFFAFA,
|
|
"springgreen", 0x00FF7F,
|
|
"steelblue", 0x4682B4,
|
|
"tan", 0xD2B48C,
|
|
"teal", 0x008080,
|
|
"thistle", 0xD8BFD8,
|
|
"tomato", 0xFF6347,
|
|
"turquoise", 0x40E0D0,
|
|
"violet", 0xEE82EE,
|
|
"wheat", 0xF5DEB3,
|
|
"white", 0xFFFFFF,
|
|
"whitesmoke", 0xF5F5F5,
|
|
"yellow", 0xFFFF00,
|
|
"yellowgreen", 0x9ACD32,
|
|
0};
|
|
|
|
dword StrToCol(char* htmlcolor)
|
|
{
|
|
dword j=1,
|
|
color=0,
|
|
textlen=0;
|
|
char ch=0x00;
|
|
|
|
if (ESBYTE[htmlcolor]<>'#') return text_colors[0];
|
|
|
|
textlen = strlen(htmlcolor);
|
|
|
|
if (textlen==7) || (textlen==4)
|
|
{
|
|
FOR (; j<textlen; j++)
|
|
{
|
|
ch=ESBYTE[htmlcolor+j];
|
|
IF ((ch>='0') && (ch<='9')) ch -= '0';
|
|
IF ((ch>='A') && (ch<='F')) ch -= 'A'-10;
|
|
IF ((ch>='a') && (ch<='f')) ch -= 'a'-10;
|
|
color = color*0x10 + ch;
|
|
if (textlen==4) color = color*0x10 + ch; //#abc ->> #aabbcc (ñëàâà âèêèïåäèè!!1)
|
|
}
|
|
return color;
|
|
}
|
|
|
|
return text_colors[0];
|
|
}
|
|
|
|
dword GetColor(char* color_str)
|
|
{
|
|
int ii;
|
|
|
|
if (ESBYTE[color_str] == '#')
|
|
return StrToCol(color_str);
|
|
else
|
|
for (ii=0; color_specs[ii].name!=0; ii++)
|
|
{
|
|
if (!strcmpi(color_str, color_specs[ii].name)) return color_specs[ii].rgb;
|
|
}
|
|
|
|
return text_colors[0];
|
|
}
|