From 49e86ce2331164282dc0906cc155762e78adae82 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Fri, 20 Jul 2012 13:18:10 +0000 Subject: [PATCH] HTMLv 0.96d git-svn-id: svn://kolibrios.org@2884 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/htmlv/browser/History.txt | 5 +- programs/network/htmlv/browser/TWB.h | 2 +- .../network/htmlv/browser/include/colors.h | 480 +++++++----------- 3 files changed, 179 insertions(+), 308 deletions(-) diff --git a/programs/network/htmlv/browser/History.txt b/programs/network/htmlv/browser/History.txt index 95b53c4e92..20bf5eea66 100644 --- a/programs/network/htmlv/browser/History.txt +++ b/programs/network/htmlv/browser/History.txt @@ -1,6 +1,7 @@ -16.07.12 - 0.96b +16.07.12 - 0.96d - небольшие улучшения в обработке ссылок и изображений; -- включение обработки разрывов строк через меню. +- включение обработки разрывов строк через меню; +- поддержка цветов вида #abc, улучшения в обработке цветов. 14.07.12 - 0.96 - исправлен баг со строкой адреса diff --git a/programs/network/htmlv/browser/TWB.h b/programs/network/htmlv/browser/TWB.h index d4ac1b989d..232f81c800 100644 --- a/programs/network/htmlv/browser/TWB.h +++ b/programs/network/htmlv/browser/TWB.h @@ -8,7 +8,7 @@ dword char download_path[]="/rd/1/.download"; char search_path[]="http://nigma.ru/index.php?s="; -char version[]=" Text-based Browser 0.96b"; +char version[]=" Text-based Browser 0.96d"; struct TWebBrowser { diff --git a/programs/network/htmlv/browser/include/colors.h b/programs/network/htmlv/browser/include/colors.h index a9e8dfb7f8..a1ba853236 100644 --- a/programs/network/htmlv/browser/include/colors.h +++ b/programs/network/htmlv/browser/include/colors.h @@ -1,323 +1,193 @@ //Надо будет переделать на "дерево поиска" или, что-то подобное //будет нечитабельно, зато меньше и быстее -//Имена web цветов -char *color_names[]={ -"aliceblue", -"antiquewhite", -"aqua", -"aquamarine", -"azure", -"beige", -"bisque", -"black", -"blanchedalmond", -"blue", -"blueviolet", -"brown", -"burlywood", -"cadetblue", -"chartreuse", -"chocolate", -"coral", -"cornflowerblue", -"cornsilk", -"crimson", -"cyan", -"darkblue", -"darkcyan", -"darkgoldenrod", -"darkgray", -"darkgreen", -"darkkhaki", -"darkmagenta", -"darkolivegreen", -"darkorange", -"darkorchid", -"darkred", -"darksalmon", -"darkseagreen", -"darkslateblue", -"darkslategray", -"darkturquoise", -"darkviolet", -"deeppink", -"deepskyblue", -"dimgray", -"dodgerblue", -"firebrick", -"floralwhite", -"forestgreen", -"fuchsia", -"gainsboro", -"ghostwhite", -"gold", -"goldenrod", -"gray", -"green", -"greenyellow", -"honeydew", -"hotpink", -"indianred", -"indigo", -"ivory", -"khaki", -"lavender", -"lavenderblush", -"lawngreen", -"lemonchiffon", -"lightblue", -"lightcoral", -"lightcyan", -"lightgoldenrodyellow", -"lightgray", -"lightgreen", -"lightpink", -"lightsalmon", -"lightseagreen", -"lightskyblue", -"lightslategray", -"lightsteelblue", -"lightyellow", -"lime", -"limegreen", -"linen", -"magenta", -"maroon", -"mediumaquamarine", -"mediumblue", -"mediumorchid", -"mediumpurple", -"mediumseagreen", -"mediumslateblue", -"mediumspringgreen", -"mediumturquoise", -"mediumvioletred", -"midnightblue", -"mintcream", -"mistyrose", -"moccasin", -"navajowhite", -"navy", -"navyblue", -"oldlace", -"olive", -"olivedrab", -"orange", -"orangered", -"orchid", -"palegoldenrod", -"paleturquoise", -"palevioletred", -"papayawhip", -"peachpuff", -"peru", -"pink", -"plum", -"powderblue", -"purple", -"red", -"rosybrown", -"royalblue", -"saddlebrown", -"salmon", -"sandybrown", -"seagreen", -"seashell", -"sienna", -"silver", -"skyblue", -"slateblue", -"slategray", -"snow", -"springgreen", -"steelblue", -"tan", -"teal", -"thistle", -"tomato", -"turquoise", -"violet", -"wheat", -"white", -"whitesmoke", -"yellow", -"yellowgreen", -0}; +struct color_spec { + char *name; + int rgb; +}; -//соответствующие им значения -dword *colors[]={ -0xf0f8ff, -0xfaebd7, -0x00ffff, -0x7fffd4, -0xf0ffff, -0xf5f5dc, -0xffe4c4, -0x000000, -0xffebcd, -0x0000ff, -0x8a2be2, -0xa52a2a, -0xdeb887, -0x5f9ea0, -0x7fff00, -0xd2691e, -0xff7f50, -0x6495ed, -0xfff8dc, -0xdc143c, -0x00ffff, -0x00008b, -0x008b8b, -0xb8860b, -0xa9a9a9, -0x006400, -0xbdb76b, -0x8b008b, -0x556b2f, -0xff8c00, -0x9932cc, -0x8b0000, -0xe9967a, -0x8fbc8f, -0x483d8b, -0x2f4f4f, -0x00ced1, -0x9400d3, -0xff1493, -0x00bfff, -0x696969, -0x1e90ff, -0xb22222, -0xfffaf0, -0x228b22, -0xff00ff, -0xdcdcdc, -0xf8f8ff, -0xffd700, -0xdaa520, -0x808080, -0x008000, -0xadff2f, -0xf0fff0, -0xff69b4, -0xcd5c5c, -0x4b0082, -0xfffff0, -0xf0e68c, -0xe6e6fa, -0xfff0f5, -0x7cfc00, -0xfffacd, -0xadd8e6, -0xf08080, -0xe0ffff, -0xfafad2, -0xd3d3d3, -0x90ee90, -0xffb6c1, -0xffa07a, -0x20b2aa, -0x87cefa, -0x778899, -0xb0c4de, -0xffffe0, -0x00ff00, -0x32cd32, -0xfaf0e6, -0xff00ff, -0x800000, -0x66cdaa, -0x0000cd, -0xba55d3, -0x9370db, -0x3cb371, -0x7b68ee, -0x00fa9a, -0x48d1cc, -0xc71585, -0x191970, -0xf5fffa, -0xffe4e1, -0xffe4b5, -0xffdead, -0x000080, -0x9fafdf, -0xfdf5e6, -0x808000, -0x6b8e23, -0xffa500, -0xff4500, -0xda70d6, -0xeee8aa, -0xafeeee, -0xd87093, -0xffefd5, -0xffdab9, -0xcd853f, -0xffc0cb, -0xdda0dd, -0xb0e0e6, -0x800080, -0xff0000, -0xbc8f8f, -0x4169e1, -0x8b4513, -0xfa8072, -0xf4a460, -0x2e8b57, -0xfff5ee, -0xa0522d, -0xc0c0c0, -0x87ceeb, -0x6a5acd, -0x708090, -0xfffafa, -0x00ff7f, -0x4682b4, -0xd2b48c, -0x008080, -0xd8bfd8, -0xff6347, -0x40e0d0, -0xee82ee, -0xf5deb3, -0xffffff, -0xf5f5f5, -0xffff00, -0x9acd32}; +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; - char ch=0x00; - - IF (ESBYTE[htmlcolor]<>'#') RETURN; - - FOR (;j<7;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; - } - - return color; + dword j=1, + color=0, + textlen=0; + char ch=0x00; + + if (ESBYTE[htmlcolor]<>'#') return; + + textlen= strlen(htmlcolor); + + if (textlen==7) || (textlen==4) + { + FOR (; j='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] == '#') + if (ESBYTE[color_str] == '#') return StrToCol(color_str); - - ELSE - FOR (ii=0; color_names[ii]!=0; ii++) + else + for (ii=0; color_specs[ii].name!=0; ii++) { - IF(!strcmp(color_str, color_names[ii])) return colors[ii]; + if (!strcmp(color_str, color_specs[ii].name)) return color_specs[ii].rgb; } + return text_colors[0]; }