Subversion Repositories Kolibri OS

Rev

Rev 4411 | Blame | Last modification | View Log | Download | RSS feed

  1. //Íàäî áóäåò ïåðåäåëàòü íà "äåðåâî ïîèñêà" èëè, ÷òî-òî ïîäîáíîå
  2. //áóäåò íå÷èòàáåëüíî, çàòî ìåíüøå è áûñòåå
  3.  
  4. struct color_spec {
  5.         char *name;
  6.         int rgb;
  7. };
  8.  
  9. struct color_spec color_specs[] = {
  10.         "aliceblue",     0xF0F8FF,
  11.         "antiquewhite",  0xFAEBD7,
  12.         "aqua",          0x00FFFF,
  13.         "aquamarine",    0x7FFFD4,
  14.         "azure",                 0xF0FFFF,
  15.         "beige",                 0xF5F5DC,
  16.         "bisque",                0xFFE4C4,
  17.         "black",                 0x000000,
  18.         "blanchedalmond",0xFFEBCD,
  19.         "blue",          0x0000FF,
  20.         "blueviolet",    0x8A2BE2,
  21.         "brown",                 0xA52A2A,
  22.         "burlywood",     0xDEB887,
  23.         "cadetblue",     0x5F9EA0,
  24.         "chartreuse",    0x7FFF00,
  25.         "chocolate",     0xD2691E,
  26.         "coral",         0xFF7F50,
  27.         "cornflowerblue",0x6495ED,
  28.         "cornsilk",              0xFFF8DC,
  29.         "crimson",               0xDC143C,
  30.         "cyan",          0x00FFFF,
  31.         "darkblue",          0x00008B,
  32.         "darkcyan",          0x008B8B,
  33.         "darkgoldenrod", 0xB8860B,
  34.         "darkgray",          0xA9A9A9,
  35.         "darkgreen",     0x006400,
  36.         "darkkhaki",     0xBDB76B,
  37.         "darkmagenta",   0x8B008B,
  38.         "darkolivegreen",0x556B2F,
  39.         "darkorange",    0xFF8C00,
  40.         "darkorchid",    0x9932CC,
  41.         "darkred",               0x8B0000,
  42.         "darksalmon",    0xE9967A,
  43.         "darkseagreen",  0x8FBC8F,
  44.         "darkslateblue", 0x483D8B,
  45.         "darkslategray", 0x2F4F4F,
  46.         "darkturquoise", 0x00CED1,
  47.         "darkviolet",    0x9400D3,
  48.         "deeppink",      0xFF1493,
  49.         "deepskyblue",   0x00BFFF,
  50.         "dimgray",       0x696969,
  51.         "dodgerblue",    0x1E90FF,
  52.         "firebrick",     0xB22222,
  53.         "floralwhite",   0xFFFAF0,
  54.         "forestgreen",   0x228B22,
  55.         "fuchsia",       0xFF00FF,
  56.         "gainsboro",     0xDCDCDC,
  57.         "ghostwhite",    0xF8F8FF,
  58.         "gold",          0xFFD700,
  59.         "goldenrod",     0xDAA520,
  60.         "gray",          0x808080,
  61.         "green",         0x008000,
  62.         "greenyellow",   0xADFF2F,
  63.         "honeydew",      0xF0FFF0,
  64.         "hotpink",       0xFF69B4,
  65.         "indianred",     0xCD5C5C,
  66.         "indigo",        0x4B0082,
  67.         "ivory",         0xFFFFF0,
  68.         "khaki",         0xF0E68C,
  69.         "lavender",      0xE6E6FA,
  70.         "lavenderblush", 0xFFF0F5,
  71.         "lawngreen",     0x7CFC00,
  72.         "lemonchiffon",  0xFFFACD,
  73.         "lightblue",     0xADD8E6,
  74.         "lightcoral",    0xF08080,
  75.         "lightcyan",     0xE0FFFF,
  76.         "lightgoldenrodyellow", 0xFAFAD2,
  77.         "lightgreen",    0x90EE90,
  78.         "lightgrey",     0xD3D3D3,
  79.         "lightpink",     0xFFB6C1,
  80.         "lightsalmon",   0xFFA07A,
  81.         "lightseagreen", 0x20B2AA,
  82.         "lightskyblue",  0x87CEFA,
  83.         "lightslategray",0x778899,
  84.         "lightsteelblue",0xB0C4DE,
  85.         "lightyellow",   0xFFFFE0,
  86.         "lime",          0x00FF00,
  87.         "limegreen",     0x32CD32,
  88.         "linen",         0xFAF0E6,
  89.         "magenta",       0xFF00FF,
  90.         "maroon",        0x800000,
  91.         "mediumaquamarine",0x66CDAA,
  92.         "mediumblue",    0x0000CD,
  93.         "mediumorchid",  0xBA55D3,
  94.         "mediumpurple",  0x9370DB,
  95.         "mediumseagreen",0x3CB371,
  96.         "mediumslateblue",0x7B68EE,
  97.         "mediumspringgreen",0x00FA9A,
  98.         "mediumturquoise",0x48D1CC,
  99.         "mediumvioletred",0xC71585,
  100.         "midnightblue",  0x191970,
  101.         "mintcream",     0xF5FFFA,
  102.         "mistyrose",     0xFFE4E1,
  103.         "moccasin",          0xFFE4B5,
  104.         "navajowhite",   0xFFDEAD,
  105.         "navy",          0x000080,
  106.         "oldlace",       0xFDF5E6,
  107.         "olive",         0x808000,
  108.         "olivedrab",     0x6B8E23,
  109.         "orange",        0xFFA500,
  110.         "orangered",     0xFF4500,
  111.         "orchid",        0xDA70D6,
  112.         "palegoldenrod", 0xEEE8AA,
  113.         "palegreen",     0x98FB98,
  114.         "paleturquoise", 0xAFEEEE,
  115.         "palevioletred", 0xDB7093,
  116.         "papayawhip",    0xFFEFD5,
  117.         "peachpuff",     0xFFDAB9,
  118.         "peru",          0xCD853F,
  119.         "pink",          0xFFC0CB,
  120.         "plum",          0xDDA0DD,
  121.         "powderblue",    0xB0E0E6,
  122.         "purple",        0x800080,
  123.         "red",           0xFF0000,
  124.         "rosybrown",     0xBC8F8F,
  125.         "royalblue",     0x4169E1,
  126.         "saddlebrown",   0x8B4513,
  127.         "salmon",        0xFA8072,
  128.         "sandybrown",    0xF4A460,
  129.         "seagreen",      0x2E8B57,
  130.         "seashell",      0xFFF5EE,
  131.         "sienna",        0xA0522D,
  132.         "silver",        0xC0C0C0,
  133.         "skyblue",       0x87CEEB,
  134.         "slateblue",     0x6A5ACD,
  135.         "slategray",     0x708090,
  136.         "snow",          0xFFFAFA,
  137.         "springgreen",   0x00FF7F,
  138.         "steelblue",     0x4682B4,
  139.         "tan",           0xD2B48C,
  140.         "teal",          0x008080,
  141.         "thistle",       0xD8BFD8,
  142.         "tomato",        0xFF6347,
  143.         "turquoise",     0x40E0D0,
  144.         "violet",        0xEE82EE,
  145.         "wheat",         0xF5DEB3,
  146.         "white",         0xFFFFFF,
  147.         "whitesmoke",    0xF5F5F5,
  148.         "yellow",        0xFFFF00,
  149.         "yellowgreen",   0x9ACD32,
  150. 0};
  151.  
  152. dword StrToCol(char* htmlcolor)
  153. {
  154.         dword j=1,
  155.                 color=0,
  156.                 textlen=0;
  157.         char ch=0x00;
  158.  
  159.         if (ESBYTE[htmlcolor]<>'#') return text_colors[0];
  160.  
  161.         textlen = strlen(htmlcolor);
  162.  
  163.         if (textlen==7) || (textlen==4)
  164.         {
  165.                 FOR (;  j<textlen;  j++)
  166.                 {
  167.                         ch=ESBYTE[htmlcolor+j];
  168.                         IF ((ch>='0') && (ch<='9')) ch -= '0';
  169.                         IF ((ch>='A') && (ch<='F')) ch -= 'A'-10;
  170.                         IF ((ch>='a') && (ch<='f')) ch -= 'a'-10;
  171.                         color = color*0x10 + ch;
  172.                         if (textlen==4) color = color*0x10 + ch; //#abc ->> #aabbcc (ñëàâà âèêèïåäèè!!1)
  173.                 }
  174.                 return color;
  175.         }
  176.  
  177.         return text_colors[0];
  178. }
  179.  
  180. dword GetColor(char* color_str)
  181. {
  182.         int ii;
  183.  
  184.         if (ESBYTE[color_str] == '#')
  185.                 return StrToCol(color_str);
  186.         else
  187.                 for (ii=0; color_specs[ii].name!=0; ii++)
  188.                 {
  189.                         if (!strcmpi(color_str, color_specs[ii].name)) return color_specs[ii].rgb;
  190.                 }
  191.  
  192.         return text_colors[0];
  193. }
  194.