| Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qxpmhandler.cpp | 
| Switch to Source code | Preprocessed file | 
| Line | Source | Count | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||
| 2 | - | |||||||||||||||||||
| 3 | - | |||||||||||||||||||
| 4 | - | |||||||||||||||||||
| 5 | - | |||||||||||||||||||
| 6 | - | |||||||||||||||||||
| 7 | - | |||||||||||||||||||
| 8 | - | |||||||||||||||||||
| 9 | static quint64 xpmHash(const QString &str) | - | ||||||||||||||||||
| 10 | { | - | ||||||||||||||||||
| 11 | unsigned int hashValue = 0; | - | ||||||||||||||||||
| 12 | for (int i = 0; i < str.size(); ++i) { | - | ||||||||||||||||||
| 13 | hashValue <<= 8; | - | ||||||||||||||||||
| 14 | hashValue += (unsigned int)str.at(i).unicode(); | - | ||||||||||||||||||
| 15 | } | - | ||||||||||||||||||
| 16 | return hashValue; | - | ||||||||||||||||||
| 17 | } | - | ||||||||||||||||||
| 18 | static quint64 xpmHash(char *str) | - | ||||||||||||||||||
| 19 | { | - | ||||||||||||||||||
| 20 | unsigned int hashValue = 0; | - | ||||||||||||||||||
| 21 | while (*str != '\0') { | - | ||||||||||||||||||
| 22 | hashValue <<= 8; | - | ||||||||||||||||||
| 23 | hashValue += (unsigned int)*str; | - | ||||||||||||||||||
| 24 | ++str; | - | ||||||||||||||||||
| 25 | } | - | ||||||||||||||||||
| 26 | return hashValue; | - | ||||||||||||||||||
| 27 | } | - | ||||||||||||||||||
| 28 | - | |||||||||||||||||||
| 29 | - | |||||||||||||||||||
| 30 | - | |||||||||||||||||||
| 31 | - | |||||||||||||||||||
| 32 | - | |||||||||||||||||||
| 33 | - | |||||||||||||||||||
| 34 | static const int xpmRgbTblSize = 657; | - | ||||||||||||||||||
| 35 | - | |||||||||||||||||||
| 36 | static const struct XPMRGBData { | - | ||||||||||||||||||
| 37 | uint value; | - | ||||||||||||||||||
| 38 | const char name[21]; | - | ||||||||||||||||||
| 39 | } xpmRgbTbl[] = { | - | ||||||||||||||||||
| 40 | { (240*65536 + 248*256 + 255), "aliceblue" }, | - | ||||||||||||||||||
| 41 | { (250*65536 + 235*256 + 215), "antiquewhite" }, | - | ||||||||||||||||||
| 42 | { (255*65536 + 239*256 + 219), "antiquewhite1" }, | - | ||||||||||||||||||
| 43 | { (238*65536 + 223*256 + 204), "antiquewhite2" }, | - | ||||||||||||||||||
| 44 | { (205*65536 + 192*256 + 176), "antiquewhite3" }, | - | ||||||||||||||||||
| 45 | { (139*65536 + 131*256 + 120), "antiquewhite4" }, | - | ||||||||||||||||||
| 46 | { (127*65536 + 255*256 + 212), "aquamarine" }, | - | ||||||||||||||||||
| 47 | { (127*65536 + 255*256 + 212), "aquamarine1" }, | - | ||||||||||||||||||
| 48 | { (118*65536 + 238*256 + 198), "aquamarine2" }, | - | ||||||||||||||||||
| 49 | { (102*65536 + 205*256 + 170), "aquamarine3" }, | - | ||||||||||||||||||
| 50 | { (69*65536 + 139*256 + 116), "aquamarine4" }, | - | ||||||||||||||||||
| 51 | { (240*65536 + 255*256 + 255), "azure" }, | - | ||||||||||||||||||
| 52 | { (240*65536 + 255*256 + 255), "azure1" }, | - | ||||||||||||||||||
| 53 | { (224*65536 + 238*256 + 238), "azure2" }, | - | ||||||||||||||||||
| 54 | { (193*65536 + 205*256 + 205), "azure3" }, | - | ||||||||||||||||||
| 55 | { (131*65536 + 139*256 + 139), "azure4" }, | - | ||||||||||||||||||
| 56 | { (245*65536 + 245*256 + 220), "beige" }, | - | ||||||||||||||||||
| 57 | { (255*65536 + 228*256 + 196), "bisque" }, | - | ||||||||||||||||||
| 58 | { (255*65536 + 228*256 + 196), "bisque1" }, | - | ||||||||||||||||||
| 59 | { (238*65536 + 213*256 + 183), "bisque2" }, | - | ||||||||||||||||||
| 60 | { (205*65536 + 183*256 + 158), "bisque3" }, | - | ||||||||||||||||||
| 61 | { (139*65536 + 125*256 + 107), "bisque4" }, | - | ||||||||||||||||||
| 62 | { (0*65536 + 0*256 + 0), "black" }, | - | ||||||||||||||||||
| 63 | { (255*65536 + 235*256 + 205), "blanchedalmond" }, | - | ||||||||||||||||||
| 64 | { (0*65536 + 0*256 + 255), "blue" }, | - | ||||||||||||||||||
| 65 | { (0*65536 + 0*256 + 255), "blue1" }, | - | ||||||||||||||||||
| 66 | { (0*65536 + 0*256 + 238), "blue2" }, | - | ||||||||||||||||||
| 67 | { (0*65536 + 0*256 + 205), "blue3" }, | - | ||||||||||||||||||
| 68 | { (0*65536 + 0*256 + 139), "blue4" }, | - | ||||||||||||||||||
| 69 | { (138*65536 + 43*256 + 226), "blueviolet" }, | - | ||||||||||||||||||
| 70 | { (165*65536 + 42*256 + 42), "brown" }, | - | ||||||||||||||||||
| 71 | { (255*65536 + 64*256 + 64), "brown1" }, | - | ||||||||||||||||||
| 72 | { (238*65536 + 59*256 + 59), "brown2" }, | - | ||||||||||||||||||
| 73 | { (205*65536 + 51*256 + 51), "brown3" }, | - | ||||||||||||||||||
| 74 | { (139*65536 + 35*256 + 35), "brown4" }, | - | ||||||||||||||||||
| 75 | { (222*65536 + 184*256 + 135), "burlywood" }, | - | ||||||||||||||||||
| 76 | { (255*65536 + 211*256 + 155), "burlywood1" }, | - | ||||||||||||||||||
| 77 | { (238*65536 + 197*256 + 145), "burlywood2" }, | - | ||||||||||||||||||
| 78 | { (205*65536 + 170*256 + 125), "burlywood3" }, | - | ||||||||||||||||||
| 79 | { (139*65536 + 115*256 + 85), "burlywood4" }, | - | ||||||||||||||||||
| 80 | { (95*65536 + 158*256 + 160), "cadetblue" }, | - | ||||||||||||||||||
| 81 | { (152*65536 + 245*256 + 255), "cadetblue1" }, | - | ||||||||||||||||||
| 82 | { (142*65536 + 229*256 + 238), "cadetblue2" }, | - | ||||||||||||||||||
| 83 | { (122*65536 + 197*256 + 205), "cadetblue3" }, | - | ||||||||||||||||||
| 84 | { (83*65536 + 134*256 + 139), "cadetblue4" }, | - | ||||||||||||||||||
| 85 | { (127*65536 + 255*256 + 0), "chartreuse" }, | - | ||||||||||||||||||
| 86 | { (127*65536 + 255*256 + 0), "chartreuse1" }, | - | ||||||||||||||||||
| 87 | { (118*65536 + 238*256 + 0), "chartreuse2" }, | - | ||||||||||||||||||
| 88 | { (102*65536 + 205*256 + 0), "chartreuse3" }, | - | ||||||||||||||||||
| 89 | { (69*65536 + 139*256 + 0), "chartreuse4" }, | - | ||||||||||||||||||
| 90 | { (210*65536 + 105*256 + 30), "chocolate" }, | - | ||||||||||||||||||
| 91 | { (255*65536 + 127*256 + 36), "chocolate1" }, | - | ||||||||||||||||||
| 92 | { (238*65536 + 118*256 + 33), "chocolate2" }, | - | ||||||||||||||||||
| 93 | { (205*65536 + 102*256 + 29), "chocolate3" }, | - | ||||||||||||||||||
| 94 | { (139*65536 + 69*256 + 19), "chocolate4" }, | - | ||||||||||||||||||
| 95 | { (255*65536 + 127*256 + 80), "coral" }, | - | ||||||||||||||||||
| 96 | { (255*65536 + 114*256 + 86), "coral1" }, | - | ||||||||||||||||||
| 97 | { (238*65536 + 106*256 + 80), "coral2" }, | - | ||||||||||||||||||
| 98 | { (205*65536 + 91*256 + 69), "coral3" }, | - | ||||||||||||||||||
| 99 | { (139*65536 + 62*256 + 47), "coral4" }, | - | ||||||||||||||||||
| 100 | { (100*65536 + 149*256 + 237), "cornflowerblue" }, | - | ||||||||||||||||||
| 101 | { (255*65536 + 248*256 + 220), "cornsilk" }, | - | ||||||||||||||||||
| 102 | { (255*65536 + 248*256 + 220), "cornsilk1" }, | - | ||||||||||||||||||
| 103 | { (238*65536 + 232*256 + 205), "cornsilk2" }, | - | ||||||||||||||||||
| 104 | { (205*65536 + 200*256 + 177), "cornsilk3" }, | - | ||||||||||||||||||
| 105 | { (139*65536 + 136*256 + 120), "cornsilk4" }, | - | ||||||||||||||||||
| 106 | { (0*65536 + 255*256 + 255), "cyan" }, | - | ||||||||||||||||||
| 107 | { (0*65536 + 255*256 + 255), "cyan1" }, | - | ||||||||||||||||||
| 108 | { (0*65536 + 238*256 + 238), "cyan2" }, | - | ||||||||||||||||||
| 109 | { (0*65536 + 205*256 + 205), "cyan3" }, | - | ||||||||||||||||||
| 110 | { (0*65536 + 139*256 + 139), "cyan4" }, | - | ||||||||||||||||||
| 111 | { (0*65536 + 0*256 + 139), "darkblue" }, | - | ||||||||||||||||||
| 112 | { (0*65536 + 139*256 + 139), "darkcyan" }, | - | ||||||||||||||||||
| 113 | { (184*65536 + 134*256 + 11), "darkgoldenrod" }, | - | ||||||||||||||||||
| 114 | { (255*65536 + 185*256 + 15), "darkgoldenrod1" }, | - | ||||||||||||||||||
| 115 | { (238*65536 + 173*256 + 14), "darkgoldenrod2" }, | - | ||||||||||||||||||
| 116 | { (205*65536 + 149*256 + 12), "darkgoldenrod3" }, | - | ||||||||||||||||||
| 117 | { (139*65536 + 101*256 + 8), "darkgoldenrod4" }, | - | ||||||||||||||||||
| 118 | { (169*65536 + 169*256 + 169), "darkgray" }, | - | ||||||||||||||||||
| 119 | { (0*65536 + 100*256 + 0), "darkgreen" }, | - | ||||||||||||||||||
| 120 | { (169*65536 + 169*256 + 169), "darkgrey" }, | - | ||||||||||||||||||
| 121 | { (189*65536 + 183*256 + 107), "darkkhaki" }, | - | ||||||||||||||||||
| 122 | { (139*65536 + 0*256 + 139), "darkmagenta" }, | - | ||||||||||||||||||
| 123 | { (85*65536 + 107*256 + 47), "darkolivegreen" }, | - | ||||||||||||||||||
| 124 | { (202*65536 + 255*256 + 112), "darkolivegreen1" }, | - | ||||||||||||||||||
| 125 | { (188*65536 + 238*256 + 104), "darkolivegreen2" }, | - | ||||||||||||||||||
| 126 | { (162*65536 + 205*256 + 90), "darkolivegreen3" }, | - | ||||||||||||||||||
| 127 | { (110*65536 + 139*256 + 61), "darkolivegreen4" }, | - | ||||||||||||||||||
| 128 | { (255*65536 + 140*256 + 0), "darkorange" }, | - | ||||||||||||||||||
| 129 | { (255*65536 + 127*256 + 0), "darkorange1" }, | - | ||||||||||||||||||
| 130 | { (238*65536 + 118*256 + 0), "darkorange2" }, | - | ||||||||||||||||||
| 131 | { (205*65536 + 102*256 + 0), "darkorange3" }, | - | ||||||||||||||||||
| 132 | { (139*65536 + 69*256 + 0), "darkorange4" }, | - | ||||||||||||||||||
| 133 | { (153*65536 + 50*256 + 204), "darkorchid" }, | - | ||||||||||||||||||
| 134 | { (191*65536 + 62*256 + 255), "darkorchid1" }, | - | ||||||||||||||||||
| 135 | { (178*65536 + 58*256 + 238), "darkorchid2" }, | - | ||||||||||||||||||
| 136 | { (154*65536 + 50*256 + 205), "darkorchid3" }, | - | ||||||||||||||||||
| 137 | { (104*65536 + 34*256 + 139), "darkorchid4" }, | - | ||||||||||||||||||
| 138 | { (139*65536 + 0*256 + 0), "darkred" }, | - | ||||||||||||||||||
| 139 | { (233*65536 + 150*256 + 122), "darksalmon" }, | - | ||||||||||||||||||
| 140 | { (143*65536 + 188*256 + 143), "darkseagreen" }, | - | ||||||||||||||||||
| 141 | { (193*65536 + 255*256 + 193), "darkseagreen1" }, | - | ||||||||||||||||||
| 142 | { (180*65536 + 238*256 + 180), "darkseagreen2" }, | - | ||||||||||||||||||
| 143 | { (155*65536 + 205*256 + 155), "darkseagreen3" }, | - | ||||||||||||||||||
| 144 | { (105*65536 + 139*256 + 105), "darkseagreen4" }, | - | ||||||||||||||||||
| 145 | { (72*65536 + 61*256 + 139), "darkslateblue" }, | - | ||||||||||||||||||
| 146 | { (47*65536 + 79*256 + 79), "darkslategray" }, | - | ||||||||||||||||||
| 147 | { (151*65536 + 255*256 + 255), "darkslategray1" }, | - | ||||||||||||||||||
| 148 | { (141*65536 + 238*256 + 238), "darkslategray2" }, | - | ||||||||||||||||||
| 149 | { (121*65536 + 205*256 + 205), "darkslategray3" }, | - | ||||||||||||||||||
| 150 | { (82*65536 + 139*256 + 139), "darkslategray4" }, | - | ||||||||||||||||||
| 151 | { (47*65536 + 79*256 + 79), "darkslategrey" }, | - | ||||||||||||||||||
| 152 | { (0*65536 + 206*256 + 209), "darkturquoise" }, | - | ||||||||||||||||||
| 153 | { (148*65536 + 0*256 + 211), "darkviolet" }, | - | ||||||||||||||||||
| 154 | { (255*65536 + 20*256 + 147), "deeppink" }, | - | ||||||||||||||||||
| 155 | { (255*65536 + 20*256 + 147), "deeppink1" }, | - | ||||||||||||||||||
| 156 | { (238*65536 + 18*256 + 137), "deeppink2" }, | - | ||||||||||||||||||
| 157 | { (205*65536 + 16*256 + 118), "deeppink3" }, | - | ||||||||||||||||||
| 158 | { (139*65536 + 10*256 + 80), "deeppink4" }, | - | ||||||||||||||||||
| 159 | { (0*65536 + 191*256 + 255), "deepskyblue" }, | - | ||||||||||||||||||
| 160 | { (0*65536 + 191*256 + 255), "deepskyblue1" }, | - | ||||||||||||||||||
| 161 | { (0*65536 + 178*256 + 238), "deepskyblue2" }, | - | ||||||||||||||||||
| 162 | { (0*65536 + 154*256 + 205), "deepskyblue3" }, | - | ||||||||||||||||||
| 163 | { (0*65536 + 104*256 + 139), "deepskyblue4" }, | - | ||||||||||||||||||
| 164 | { (105*65536 + 105*256 + 105), "dimgray" }, | - | ||||||||||||||||||
| 165 | { (105*65536 + 105*256 + 105), "dimgrey" }, | - | ||||||||||||||||||
| 166 | { (30*65536 + 144*256 + 255), "dodgerblue" }, | - | ||||||||||||||||||
| 167 | { (30*65536 + 144*256 + 255), "dodgerblue1" }, | - | ||||||||||||||||||
| 168 | { (28*65536 + 134*256 + 238), "dodgerblue2" }, | - | ||||||||||||||||||
| 169 | { (24*65536 + 116*256 + 205), "dodgerblue3" }, | - | ||||||||||||||||||
| 170 | { (16*65536 + 78*256 + 139), "dodgerblue4" }, | - | ||||||||||||||||||
| 171 | { (178*65536 + 34*256 + 34), "firebrick" }, | - | ||||||||||||||||||
| 172 | { (255*65536 + 48*256 + 48), "firebrick1" }, | - | ||||||||||||||||||
| 173 | { (238*65536 + 44*256 + 44), "firebrick2" }, | - | ||||||||||||||||||
| 174 | { (205*65536 + 38*256 + 38), "firebrick3" }, | - | ||||||||||||||||||
| 175 | { (139*65536 + 26*256 + 26), "firebrick4" }, | - | ||||||||||||||||||
| 176 | { (255*65536 + 250*256 + 240), "floralwhite" }, | - | ||||||||||||||||||
| 177 | { (34*65536 + 139*256 + 34), "forestgreen" }, | - | ||||||||||||||||||
| 178 | { (220*65536 + 220*256 + 220), "gainsboro" }, | - | ||||||||||||||||||
| 179 | { (248*65536 + 248*256 + 255), "ghostwhite" }, | - | ||||||||||||||||||
| 180 | { (255*65536 + 215*256 + 0), "gold" }, | - | ||||||||||||||||||
| 181 | { (255*65536 + 215*256 + 0), "gold1" }, | - | ||||||||||||||||||
| 182 | { (238*65536 + 201*256 + 0), "gold2" }, | - | ||||||||||||||||||
| 183 | { (205*65536 + 173*256 + 0), "gold3" }, | - | ||||||||||||||||||
| 184 | { (139*65536 + 117*256 + 0), "gold4" }, | - | ||||||||||||||||||
| 185 | { (218*65536 + 165*256 + 32), "goldenrod" }, | - | ||||||||||||||||||
| 186 | { (255*65536 + 193*256 + 37), "goldenrod1" }, | - | ||||||||||||||||||
| 187 | { (238*65536 + 180*256 + 34), "goldenrod2" }, | - | ||||||||||||||||||
| 188 | { (205*65536 + 155*256 + 29), "goldenrod3" }, | - | ||||||||||||||||||
| 189 | { (139*65536 + 105*256 + 20), "goldenrod4" }, | - | ||||||||||||||||||
| 190 | { (190*65536 + 190*256 + 190), "gray" }, | - | ||||||||||||||||||
| 191 | { (0*65536 + 0*256 + 0), "gray0" }, | - | ||||||||||||||||||
| 192 | { (3*65536 + 3*256 + 3), "gray1" }, | - | ||||||||||||||||||
| 193 | { (26*65536 + 26*256 + 26), "gray10" }, | - | ||||||||||||||||||
| 194 | { (255*65536 + 255*256 + 255), "gray100" }, | - | ||||||||||||||||||
| 195 | { (28*65536 + 28*256 + 28), "gray11" }, | - | ||||||||||||||||||
| 196 | { (31*65536 + 31*256 + 31), "gray12" }, | - | ||||||||||||||||||
| 197 | { (33*65536 + 33*256 + 33), "gray13" }, | - | ||||||||||||||||||
| 198 | { (36*65536 + 36*256 + 36), "gray14" }, | - | ||||||||||||||||||
| 199 | { (38*65536 + 38*256 + 38), "gray15" }, | - | ||||||||||||||||||
| 200 | { (41*65536 + 41*256 + 41), "gray16" }, | - | ||||||||||||||||||
| 201 | { (43*65536 + 43*256 + 43), "gray17" }, | - | ||||||||||||||||||
| 202 | { (46*65536 + 46*256 + 46), "gray18" }, | - | ||||||||||||||||||
| 203 | { (48*65536 + 48*256 + 48), "gray19" }, | - | ||||||||||||||||||
| 204 | { (5*65536 + 5*256 + 5), "gray2" }, | - | ||||||||||||||||||
| 205 | { (51*65536 + 51*256 + 51), "gray20" }, | - | ||||||||||||||||||
| 206 | { (54*65536 + 54*256 + 54), "gray21" }, | - | ||||||||||||||||||
| 207 | { (56*65536 + 56*256 + 56), "gray22" }, | - | ||||||||||||||||||
| 208 | { (59*65536 + 59*256 + 59), "gray23" }, | - | ||||||||||||||||||
| 209 | { (61*65536 + 61*256 + 61), "gray24" }, | - | ||||||||||||||||||
| 210 | { (64*65536 + 64*256 + 64), "gray25" }, | - | ||||||||||||||||||
| 211 | { (66*65536 + 66*256 + 66), "gray26" }, | - | ||||||||||||||||||
| 212 | { (69*65536 + 69*256 + 69), "gray27" }, | - | ||||||||||||||||||
| 213 | { (71*65536 + 71*256 + 71), "gray28" }, | - | ||||||||||||||||||
| 214 | { (74*65536 + 74*256 + 74), "gray29" }, | - | ||||||||||||||||||
| 215 | { (8*65536 + 8*256 + 8), "gray3" }, | - | ||||||||||||||||||
| 216 | { (77*65536 + 77*256 + 77), "gray30" }, | - | ||||||||||||||||||
| 217 | { (79*65536 + 79*256 + 79), "gray31" }, | - | ||||||||||||||||||
| 218 | { (82*65536 + 82*256 + 82), "gray32" }, | - | ||||||||||||||||||
| 219 | { (84*65536 + 84*256 + 84), "gray33" }, | - | ||||||||||||||||||
| 220 | { (87*65536 + 87*256 + 87), "gray34" }, | - | ||||||||||||||||||
| 221 | { (89*65536 + 89*256 + 89), "gray35" }, | - | ||||||||||||||||||
| 222 | { (92*65536 + 92*256 + 92), "gray36" }, | - | ||||||||||||||||||
| 223 | { (94*65536 + 94*256 + 94), "gray37" }, | - | ||||||||||||||||||
| 224 | { (97*65536 + 97*256 + 97), "gray38" }, | - | ||||||||||||||||||
| 225 | { (99*65536 + 99*256 + 99), "gray39" }, | - | ||||||||||||||||||
| 226 | { (10*65536 + 10*256 + 10), "gray4" }, | - | ||||||||||||||||||
| 227 | { (102*65536 + 102*256 + 102), "gray40" }, | - | ||||||||||||||||||
| 228 | { (105*65536 + 105*256 + 105), "gray41" }, | - | ||||||||||||||||||
| 229 | { (107*65536 + 107*256 + 107), "gray42" }, | - | ||||||||||||||||||
| 230 | { (110*65536 + 110*256 + 110), "gray43" }, | - | ||||||||||||||||||
| 231 | { (112*65536 + 112*256 + 112), "gray44" }, | - | ||||||||||||||||||
| 232 | { (115*65536 + 115*256 + 115), "gray45" }, | - | ||||||||||||||||||
| 233 | { (117*65536 + 117*256 + 117), "gray46" }, | - | ||||||||||||||||||
| 234 | { (120*65536 + 120*256 + 120), "gray47" }, | - | ||||||||||||||||||
| 235 | { (122*65536 + 122*256 + 122), "gray48" }, | - | ||||||||||||||||||
| 236 | { (125*65536 + 125*256 + 125), "gray49" }, | - | ||||||||||||||||||
| 237 | { (13*65536 + 13*256 + 13), "gray5" }, | - | ||||||||||||||||||
| 238 | { (127*65536 + 127*256 + 127), "gray50" }, | - | ||||||||||||||||||
| 239 | { (130*65536 + 130*256 + 130), "gray51" }, | - | ||||||||||||||||||
| 240 | { (133*65536 + 133*256 + 133), "gray52" }, | - | ||||||||||||||||||
| 241 | { (135*65536 + 135*256 + 135), "gray53" }, | - | ||||||||||||||||||
| 242 | { (138*65536 + 138*256 + 138), "gray54" }, | - | ||||||||||||||||||
| 243 | { (140*65536 + 140*256 + 140), "gray55" }, | - | ||||||||||||||||||
| 244 | { (143*65536 + 143*256 + 143), "gray56" }, | - | ||||||||||||||||||
| 245 | { (145*65536 + 145*256 + 145), "gray57" }, | - | ||||||||||||||||||
| 246 | { (148*65536 + 148*256 + 148), "gray58" }, | - | ||||||||||||||||||
| 247 | { (150*65536 + 150*256 + 150), "gray59" }, | - | ||||||||||||||||||
| 248 | { (15*65536 + 15*256 + 15), "gray6" }, | - | ||||||||||||||||||
| 249 | { (153*65536 + 153*256 + 153), "gray60" }, | - | ||||||||||||||||||
| 250 | { (156*65536 + 156*256 + 156), "gray61" }, | - | ||||||||||||||||||
| 251 | { (158*65536 + 158*256 + 158), "gray62" }, | - | ||||||||||||||||||
| 252 | { (161*65536 + 161*256 + 161), "gray63" }, | - | ||||||||||||||||||
| 253 | { (163*65536 + 163*256 + 163), "gray64" }, | - | ||||||||||||||||||
| 254 | { (166*65536 + 166*256 + 166), "gray65" }, | - | ||||||||||||||||||
| 255 | { (168*65536 + 168*256 + 168), "gray66" }, | - | ||||||||||||||||||
| 256 | { (171*65536 + 171*256 + 171), "gray67" }, | - | ||||||||||||||||||
| 257 | { (173*65536 + 173*256 + 173), "gray68" }, | - | ||||||||||||||||||
| 258 | { (176*65536 + 176*256 + 176), "gray69" }, | - | ||||||||||||||||||
| 259 | { (18*65536 + 18*256 + 18), "gray7" }, | - | ||||||||||||||||||
| 260 | { (179*65536 + 179*256 + 179), "gray70" }, | - | ||||||||||||||||||
| 261 | { (181*65536 + 181*256 + 181), "gray71" }, | - | ||||||||||||||||||
| 262 | { (184*65536 + 184*256 + 184), "gray72" }, | - | ||||||||||||||||||
| 263 | { (186*65536 + 186*256 + 186), "gray73" }, | - | ||||||||||||||||||
| 264 | { (189*65536 + 189*256 + 189), "gray74" }, | - | ||||||||||||||||||
| 265 | { (191*65536 + 191*256 + 191), "gray75" }, | - | ||||||||||||||||||
| 266 | { (194*65536 + 194*256 + 194), "gray76" }, | - | ||||||||||||||||||
| 267 | { (196*65536 + 196*256 + 196), "gray77" }, | - | ||||||||||||||||||
| 268 | { (199*65536 + 199*256 + 199), "gray78" }, | - | ||||||||||||||||||
| 269 | { (201*65536 + 201*256 + 201), "gray79" }, | - | ||||||||||||||||||
| 270 | { (20*65536 + 20*256 + 20), "gray8" }, | - | ||||||||||||||||||
| 271 | { (204*65536 + 204*256 + 204), "gray80" }, | - | ||||||||||||||||||
| 272 | { (207*65536 + 207*256 + 207), "gray81" }, | - | ||||||||||||||||||
| 273 | { (209*65536 + 209*256 + 209), "gray82" }, | - | ||||||||||||||||||
| 274 | { (212*65536 + 212*256 + 212), "gray83" }, | - | ||||||||||||||||||
| 275 | { (214*65536 + 214*256 + 214), "gray84" }, | - | ||||||||||||||||||
| 276 | { (217*65536 + 217*256 + 217), "gray85" }, | - | ||||||||||||||||||
| 277 | { (219*65536 + 219*256 + 219), "gray86" }, | - | ||||||||||||||||||
| 278 | { (222*65536 + 222*256 + 222), "gray87" }, | - | ||||||||||||||||||
| 279 | { (224*65536 + 224*256 + 224), "gray88" }, | - | ||||||||||||||||||
| 280 | { (227*65536 + 227*256 + 227), "gray89" }, | - | ||||||||||||||||||
| 281 | { (23*65536 + 23*256 + 23), "gray9" }, | - | ||||||||||||||||||
| 282 | { (229*65536 + 229*256 + 229), "gray90" }, | - | ||||||||||||||||||
| 283 | { (232*65536 + 232*256 + 232), "gray91" }, | - | ||||||||||||||||||
| 284 | { (235*65536 + 235*256 + 235), "gray92" }, | - | ||||||||||||||||||
| 285 | { (237*65536 + 237*256 + 237), "gray93" }, | - | ||||||||||||||||||
| 286 | { (240*65536 + 240*256 + 240), "gray94" }, | - | ||||||||||||||||||
| 287 | { (242*65536 + 242*256 + 242), "gray95" }, | - | ||||||||||||||||||
| 288 | { (245*65536 + 245*256 + 245), "gray96" }, | - | ||||||||||||||||||
| 289 | { (247*65536 + 247*256 + 247), "gray97" }, | - | ||||||||||||||||||
| 290 | { (250*65536 + 250*256 + 250), "gray98" }, | - | ||||||||||||||||||
| 291 | { (252*65536 + 252*256 + 252), "gray99" }, | - | ||||||||||||||||||
| 292 | { (0*65536 + 255*256 + 0), "green" }, | - | ||||||||||||||||||
| 293 | { (0*65536 + 255*256 + 0), "green1" }, | - | ||||||||||||||||||
| 294 | { (0*65536 + 238*256 + 0), "green2" }, | - | ||||||||||||||||||
| 295 | { (0*65536 + 205*256 + 0), "green3" }, | - | ||||||||||||||||||
| 296 | { (0*65536 + 139*256 + 0), "green4" }, | - | ||||||||||||||||||
| 297 | { (173*65536 + 255*256 + 47), "greenyellow" }, | - | ||||||||||||||||||
| 298 | { (190*65536 + 190*256 + 190), "grey" }, | - | ||||||||||||||||||
| 299 | { (0*65536 + 0*256 + 0), "grey0" }, | - | ||||||||||||||||||
| 300 | { (3*65536 + 3*256 + 3), "grey1" }, | - | ||||||||||||||||||
| 301 | { (26*65536 + 26*256 + 26), "grey10" }, | - | ||||||||||||||||||
| 302 | { (255*65536 + 255*256 + 255), "grey100" }, | - | ||||||||||||||||||
| 303 | { (28*65536 + 28*256 + 28), "grey11" }, | - | ||||||||||||||||||
| 304 | { (31*65536 + 31*256 + 31), "grey12" }, | - | ||||||||||||||||||
| 305 | { (33*65536 + 33*256 + 33), "grey13" }, | - | ||||||||||||||||||
| 306 | { (36*65536 + 36*256 + 36), "grey14" }, | - | ||||||||||||||||||
| 307 | { (38*65536 + 38*256 + 38), "grey15" }, | - | ||||||||||||||||||
| 308 | { (41*65536 + 41*256 + 41), "grey16" }, | - | ||||||||||||||||||
| 309 | { (43*65536 + 43*256 + 43), "grey17" }, | - | ||||||||||||||||||
| 310 | { (46*65536 + 46*256 + 46), "grey18" }, | - | ||||||||||||||||||
| 311 | { (48*65536 + 48*256 + 48), "grey19" }, | - | ||||||||||||||||||
| 312 | { (5*65536 + 5*256 + 5), "grey2" }, | - | ||||||||||||||||||
| 313 | { (51*65536 + 51*256 + 51), "grey20" }, | - | ||||||||||||||||||
| 314 | { (54*65536 + 54*256 + 54), "grey21" }, | - | ||||||||||||||||||
| 315 | { (56*65536 + 56*256 + 56), "grey22" }, | - | ||||||||||||||||||
| 316 | { (59*65536 + 59*256 + 59), "grey23" }, | - | ||||||||||||||||||
| 317 | { (61*65536 + 61*256 + 61), "grey24" }, | - | ||||||||||||||||||
| 318 | { (64*65536 + 64*256 + 64), "grey25" }, | - | ||||||||||||||||||
| 319 | { (66*65536 + 66*256 + 66), "grey26" }, | - | ||||||||||||||||||
| 320 | { (69*65536 + 69*256 + 69), "grey27" }, | - | ||||||||||||||||||
| 321 | { (71*65536 + 71*256 + 71), "grey28" }, | - | ||||||||||||||||||
| 322 | { (74*65536 + 74*256 + 74), "grey29" }, | - | ||||||||||||||||||
| 323 | { (8*65536 + 8*256 + 8), "grey3" }, | - | ||||||||||||||||||
| 324 | { (77*65536 + 77*256 + 77), "grey30" }, | - | ||||||||||||||||||
| 325 | { (79*65536 + 79*256 + 79), "grey31" }, | - | ||||||||||||||||||
| 326 | { (82*65536 + 82*256 + 82), "grey32" }, | - | ||||||||||||||||||
| 327 | { (84*65536 + 84*256 + 84), "grey33" }, | - | ||||||||||||||||||
| 328 | { (87*65536 + 87*256 + 87), "grey34" }, | - | ||||||||||||||||||
| 329 | { (89*65536 + 89*256 + 89), "grey35" }, | - | ||||||||||||||||||
| 330 | { (92*65536 + 92*256 + 92), "grey36" }, | - | ||||||||||||||||||
| 331 | { (94*65536 + 94*256 + 94), "grey37" }, | - | ||||||||||||||||||
| 332 | { (97*65536 + 97*256 + 97), "grey38" }, | - | ||||||||||||||||||
| 333 | { (99*65536 + 99*256 + 99), "grey39" }, | - | ||||||||||||||||||
| 334 | { (10*65536 + 10*256 + 10), "grey4" }, | - | ||||||||||||||||||
| 335 | { (102*65536 + 102*256 + 102), "grey40" }, | - | ||||||||||||||||||
| 336 | { (105*65536 + 105*256 + 105), "grey41" }, | - | ||||||||||||||||||
| 337 | { (107*65536 + 107*256 + 107), "grey42" }, | - | ||||||||||||||||||
| 338 | { (110*65536 + 110*256 + 110), "grey43" }, | - | ||||||||||||||||||
| 339 | { (112*65536 + 112*256 + 112), "grey44" }, | - | ||||||||||||||||||
| 340 | { (115*65536 + 115*256 + 115), "grey45" }, | - | ||||||||||||||||||
| 341 | { (117*65536 + 117*256 + 117), "grey46" }, | - | ||||||||||||||||||
| 342 | { (120*65536 + 120*256 + 120), "grey47" }, | - | ||||||||||||||||||
| 343 | { (122*65536 + 122*256 + 122), "grey48" }, | - | ||||||||||||||||||
| 344 | { (125*65536 + 125*256 + 125), "grey49" }, | - | ||||||||||||||||||
| 345 | { (13*65536 + 13*256 + 13), "grey5" }, | - | ||||||||||||||||||
| 346 | { (127*65536 + 127*256 + 127), "grey50" }, | - | ||||||||||||||||||
| 347 | { (130*65536 + 130*256 + 130), "grey51" }, | - | ||||||||||||||||||
| 348 | { (133*65536 + 133*256 + 133), "grey52" }, | - | ||||||||||||||||||
| 349 | { (135*65536 + 135*256 + 135), "grey53" }, | - | ||||||||||||||||||
| 350 | { (138*65536 + 138*256 + 138), "grey54" }, | - | ||||||||||||||||||
| 351 | { (140*65536 + 140*256 + 140), "grey55" }, | - | ||||||||||||||||||
| 352 | { (143*65536 + 143*256 + 143), "grey56" }, | - | ||||||||||||||||||
| 353 | { (145*65536 + 145*256 + 145), "grey57" }, | - | ||||||||||||||||||
| 354 | { (148*65536 + 148*256 + 148), "grey58" }, | - | ||||||||||||||||||
| 355 | { (150*65536 + 150*256 + 150), "grey59" }, | - | ||||||||||||||||||
| 356 | { (15*65536 + 15*256 + 15), "grey6" }, | - | ||||||||||||||||||
| 357 | { (153*65536 + 153*256 + 153), "grey60" }, | - | ||||||||||||||||||
| 358 | { (156*65536 + 156*256 + 156), "grey61" }, | - | ||||||||||||||||||
| 359 | { (158*65536 + 158*256 + 158), "grey62" }, | - | ||||||||||||||||||
| 360 | { (161*65536 + 161*256 + 161), "grey63" }, | - | ||||||||||||||||||
| 361 | { (163*65536 + 163*256 + 163), "grey64" }, | - | ||||||||||||||||||
| 362 | { (166*65536 + 166*256 + 166), "grey65" }, | - | ||||||||||||||||||
| 363 | { (168*65536 + 168*256 + 168), "grey66" }, | - | ||||||||||||||||||
| 364 | { (171*65536 + 171*256 + 171), "grey67" }, | - | ||||||||||||||||||
| 365 | { (173*65536 + 173*256 + 173), "grey68" }, | - | ||||||||||||||||||
| 366 | { (176*65536 + 176*256 + 176), "grey69" }, | - | ||||||||||||||||||
| 367 | { (18*65536 + 18*256 + 18), "grey7" }, | - | ||||||||||||||||||
| 368 | { (179*65536 + 179*256 + 179), "grey70" }, | - | ||||||||||||||||||
| 369 | { (181*65536 + 181*256 + 181), "grey71" }, | - | ||||||||||||||||||
| 370 | { (184*65536 + 184*256 + 184), "grey72" }, | - | ||||||||||||||||||
| 371 | { (186*65536 + 186*256 + 186), "grey73" }, | - | ||||||||||||||||||
| 372 | { (189*65536 + 189*256 + 189), "grey74" }, | - | ||||||||||||||||||
| 373 | { (191*65536 + 191*256 + 191), "grey75" }, | - | ||||||||||||||||||
| 374 | { (194*65536 + 194*256 + 194), "grey76" }, | - | ||||||||||||||||||
| 375 | { (196*65536 + 196*256 + 196), "grey77" }, | - | ||||||||||||||||||
| 376 | { (199*65536 + 199*256 + 199), "grey78" }, | - | ||||||||||||||||||
| 377 | { (201*65536 + 201*256 + 201), "grey79" }, | - | ||||||||||||||||||
| 378 | { (20*65536 + 20*256 + 20), "grey8" }, | - | ||||||||||||||||||
| 379 | { (204*65536 + 204*256 + 204), "grey80" }, | - | ||||||||||||||||||
| 380 | { (207*65536 + 207*256 + 207), "grey81" }, | - | ||||||||||||||||||
| 381 | { (209*65536 + 209*256 + 209), "grey82" }, | - | ||||||||||||||||||
| 382 | { (212*65536 + 212*256 + 212), "grey83" }, | - | ||||||||||||||||||
| 383 | { (214*65536 + 214*256 + 214), "grey84" }, | - | ||||||||||||||||||
| 384 | { (217*65536 + 217*256 + 217), "grey85" }, | - | ||||||||||||||||||
| 385 | { (219*65536 + 219*256 + 219), "grey86" }, | - | ||||||||||||||||||
| 386 | { (222*65536 + 222*256 + 222), "grey87" }, | - | ||||||||||||||||||
| 387 | { (224*65536 + 224*256 + 224), "grey88" }, | - | ||||||||||||||||||
| 388 | { (227*65536 + 227*256 + 227), "grey89" }, | - | ||||||||||||||||||
| 389 | { (23*65536 + 23*256 + 23), "grey9" }, | - | ||||||||||||||||||
| 390 | { (229*65536 + 229*256 + 229), "grey90" }, | - | ||||||||||||||||||
| 391 | { (232*65536 + 232*256 + 232), "grey91" }, | - | ||||||||||||||||||
| 392 | { (235*65536 + 235*256 + 235), "grey92" }, | - | ||||||||||||||||||
| 393 | { (237*65536 + 237*256 + 237), "grey93" }, | - | ||||||||||||||||||
| 394 | { (240*65536 + 240*256 + 240), "grey94" }, | - | ||||||||||||||||||
| 395 | { (242*65536 + 242*256 + 242), "grey95" }, | - | ||||||||||||||||||
| 396 | { (245*65536 + 245*256 + 245), "grey96" }, | - | ||||||||||||||||||
| 397 | { (247*65536 + 247*256 + 247), "grey97" }, | - | ||||||||||||||||||
| 398 | { (250*65536 + 250*256 + 250), "grey98" }, | - | ||||||||||||||||||
| 399 | { (252*65536 + 252*256 + 252), "grey99" }, | - | ||||||||||||||||||
| 400 | { (240*65536 + 255*256 + 240), "honeydew" }, | - | ||||||||||||||||||
| 401 | { (240*65536 + 255*256 + 240), "honeydew1" }, | - | ||||||||||||||||||
| 402 | { (224*65536 + 238*256 + 224), "honeydew2" }, | - | ||||||||||||||||||
| 403 | { (193*65536 + 205*256 + 193), "honeydew3" }, | - | ||||||||||||||||||
| 404 | { (131*65536 + 139*256 + 131), "honeydew4" }, | - | ||||||||||||||||||
| 405 | { (255*65536 + 105*256 + 180), "hotpink" }, | - | ||||||||||||||||||
| 406 | { (255*65536 + 110*256 + 180), "hotpink1" }, | - | ||||||||||||||||||
| 407 | { (238*65536 + 106*256 + 167), "hotpink2" }, | - | ||||||||||||||||||
| 408 | { (205*65536 + 96*256 + 144), "hotpink3" }, | - | ||||||||||||||||||
| 409 | { (139*65536 + 58*256 + 98), "hotpink4" }, | - | ||||||||||||||||||
| 410 | { (205*65536 + 92*256 + 92), "indianred" }, | - | ||||||||||||||||||
| 411 | { (255*65536 + 106*256 + 106), "indianred1" }, | - | ||||||||||||||||||
| 412 | { (238*65536 + 99*256 + 99), "indianred2" }, | - | ||||||||||||||||||
| 413 | { (205*65536 + 85*256 + 85), "indianred3" }, | - | ||||||||||||||||||
| 414 | { (139*65536 + 58*256 + 58), "indianred4" }, | - | ||||||||||||||||||
| 415 | { (255*65536 + 255*256 + 240), "ivory" }, | - | ||||||||||||||||||
| 416 | { (255*65536 + 255*256 + 240), "ivory1" }, | - | ||||||||||||||||||
| 417 | { (238*65536 + 238*256 + 224), "ivory2" }, | - | ||||||||||||||||||
| 418 | { (205*65536 + 205*256 + 193), "ivory3" }, | - | ||||||||||||||||||
| 419 | { (139*65536 + 139*256 + 131), "ivory4" }, | - | ||||||||||||||||||
| 420 | { (240*65536 + 230*256 + 140), "khaki" }, | - | ||||||||||||||||||
| 421 | { (255*65536 + 246*256 + 143), "khaki1" }, | - | ||||||||||||||||||
| 422 | { (238*65536 + 230*256 + 133), "khaki2" }, | - | ||||||||||||||||||
| 423 | { (205*65536 + 198*256 + 115), "khaki3" }, | - | ||||||||||||||||||
| 424 | { (139*65536 + 134*256 + 78), "khaki4" }, | - | ||||||||||||||||||
| 425 | { (230*65536 + 230*256 + 250), "lavender" }, | - | ||||||||||||||||||
| 426 | { (255*65536 + 240*256 + 245), "lavenderblush" }, | - | ||||||||||||||||||
| 427 | { (255*65536 + 240*256 + 245), "lavenderblush1" }, | - | ||||||||||||||||||
| 428 | { (238*65536 + 224*256 + 229), "lavenderblush2" }, | - | ||||||||||||||||||
| 429 | { (205*65536 + 193*256 + 197), "lavenderblush3" }, | - | ||||||||||||||||||
| 430 | { (139*65536 + 131*256 + 134), "lavenderblush4" }, | - | ||||||||||||||||||
| 431 | { (124*65536 + 252*256 + 0), "lawngreen" }, | - | ||||||||||||||||||
| 432 | { (255*65536 + 250*256 + 205), "lemonchiffon" }, | - | ||||||||||||||||||
| 433 | { (255*65536 + 250*256 + 205), "lemonchiffon1" }, | - | ||||||||||||||||||
| 434 | { (238*65536 + 233*256 + 191), "lemonchiffon2" }, | - | ||||||||||||||||||
| 435 | { (205*65536 + 201*256 + 165), "lemonchiffon3" }, | - | ||||||||||||||||||
| 436 | { (139*65536 + 137*256 + 112), "lemonchiffon4" }, | - | ||||||||||||||||||
| 437 | { (173*65536 + 216*256 + 230), "lightblue" }, | - | ||||||||||||||||||
| 438 | { (191*65536 + 239*256 + 255), "lightblue1" }, | - | ||||||||||||||||||
| 439 | { (178*65536 + 223*256 + 238), "lightblue2" }, | - | ||||||||||||||||||
| 440 | { (154*65536 + 192*256 + 205), "lightblue3" }, | - | ||||||||||||||||||
| 441 | { (104*65536 + 131*256 + 139), "lightblue4" }, | - | ||||||||||||||||||
| 442 | { (240*65536 + 128*256 + 128), "lightcoral" }, | - | ||||||||||||||||||
| 443 | { (224*65536 + 255*256 + 255), "lightcyan" }, | - | ||||||||||||||||||
| 444 | { (224*65536 + 255*256 + 255), "lightcyan1" }, | - | ||||||||||||||||||
| 445 | { (209*65536 + 238*256 + 238), "lightcyan2" }, | - | ||||||||||||||||||
| 446 | { (180*65536 + 205*256 + 205), "lightcyan3" }, | - | ||||||||||||||||||
| 447 | { (122*65536 + 139*256 + 139), "lightcyan4" }, | - | ||||||||||||||||||
| 448 | { (238*65536 + 221*256 + 130), "lightgoldenrod" }, | - | ||||||||||||||||||
| 449 | { (255*65536 + 236*256 + 139), "lightgoldenrod1" }, | - | ||||||||||||||||||
| 450 | { (238*65536 + 220*256 + 130), "lightgoldenrod2" }, | - | ||||||||||||||||||
| 451 | { (205*65536 + 190*256 + 112), "lightgoldenrod3" }, | - | ||||||||||||||||||
| 452 | { (139*65536 + 129*256 + 76), "lightgoldenrod4" }, | - | ||||||||||||||||||
| 453 | { (250*65536 + 250*256 + 210), "lightgoldenrodyellow" }, | - | ||||||||||||||||||
| 454 | { (211*65536 + 211*256 + 211), "lightgray" }, | - | ||||||||||||||||||
| 455 | { (144*65536 + 238*256 + 144), "lightgreen" }, | - | ||||||||||||||||||
| 456 | { (211*65536 + 211*256 + 211), "lightgrey" }, | - | ||||||||||||||||||
| 457 | { (255*65536 + 182*256 + 193), "lightpink" }, | - | ||||||||||||||||||
| 458 | { (255*65536 + 174*256 + 185), "lightpink1" }, | - | ||||||||||||||||||
| 459 | { (238*65536 + 162*256 + 173), "lightpink2" }, | - | ||||||||||||||||||
| 460 | { (205*65536 + 140*256 + 149), "lightpink3" }, | - | ||||||||||||||||||
| 461 | { (139*65536 + 95*256 + 101), "lightpink4" }, | - | ||||||||||||||||||
| 462 | { (255*65536 + 160*256 + 122), "lightsalmon" }, | - | ||||||||||||||||||
| 463 | { (255*65536 + 160*256 + 122), "lightsalmon1" }, | - | ||||||||||||||||||
| 464 | { (238*65536 + 149*256 + 114), "lightsalmon2" }, | - | ||||||||||||||||||
| 465 | { (205*65536 + 129*256 + 98), "lightsalmon3" }, | - | ||||||||||||||||||
| 466 | { (139*65536 + 87*256 + 66), "lightsalmon4" }, | - | ||||||||||||||||||
| 467 | { (32*65536 + 178*256 + 170), "lightseagreen" }, | - | ||||||||||||||||||
| 468 | { (135*65536 + 206*256 + 250), "lightskyblue" }, | - | ||||||||||||||||||
| 469 | { (176*65536 + 226*256 + 255), "lightskyblue1" }, | - | ||||||||||||||||||
| 470 | { (164*65536 + 211*256 + 238), "lightskyblue2" }, | - | ||||||||||||||||||
| 471 | { (141*65536 + 182*256 + 205), "lightskyblue3" }, | - | ||||||||||||||||||
| 472 | { (96*65536 + 123*256 + 139), "lightskyblue4" }, | - | ||||||||||||||||||
| 473 | { (132*65536 + 112*256 + 255), "lightslateblue" }, | - | ||||||||||||||||||
| 474 | { (119*65536 + 136*256 + 153), "lightslategray" }, | - | ||||||||||||||||||
| 475 | { (119*65536 + 136*256 + 153), "lightslategrey" }, | - | ||||||||||||||||||
| 476 | { (176*65536 + 196*256 + 222), "lightsteelblue" }, | - | ||||||||||||||||||
| 477 | { (202*65536 + 225*256 + 255), "lightsteelblue1" }, | - | ||||||||||||||||||
| 478 | { (188*65536 + 210*256 + 238), "lightsteelblue2" }, | - | ||||||||||||||||||
| 479 | { (162*65536 + 181*256 + 205), "lightsteelblue3" }, | - | ||||||||||||||||||
| 480 | { (110*65536 + 123*256 + 139), "lightsteelblue4" }, | - | ||||||||||||||||||
| 481 | { (255*65536 + 255*256 + 224), "lightyellow" }, | - | ||||||||||||||||||
| 482 | { (255*65536 + 255*256 + 224), "lightyellow1" }, | - | ||||||||||||||||||
| 483 | { (238*65536 + 238*256 + 209), "lightyellow2" }, | - | ||||||||||||||||||
| 484 | { (205*65536 + 205*256 + 180), "lightyellow3" }, | - | ||||||||||||||||||
| 485 | { (139*65536 + 139*256 + 122), "lightyellow4" }, | - | ||||||||||||||||||
| 486 | { (50*65536 + 205*256 + 50), "limegreen" }, | - | ||||||||||||||||||
| 487 | { (250*65536 + 240*256 + 230), "linen" }, | - | ||||||||||||||||||
| 488 | { (255*65536 + 0*256 + 255), "magenta" }, | - | ||||||||||||||||||
| 489 | { (255*65536 + 0*256 + 255), "magenta1" }, | - | ||||||||||||||||||
| 490 | { (238*65536 + 0*256 + 238), "magenta2" }, | - | ||||||||||||||||||
| 491 | { (205*65536 + 0*256 + 205), "magenta3" }, | - | ||||||||||||||||||
| 492 | { (139*65536 + 0*256 + 139), "magenta4" }, | - | ||||||||||||||||||
| 493 | { (176*65536 + 48*256 + 96), "maroon" }, | - | ||||||||||||||||||
| 494 | { (255*65536 + 52*256 + 179), "maroon1" }, | - | ||||||||||||||||||
| 495 | { (238*65536 + 48*256 + 167), "maroon2" }, | - | ||||||||||||||||||
| 496 | { (205*65536 + 41*256 + 144), "maroon3" }, | - | ||||||||||||||||||
| 497 | { (139*65536 + 28*256 + 98), "maroon4" }, | - | ||||||||||||||||||
| 498 | { (102*65536 + 205*256 + 170), "mediumaquamarine" }, | - | ||||||||||||||||||
| 499 | { (0*65536 + 0*256 + 205), "mediumblue" }, | - | ||||||||||||||||||
| 500 | { (186*65536 + 85*256 + 211), "mediumorchid" }, | - | ||||||||||||||||||
| 501 | { (224*65536 + 102*256 + 255), "mediumorchid1" }, | - | ||||||||||||||||||
| 502 | { (209*65536 + 95*256 + 238), "mediumorchid2" }, | - | ||||||||||||||||||
| 503 | { (180*65536 + 82*256 + 205), "mediumorchid3" }, | - | ||||||||||||||||||
| 504 | { (122*65536 + 55*256 + 139), "mediumorchid4" }, | - | ||||||||||||||||||
| 505 | { (147*65536 + 112*256 + 219), "mediumpurple" }, | - | ||||||||||||||||||
| 506 | { (171*65536 + 130*256 + 255), "mediumpurple1" }, | - | ||||||||||||||||||
| 507 | { (159*65536 + 121*256 + 238), "mediumpurple2" }, | - | ||||||||||||||||||
| 508 | { (137*65536 + 104*256 + 205), "mediumpurple3" }, | - | ||||||||||||||||||
| 509 | { (93*65536 + 71*256 + 139), "mediumpurple4" }, | - | ||||||||||||||||||
| 510 | { (60*65536 + 179*256 + 113), "mediumseagreen" }, | - | ||||||||||||||||||
| 511 | { (123*65536 + 104*256 + 238), "mediumslateblue" }, | - | ||||||||||||||||||
| 512 | { (0*65536 + 250*256 + 154), "mediumspringgreen" }, | - | ||||||||||||||||||
| 513 | { (72*65536 + 209*256 + 204), "mediumturquoise" }, | - | ||||||||||||||||||
| 514 | { (199*65536 + 21*256 + 133), "mediumvioletred" }, | - | ||||||||||||||||||
| 515 | { (25*65536 + 25*256 + 112), "midnightblue" }, | - | ||||||||||||||||||
| 516 | { (245*65536 + 255*256 + 250), "mintcream" }, | - | ||||||||||||||||||
| 517 | { (255*65536 + 228*256 + 225), "mistyrose" }, | - | ||||||||||||||||||
| 518 | { (255*65536 + 228*256 + 225), "mistyrose1" }, | - | ||||||||||||||||||
| 519 | { (238*65536 + 213*256 + 210), "mistyrose2" }, | - | ||||||||||||||||||
| 520 | { (205*65536 + 183*256 + 181), "mistyrose3" }, | - | ||||||||||||||||||
| 521 | { (139*65536 + 125*256 + 123), "mistyrose4" }, | - | ||||||||||||||||||
| 522 | { (255*65536 + 228*256 + 181), "moccasin" }, | - | ||||||||||||||||||
| 523 | { (255*65536 + 222*256 + 173), "navajowhite" }, | - | ||||||||||||||||||
| 524 | { (255*65536 + 222*256 + 173), "navajowhite1" }, | - | ||||||||||||||||||
| 525 | { (238*65536 + 207*256 + 161), "navajowhite2" }, | - | ||||||||||||||||||
| 526 | { (205*65536 + 179*256 + 139), "navajowhite3" }, | - | ||||||||||||||||||
| 527 | { (139*65536 + 121*256 + 94), "navajowhite4" }, | - | ||||||||||||||||||
| 528 | { (0*65536 + 0*256 + 128), "navy" }, | - | ||||||||||||||||||
| 529 | { (0*65536 + 0*256 + 128), "navyblue" }, | - | ||||||||||||||||||
| 530 | { (253*65536 + 245*256 + 230), "oldlace" }, | - | ||||||||||||||||||
| 531 | { (107*65536 + 142*256 + 35), "olivedrab" }, | - | ||||||||||||||||||
| 532 | { (192*65536 + 255*256 + 62), "olivedrab1" }, | - | ||||||||||||||||||
| 533 | { (179*65536 + 238*256 + 58), "olivedrab2" }, | - | ||||||||||||||||||
| 534 | { (154*65536 + 205*256 + 50), "olivedrab3" }, | - | ||||||||||||||||||
| 535 | { (105*65536 + 139*256 + 34), "olivedrab4" }, | - | ||||||||||||||||||
| 536 | { (255*65536 + 165*256 + 0), "orange" }, | - | ||||||||||||||||||
| 537 | { (255*65536 + 165*256 + 0), "orange1" }, | - | ||||||||||||||||||
| 538 | { (238*65536 + 154*256 + 0), "orange2" }, | - | ||||||||||||||||||
| 539 | { (205*65536 + 133*256 + 0), "orange3" }, | - | ||||||||||||||||||
| 540 | { (139*65536 + 90*256 + 0), "orange4" }, | - | ||||||||||||||||||
| 541 | { (255*65536 + 69*256 + 0), "orangered" }, | - | ||||||||||||||||||
| 542 | { (255*65536 + 69*256 + 0), "orangered1" }, | - | ||||||||||||||||||
| 543 | { (238*65536 + 64*256 + 0), "orangered2" }, | - | ||||||||||||||||||
| 544 | { (205*65536 + 55*256 + 0), "orangered3" }, | - | ||||||||||||||||||
| 545 | { (139*65536 + 37*256 + 0), "orangered4" }, | - | ||||||||||||||||||
| 546 | { (218*65536 + 112*256 + 214), "orchid" }, | - | ||||||||||||||||||
| 547 | { (255*65536 + 131*256 + 250), "orchid1" }, | - | ||||||||||||||||||
| 548 | { (238*65536 + 122*256 + 233), "orchid2" }, | - | ||||||||||||||||||
| 549 | { (205*65536 + 105*256 + 201), "orchid3" }, | - | ||||||||||||||||||
| 550 | { (139*65536 + 71*256 + 137), "orchid4" }, | - | ||||||||||||||||||
| 551 | { (238*65536 + 232*256 + 170), "palegoldenrod" }, | - | ||||||||||||||||||
| 552 | { (152*65536 + 251*256 + 152), "palegreen" }, | - | ||||||||||||||||||
| 553 | { (154*65536 + 255*256 + 154), "palegreen1" }, | - | ||||||||||||||||||
| 554 | { (144*65536 + 238*256 + 144), "palegreen2" }, | - | ||||||||||||||||||
| 555 | { (124*65536 + 205*256 + 124), "palegreen3" }, | - | ||||||||||||||||||
| 556 | { (84*65536 + 139*256 + 84), "palegreen4" }, | - | ||||||||||||||||||
| 557 | { (175*65536 + 238*256 + 238), "paleturquoise" }, | - | ||||||||||||||||||
| 558 | { (187*65536 + 255*256 + 255), "paleturquoise1" }, | - | ||||||||||||||||||
| 559 | { (174*65536 + 238*256 + 238), "paleturquoise2" }, | - | ||||||||||||||||||
| 560 | { (150*65536 + 205*256 + 205), "paleturquoise3" }, | - | ||||||||||||||||||
| 561 | { (102*65536 + 139*256 + 139), "paleturquoise4" }, | - | ||||||||||||||||||
| 562 | { (219*65536 + 112*256 + 147), "palevioletred" }, | - | ||||||||||||||||||
| 563 | { (255*65536 + 130*256 + 171), "palevioletred1" }, | - | ||||||||||||||||||
| 564 | { (238*65536 + 121*256 + 159), "palevioletred2" }, | - | ||||||||||||||||||
| 565 | { (205*65536 + 104*256 + 137), "palevioletred3" }, | - | ||||||||||||||||||
| 566 | { (139*65536 + 71*256 + 93), "palevioletred4" }, | - | ||||||||||||||||||
| 567 | { (255*65536 + 239*256 + 213), "papayawhip" }, | - | ||||||||||||||||||
| 568 | { (255*65536 + 218*256 + 185), "peachpuff" }, | - | ||||||||||||||||||
| 569 | { (255*65536 + 218*256 + 185), "peachpuff1" }, | - | ||||||||||||||||||
| 570 | { (238*65536 + 203*256 + 173), "peachpuff2" }, | - | ||||||||||||||||||
| 571 | { (205*65536 + 175*256 + 149), "peachpuff3" }, | - | ||||||||||||||||||
| 572 | { (139*65536 + 119*256 + 101), "peachpuff4" }, | - | ||||||||||||||||||
| 573 | { (205*65536 + 133*256 + 63), "peru" }, | - | ||||||||||||||||||
| 574 | { (255*65536 + 192*256 + 203), "pink" }, | - | ||||||||||||||||||
| 575 | { (255*65536 + 181*256 + 197), "pink1" }, | - | ||||||||||||||||||
| 576 | { (238*65536 + 169*256 + 184), "pink2" }, | - | ||||||||||||||||||
| 577 | { (205*65536 + 145*256 + 158), "pink3" }, | - | ||||||||||||||||||
| 578 | { (139*65536 + 99*256 + 108), "pink4" }, | - | ||||||||||||||||||
| 579 | { (221*65536 + 160*256 + 221), "plum" }, | - | ||||||||||||||||||
| 580 | { (255*65536 + 187*256 + 255), "plum1" }, | - | ||||||||||||||||||
| 581 | { (238*65536 + 174*256 + 238), "plum2" }, | - | ||||||||||||||||||
| 582 | { (205*65536 + 150*256 + 205), "plum3" }, | - | ||||||||||||||||||
| 583 | { (139*65536 + 102*256 + 139), "plum4" }, | - | ||||||||||||||||||
| 584 | { (176*65536 + 224*256 + 230), "powderblue" }, | - | ||||||||||||||||||
| 585 | { (160*65536 + 32*256 + 240), "purple" }, | - | ||||||||||||||||||
| 586 | { (155*65536 + 48*256 + 255), "purple1" }, | - | ||||||||||||||||||
| 587 | { (145*65536 + 44*256 + 238), "purple2" }, | - | ||||||||||||||||||
| 588 | { (125*65536 + 38*256 + 205), "purple3" }, | - | ||||||||||||||||||
| 589 | { (85*65536 + 26*256 + 139), "purple4" }, | - | ||||||||||||||||||
| 590 | { (255*65536 + 0*256 + 0), "red" }, | - | ||||||||||||||||||
| 591 | { (255*65536 + 0*256 + 0), "red1" }, | - | ||||||||||||||||||
| 592 | { (238*65536 + 0*256 + 0), "red2" }, | - | ||||||||||||||||||
| 593 | { (205*65536 + 0*256 + 0), "red3" }, | - | ||||||||||||||||||
| 594 | { (139*65536 + 0*256 + 0), "red4" }, | - | ||||||||||||||||||
| 595 | { (188*65536 + 143*256 + 143), "rosybrown" }, | - | ||||||||||||||||||
| 596 | { (255*65536 + 193*256 + 193), "rosybrown1" }, | - | ||||||||||||||||||
| 597 | { (238*65536 + 180*256 + 180), "rosybrown2" }, | - | ||||||||||||||||||
| 598 | { (205*65536 + 155*256 + 155), "rosybrown3" }, | - | ||||||||||||||||||
| 599 | { (139*65536 + 105*256 + 105), "rosybrown4" }, | - | ||||||||||||||||||
| 600 | { (65*65536 + 105*256 + 225), "royalblue" }, | - | ||||||||||||||||||
| 601 | { (72*65536 + 118*256 + 255), "royalblue1" }, | - | ||||||||||||||||||
| 602 | { (67*65536 + 110*256 + 238), "royalblue2" }, | - | ||||||||||||||||||
| 603 | { (58*65536 + 95*256 + 205), "royalblue3" }, | - | ||||||||||||||||||
| 604 | { (39*65536 + 64*256 + 139), "royalblue4" }, | - | ||||||||||||||||||
| 605 | { (139*65536 + 69*256 + 19), "saddlebrown" }, | - | ||||||||||||||||||
| 606 | { (250*65536 + 128*256 + 114), "salmon" }, | - | ||||||||||||||||||
| 607 | { (255*65536 + 140*256 + 105), "salmon1" }, | - | ||||||||||||||||||
| 608 | { (238*65536 + 130*256 + 98), "salmon2" }, | - | ||||||||||||||||||
| 609 | { (205*65536 + 112*256 + 84), "salmon3" }, | - | ||||||||||||||||||
| 610 | { (139*65536 + 76*256 + 57), "salmon4" }, | - | ||||||||||||||||||
| 611 | { (244*65536 + 164*256 + 96), "sandybrown" }, | - | ||||||||||||||||||
| 612 | { (46*65536 + 139*256 + 87), "seagreen" }, | - | ||||||||||||||||||
| 613 | { (84*65536 + 255*256 + 159), "seagreen1" }, | - | ||||||||||||||||||
| 614 | { (78*65536 + 238*256 + 148), "seagreen2" }, | - | ||||||||||||||||||
| 615 | { (67*65536 + 205*256 + 128), "seagreen3" }, | - | ||||||||||||||||||
| 616 | { (46*65536 + 139*256 + 87), "seagreen4" }, | - | ||||||||||||||||||
| 617 | { (255*65536 + 245*256 + 238), "seashell" }, | - | ||||||||||||||||||
| 618 | { (255*65536 + 245*256 + 238), "seashell1" }, | - | ||||||||||||||||||
| 619 | { (238*65536 + 229*256 + 222), "seashell2" }, | - | ||||||||||||||||||
| 620 | { (205*65536 + 197*256 + 191), "seashell3" }, | - | ||||||||||||||||||
| 621 | { (139*65536 + 134*256 + 130), "seashell4" }, | - | ||||||||||||||||||
| 622 | { (160*65536 + 82*256 + 45), "sienna" }, | - | ||||||||||||||||||
| 623 | { (255*65536 + 130*256 + 71), "sienna1" }, | - | ||||||||||||||||||
| 624 | { (238*65536 + 121*256 + 66), "sienna2" }, | - | ||||||||||||||||||
| 625 | { (205*65536 + 104*256 + 57), "sienna3" }, | - | ||||||||||||||||||
| 626 | { (139*65536 + 71*256 + 38), "sienna4" }, | - | ||||||||||||||||||
| 627 | { (135*65536 + 206*256 + 235), "skyblue" }, | - | ||||||||||||||||||
| 628 | { (135*65536 + 206*256 + 255), "skyblue1" }, | - | ||||||||||||||||||
| 629 | { (126*65536 + 192*256 + 238), "skyblue2" }, | - | ||||||||||||||||||
| 630 | { (108*65536 + 166*256 + 205), "skyblue3" }, | - | ||||||||||||||||||
| 631 | { (74*65536 + 112*256 + 139), "skyblue4" }, | - | ||||||||||||||||||
| 632 | { (106*65536 + 90*256 + 205), "slateblue" }, | - | ||||||||||||||||||
| 633 | { (131*65536 + 111*256 + 255), "slateblue1" }, | - | ||||||||||||||||||
| 634 | { (122*65536 + 103*256 + 238), "slateblue2" }, | - | ||||||||||||||||||
| 635 | { (105*65536 + 89*256 + 205), "slateblue3" }, | - | ||||||||||||||||||
| 636 | { (71*65536 + 60*256 + 139), "slateblue4" }, | - | ||||||||||||||||||
| 637 | { (112*65536 + 128*256 + 144), "slategray" }, | - | ||||||||||||||||||
| 638 | { (198*65536 + 226*256 + 255), "slategray1" }, | - | ||||||||||||||||||
| 639 | { (185*65536 + 211*256 + 238), "slategray2" }, | - | ||||||||||||||||||
| 640 | { (159*65536 + 182*256 + 205), "slategray3" }, | - | ||||||||||||||||||
| 641 | { (108*65536 + 123*256 + 139), "slategray4" }, | - | ||||||||||||||||||
| 642 | { (112*65536 + 128*256 + 144), "slategrey" }, | - | ||||||||||||||||||
| 643 | { (255*65536 + 250*256 + 250), "snow" }, | - | ||||||||||||||||||
| 644 | { (255*65536 + 250*256 + 250), "snow1" }, | - | ||||||||||||||||||
| 645 | { (238*65536 + 233*256 + 233), "snow2" }, | - | ||||||||||||||||||
| 646 | { (205*65536 + 201*256 + 201), "snow3" }, | - | ||||||||||||||||||
| 647 | { (139*65536 + 137*256 + 137), "snow4" }, | - | ||||||||||||||||||
| 648 | { (0*65536 + 255*256 + 127), "springgreen" }, | - | ||||||||||||||||||
| 649 | { (0*65536 + 255*256 + 127), "springgreen1" }, | - | ||||||||||||||||||
| 650 | { (0*65536 + 238*256 + 118), "springgreen2" }, | - | ||||||||||||||||||
| 651 | { (0*65536 + 205*256 + 102), "springgreen3" }, | - | ||||||||||||||||||
| 652 | { (0*65536 + 139*256 + 69), "springgreen4" }, | - | ||||||||||||||||||
| 653 | { (70*65536 + 130*256 + 180), "steelblue" }, | - | ||||||||||||||||||
| 654 | { (99*65536 + 184*256 + 255), "steelblue1" }, | - | ||||||||||||||||||
| 655 | { (92*65536 + 172*256 + 238), "steelblue2" }, | - | ||||||||||||||||||
| 656 | { (79*65536 + 148*256 + 205), "steelblue3" }, | - | ||||||||||||||||||
| 657 | { (54*65536 + 100*256 + 139), "steelblue4" }, | - | ||||||||||||||||||
| 658 | { (210*65536 + 180*256 + 140), "tan" }, | - | ||||||||||||||||||
| 659 | { (255*65536 + 165*256 + 79), "tan1" }, | - | ||||||||||||||||||
| 660 | { (238*65536 + 154*256 + 73), "tan2" }, | - | ||||||||||||||||||
| 661 | { (205*65536 + 133*256 + 63), "tan3" }, | - | ||||||||||||||||||
| 662 | { (139*65536 + 90*256 + 43), "tan4" }, | - | ||||||||||||||||||
| 663 | { (216*65536 + 191*256 + 216), "thistle" }, | - | ||||||||||||||||||
| 664 | { (255*65536 + 225*256 + 255), "thistle1" }, | - | ||||||||||||||||||
| 665 | { (238*65536 + 210*256 + 238), "thistle2" }, | - | ||||||||||||||||||
| 666 | { (205*65536 + 181*256 + 205), "thistle3" }, | - | ||||||||||||||||||
| 667 | { (139*65536 + 123*256 + 139), "thistle4" }, | - | ||||||||||||||||||
| 668 | { (255*65536 + 99*256 + 71), "tomato" }, | - | ||||||||||||||||||
| 669 | { (255*65536 + 99*256 + 71), "tomato1" }, | - | ||||||||||||||||||
| 670 | { (238*65536 + 92*256 + 66), "tomato2" }, | - | ||||||||||||||||||
| 671 | { (205*65536 + 79*256 + 57), "tomato3" }, | - | ||||||||||||||||||
| 672 | { (139*65536 + 54*256 + 38), "tomato4" }, | - | ||||||||||||||||||
| 673 | { (64*65536 + 224*256 + 208), "turquoise" }, | - | ||||||||||||||||||
| 674 | { (0*65536 + 245*256 + 255), "turquoise1" }, | - | ||||||||||||||||||
| 675 | { (0*65536 + 229*256 + 238), "turquoise2" }, | - | ||||||||||||||||||
| 676 | { (0*65536 + 197*256 + 205), "turquoise3" }, | - | ||||||||||||||||||
| 677 | { (0*65536 + 134*256 + 139), "turquoise4" }, | - | ||||||||||||||||||
| 678 | { (238*65536 + 130*256 + 238), "violet" }, | - | ||||||||||||||||||
| 679 | { (208*65536 + 32*256 + 144), "violetred" }, | - | ||||||||||||||||||
| 680 | { (255*65536 + 62*256 + 150), "violetred1" }, | - | ||||||||||||||||||
| 681 | { (238*65536 + 58*256 + 140), "violetred2" }, | - | ||||||||||||||||||
| 682 | { (205*65536 + 50*256 + 120), "violetred3" }, | - | ||||||||||||||||||
| 683 | { (139*65536 + 34*256 + 82), "violetred4" }, | - | ||||||||||||||||||
| 684 | { (245*65536 + 222*256 + 179), "wheat" }, | - | ||||||||||||||||||
| 685 | { (255*65536 + 231*256 + 186), "wheat1" }, | - | ||||||||||||||||||
| 686 | { (238*65536 + 216*256 + 174), "wheat2" }, | - | ||||||||||||||||||
| 687 | { (205*65536 + 186*256 + 150), "wheat3" }, | - | ||||||||||||||||||
| 688 | { (139*65536 + 126*256 + 102), "wheat4" }, | - | ||||||||||||||||||
| 689 | { (255*65536 + 255*256 + 255), "white" }, | - | ||||||||||||||||||
| 690 | { (245*65536 + 245*256 + 245), "whitesmoke" }, | - | ||||||||||||||||||
| 691 | { (255*65536 + 255*256 + 0), "yellow" }, | - | ||||||||||||||||||
| 692 | { (255*65536 + 255*256 + 0), "yellow1" }, | - | ||||||||||||||||||
| 693 | { (238*65536 + 238*256 + 0), "yellow2" }, | - | ||||||||||||||||||
| 694 | { (205*65536 + 205*256 + 0), "yellow3" }, | - | ||||||||||||||||||
| 695 | { (139*65536 + 139*256 + 0), "yellow4" }, | - | ||||||||||||||||||
| 696 | { (154*65536 + 205*256 + 50), "yellowgreen" } }; | - | ||||||||||||||||||
| 697 | - | |||||||||||||||||||
| 698 | - | |||||||||||||||||||
| 699 | - | |||||||||||||||||||
| 700 | - | |||||||||||||||||||
| 701 | - | |||||||||||||||||||
| 702 | - | |||||||||||||||||||
| 703 | inline bool operator<(const char *name, const XPMRGBData &data) | - | ||||||||||||||||||
| 704 | { return qstrcmp(name, data.name) < 0; } | - | ||||||||||||||||||
| 705 | inline bool operator<(const XPMRGBData &data, const char *name) | - | ||||||||||||||||||
| 706 | { return qstrcmp(data.name, name) < 0; } | - | ||||||||||||||||||
| 707 | - | |||||||||||||||||||
| 708 | static inline bool qt_get_named_xpm_rgb(const char *name_no_space, QRgb *rgb) | - | ||||||||||||||||||
| 709 | { | - | ||||||||||||||||||
| 710 | const XPMRGBData *r = std::lower_bound(xpmRgbTbl, xpmRgbTbl + xpmRgbTblSize, name_no_space); | - | ||||||||||||||||||
| 711 | if ((r != xpmRgbTbl + xpmRgbTblSize) && !(name_no_space < *r)) { | - | ||||||||||||||||||
| 712 | *rgb = r->value; | - | ||||||||||||||||||
| 713 | return true; | - | ||||||||||||||||||
| 714 | } else { | - | ||||||||||||||||||
| 715 | return false; | - | ||||||||||||||||||
| 716 | } | - | ||||||||||||||||||
| 717 | } | - | ||||||||||||||||||
| 718 | - | |||||||||||||||||||
| 719 | - | |||||||||||||||||||
| 720 | - | |||||||||||||||||||
| 721 | - | |||||||||||||||||||
| 722 | static QString fbname(const QString &fileName) | - | ||||||||||||||||||
| 723 | { | - | ||||||||||||||||||
| 724 | QString s = fileName; | - | ||||||||||||||||||
| 725 | if (!s.isEmpty()) { | - | ||||||||||||||||||
| 726 | int i; | - | ||||||||||||||||||
| 727 | if ((i = s.lastIndexOf(QLatin1Char('/'))) >= 0) | - | ||||||||||||||||||
| 728 | s = s.mid(i); | - | ||||||||||||||||||
| 729 | if ((i = s.lastIndexOf(QLatin1Char('\\'))) >= 0) | - | ||||||||||||||||||
| 730 | s = s.mid(i); | - | ||||||||||||||||||
| 731 | QRegExp r(QLatin1String("[a-zA-Z][a-zA-Z0-9_]*")); | - | ||||||||||||||||||
| 732 | int p = r.indexIn(s); | - | ||||||||||||||||||
| 733 | if (p == -1) | - | ||||||||||||||||||
| 734 | s.clear(); | - | ||||||||||||||||||
| 735 | else | - | ||||||||||||||||||
| 736 | s = s.mid(p, r.matchedLength()); | - | ||||||||||||||||||
| 737 | } | - | ||||||||||||||||||
| 738 | if (s.isEmpty()) | - | ||||||||||||||||||
| 739 | s = QString::fromLatin1("dummy"); | - | ||||||||||||||||||
| 740 | return s; | - | ||||||||||||||||||
| 741 | } | - | ||||||||||||||||||
| 742 | - | |||||||||||||||||||
| 743 | - | |||||||||||||||||||
| 744 | - | |||||||||||||||||||
| 745 | - | |||||||||||||||||||
| 746 | static bool read_xpm_string(QByteArray &buf, QIODevice *d, const char * const *source, int &index, | - | ||||||||||||||||||
| 747 | QByteArray &state) | - | ||||||||||||||||||
| 748 | { | - | ||||||||||||||||||
| 749 | if (source) { | - | ||||||||||||||||||
| 750 | buf = source[index++]; | - | ||||||||||||||||||
| 751 | return true; | - | ||||||||||||||||||
| 752 | } | - | ||||||||||||||||||
| 753 | - | |||||||||||||||||||
| 754 | buf = ""; | - | ||||||||||||||||||
| 755 | bool gotQuote = false; | - | ||||||||||||||||||
| 756 | int offset = 0; | - | ||||||||||||||||||
| 757 | for(;;) { | - | ||||||||||||||||||
| 758 | if (offset == state.size() || state.isEmpty()) { | - | ||||||||||||||||||
| 759 | char buf[2048]; | - | ||||||||||||||||||
| 760 | qint64 bytesRead = d->read(buf, sizeof(buf)); | - | ||||||||||||||||||
| 761 | if (bytesRead <= 0) | - | ||||||||||||||||||
| 762 | return false; | - | ||||||||||||||||||
| 763 | state = QByteArray(buf, int(bytesRead)); | - | ||||||||||||||||||
| 764 | offset = 0; | - | ||||||||||||||||||
| 765 | } | - | ||||||||||||||||||
| 766 | - | |||||||||||||||||||
| 767 | if (!gotQuote) { | - | ||||||||||||||||||
| 768 | if (state.at(offset++) == '"') | - | ||||||||||||||||||
| 769 | gotQuote = true; | - | ||||||||||||||||||
| 770 | } else { | - | ||||||||||||||||||
| 771 | char c = state.at(offset++); | - | ||||||||||||||||||
| 772 | if (c == '"') | - | ||||||||||||||||||
| 773 | break; | - | ||||||||||||||||||
| 774 | buf += c; | - | ||||||||||||||||||
| 775 | } | - | ||||||||||||||||||
| 776 | } | - | ||||||||||||||||||
| 777 | state.remove(0, offset); | - | ||||||||||||||||||
| 778 | return true; | - | ||||||||||||||||||
| 779 | } | - | ||||||||||||||||||
| 780 | - | |||||||||||||||||||
| 781 | - | |||||||||||||||||||
| 782 | - | |||||||||||||||||||
| 783 | static bool is_xpm_color_spec_prefix(const QByteArray& prefix) | - | ||||||||||||||||||
| 784 | { | - | ||||||||||||||||||
| 785 | return prefix == "c" || | - | ||||||||||||||||||
| 786 | prefix == "g" || | - | ||||||||||||||||||
| 787 | prefix == "g4" || | - | ||||||||||||||||||
| 788 | prefix == "m" || | - | ||||||||||||||||||
| 789 | prefix == "s"; | - | ||||||||||||||||||
| 790 | } | - | ||||||||||||||||||
| 791 | - | |||||||||||||||||||
| 792 | - | |||||||||||||||||||
| 793 | - | |||||||||||||||||||
| 794 | static bool read_xpm_header( | - | ||||||||||||||||||
| 795 | QIODevice *device, const char * const * source, int& index, QByteArray &state, | - | ||||||||||||||||||
| 796 | int *cpp, int *ncols, int *w, int *h) | - | ||||||||||||||||||
| 797 | { | - | ||||||||||||||||||
| 798 | QByteArray buf(200, 0); | - | ||||||||||||||||||
| 799 | - | |||||||||||||||||||
| 800 | if (!read_xpm_string(buf, device, source, index, state) 
 | 0 | ||||||||||||||||||
| 801 | return never executed: false; return false;never executed:  return false; | 0 | ||||||||||||||||||
| 802 | - | |||||||||||||||||||
| 803 | - | |||||||||||||||||||
| 804 | - | |||||||||||||||||||
| 805 | - | |||||||||||||||||||
| 806 | if (sscanf(buf, "%d %d %d %d", w, h, ncols, cpp) < 4 
 | 0 | ||||||||||||||||||
| 807 | - | |||||||||||||||||||
| 808 | return never executed: false; return false;never executed:  return false; | 0 | ||||||||||||||||||
| 809 | - | |||||||||||||||||||
| 810 | if (*w <= 0 || *w > 32767 || *h <= 0 || *h > 32767 || *ncols <= 0 || *ncols > (64 * 64 * 64 * 64) || *cpp <= 0 || *cpp > 15) | 0 | ||||||||||||||||||
| return false;return never executed: true; return true;never executed:  return true; | ||||||||||||||||||||
| 811 | } | - | ||||||||||||||||||
| 812 | - | |||||||||||||||||||
| 813 | - | |||||||||||||||||||
| 814 | - | |||||||||||||||||||
| 815 | static bool read_xpm_body( | - | ||||||||||||||||||
| 816 | QIODevice *device, const char * const * source, int& index, QByteArray& state, | - | ||||||||||||||||||
| 817 | int cpp, int ncols, int w, int h, QImage& image) | - | ||||||||||||||||||
| 818 | { | - | ||||||||||||||||||
| 819 | QByteArray buf(200, 0); | - | ||||||||||||||||||
| 820 | int i; | - | ||||||||||||||||||
| 821 | - | |||||||||||||||||||
| 822 | if (cpp < 0 || cpp > 15) | - | ||||||||||||||||||
| 823 | return false; | - | ||||||||||||||||||
| 824 | - | |||||||||||||||||||
| 825 | - | |||||||||||||||||||
| 826 | - | |||||||||||||||||||
| 827 | - | |||||||||||||||||||
| 828 | - | |||||||||||||||||||
| 829 | if (ncols <= 256) { | - | ||||||||||||||||||
| 830 | if (image.size() != QSize(w, h) || image.format() != QImage::Format_Indexed8) { | - | ||||||||||||||||||
| 831 | image = QImage(w, h, QImage::Format_Indexed8); | - | ||||||||||||||||||
| 832 | if (image.isNull()) | - | ||||||||||||||||||
| 833 | return false; | - | ||||||||||||||||||
| 834 | } | - | ||||||||||||||||||
| 835 | image.setColorCount(ncols); | - | ||||||||||||||||||
| 836 | } | - | ||||||||||||||||||
| 837 | - | |||||||||||||||||||
| 838 | QMap<quint64, int> colorMap; | - | ||||||||||||||||||
| 839 | int currentColor; | - | ||||||||||||||||||
| 840 | bool hasTransparency = false; | - | ||||||||||||||||||
| 841 | - | |||||||||||||||||||
| 842 | for(currentColor=0; currentColor < ncols; ++currentColor) { | - | ||||||||||||||||||
| 843 | if (!read_xpm_string(buf, device, source, index, state)) { | - | ||||||||||||||||||
| 844 | QMessageLogger(__FILE__, 886889, __PRETTY_FUNCTION__).warning("QImage: XPM color specification missing"); | - | ||||||||||||||||||
| 845 | return false; | - | ||||||||||||||||||
| 846 | } | - | ||||||||||||||||||
| 847 | QByteArray index; | - | ||||||||||||||||||
| 848 | index = buf.left(cpp); | - | ||||||||||||||||||
| 849 | buf = buf.mid(cpp).simplified().trimmed().toLower(); | - | ||||||||||||||||||
| 850 | QList<QByteArray> tokens = buf.split(' '); | - | ||||||||||||||||||
| 851 | i = tokens.indexOf("c"); | - | ||||||||||||||||||
| 852 | if (i < 0) | - | ||||||||||||||||||
| 853 | i = tokens.indexOf("g"); | - | ||||||||||||||||||
| 854 | if (i < 0) | - | ||||||||||||||||||
| 855 | i = tokens.indexOf("g4"); | - | ||||||||||||||||||
| 856 | if (i < 0) | - | ||||||||||||||||||
| 857 | i = tokens.indexOf("m"); | - | ||||||||||||||||||
| 858 | if (i < 0) { | - | ||||||||||||||||||
| 859 | QMessageLogger(__FILE__, 901904, __PRETTY_FUNCTION__).warning("QImage: XPM color specification is missing: %s", buf.constData()); | - | ||||||||||||||||||
| 860 | return false; | - | ||||||||||||||||||
| 861 | } | - | ||||||||||||||||||
| 862 | QByteArray color; | - | ||||||||||||||||||
| 863 | while ((++i < tokens.size()) && !is_xpm_color_spec_prefix(tokens.at(i))) { | - | ||||||||||||||||||
| 864 | color.append(tokens.at(i)); | - | ||||||||||||||||||
| 865 | } | - | ||||||||||||||||||
| 866 | if (color.isEmpty()) { | - | ||||||||||||||||||
| 867 | QMessageLogger(__FILE__, 909912, __PRETTY_FUNCTION__).warning("QImage: XPM color value is missing from specification: %s", buf.constData()); | - | ||||||||||||||||||
| 868 | return false; | - | ||||||||||||||||||
| 869 | } | - | ||||||||||||||||||
| 870 | buf = color; | - | ||||||||||||||||||
| 871 | if (buf == "none") { | - | ||||||||||||||||||
| 872 | hasTransparency = true; | - | ||||||||||||||||||
| 873 | int transparentColor = currentColor; | - | ||||||||||||||||||
| 874 | if (ncols <= 256) { | - | ||||||||||||||||||
| 875 | image.setColor(transparentColor, 0); | - | ||||||||||||||||||
| 876 | colorMap.insert(xpmHash(QLatin1String(index.constData())), transparentColor); | - | ||||||||||||||||||
| 877 | } else { | - | ||||||||||||||||||
| 878 | colorMap.insert(xpmHash(QLatin1String(index.constData())), 0); | - | ||||||||||||||||||
| 879 | } | - | ||||||||||||||||||
| 880 | } else { | - | ||||||||||||||||||
| 881 | QRgb c_rgb; | - | ||||||||||||||||||
| 882 | if (((buf.length()-1) % 3) && (buf[0] == '#')) { | - | ||||||||||||||||||
| 883 | buf.truncate(((buf.length()-1) / 4 * 3) + 1); | - | ||||||||||||||||||
| 884 | } | - | ||||||||||||||||||
| 885 | if (buf[0] == '#') { | - | ||||||||||||||||||
| 886 | qt_get_hex_rgb(buf, &c_rgb); | - | ||||||||||||||||||
| 887 | } else { | - | ||||||||||||||||||
| 888 | qt_get_named_xpm_rgb(buf, &c_rgb); | - | ||||||||||||||||||
| 889 | } | - | ||||||||||||||||||
| 890 | if (ncols <= 256) { | - | ||||||||||||||||||
| 891 | image.setColor(currentColor, 0xff000000 | c_rgb); | - | ||||||||||||||||||
| 892 | colorMap.insert(xpmHash(QLatin1String(index.constData())), currentColor); | - | ||||||||||||||||||
| 893 | } else { | - | ||||||||||||||||||
| 894 | colorMap.insert(xpmHash(QLatin1String(index.constData())), 0xff000000 | c_rgb); | - | ||||||||||||||||||
| 895 | } | - | ||||||||||||||||||
| 896 | } | - | ||||||||||||||||||
| 897 | } | - | ||||||||||||||||||
| 898 | - | |||||||||||||||||||
| 899 | if (ncols > 256) { | - | ||||||||||||||||||
| 900 | - | |||||||||||||||||||
| 901 | QImage::Format format = hasTransparency ? | - | ||||||||||||||||||
| 902 | QImage::Format_ARGB32 : QImage::Format_RGB32; | - | ||||||||||||||||||
| 903 | if (image.size() != QSize(w, h) || image.format() != format) { | - | ||||||||||||||||||
| 904 | image = QImage(w, h, format); | - | ||||||||||||||||||
| 905 | if (image.isNull()) | - | ||||||||||||||||||
| 906 | return false; | - | ||||||||||||||||||
| 907 | } | - | ||||||||||||||||||
| 908 | } | - | ||||||||||||||||||
| 909 | - | |||||||||||||||||||
| 910 | - | |||||||||||||||||||
| 911 | for(int y=0; y<h; y++) { | - | ||||||||||||||||||
| 912 | if (!read_xpm_string(buf, device, source, index, state)) { | - | ||||||||||||||||||
| 913 | QMessageLogger(__FILE__, 955958, __PRETTY_FUNCTION__).warning("QImage: XPM pixels missing on image line %d", y); | - | ||||||||||||||||||
| 914 | return false; | - | ||||||||||||||||||
| 915 | } | - | ||||||||||||||||||
| 916 | if (image.depth() == 8) { | - | ||||||||||||||||||
| 917 | uchar *p = image.scanLine(y); | - | ||||||||||||||||||
| 918 | uchar *d = (uchar *)buf.data(); | - | ||||||||||||||||||
| 919 | uchar *end = d + buf.length(); | - | ||||||||||||||||||
| 920 | int x; | - | ||||||||||||||||||
| 921 | if (cpp == 1) { | - | ||||||||||||||||||
| 922 | char b[2]; | - | ||||||||||||||||||
| 923 | b[1] = '\0'; | - | ||||||||||||||||||
| 924 | for (x=0; x<w && d<end; x++) { | - | ||||||||||||||||||
| 925 | b[0] = *d++; | - | ||||||||||||||||||
| 926 | *p++ = (uchar)colorMap[xpmHash(b)]; | - | ||||||||||||||||||
| 927 | } | - | ||||||||||||||||||
| 928 | } else { | - | ||||||||||||||||||
| 929 | char b[16]; | - | ||||||||||||||||||
| 930 | b[cpp] = '\0'; | - | ||||||||||||||||||
| 931 | for (x=0; x<w && d<end; x++) { | - | ||||||||||||||||||
| 932 | memcpy(b, (char *)d, cpp); | - | ||||||||||||||||||
| 933 | *p++ = (uchar)colorMap[xpmHash(b)]; | - | ||||||||||||||||||
| 934 | d += cpp; | - | ||||||||||||||||||
| 935 | } | - | ||||||||||||||||||
| 936 | } | - | ||||||||||||||||||
| 937 | - | |||||||||||||||||||
| 938 | if (x < w) { | - | ||||||||||||||||||
| 939 | QMessageLogger(__FILE__, 981984, __PRETTY_FUNCTION__).warning("QImage: XPM pixels missing on image line %d (possibly a C++ trigraph).", y); | - | ||||||||||||||||||
| 940 | memset(p, 0, w - x); | - | ||||||||||||||||||
| 941 | } | - | ||||||||||||||||||
| 942 | } else { | - | ||||||||||||||||||
| 943 | QRgb *p = (QRgb*)image.scanLine(y); | - | ||||||||||||||||||
| 944 | uchar *d = (uchar *)buf.data(); | - | ||||||||||||||||||
| 945 | uchar *end = d + buf.length(); | - | ||||||||||||||||||
| 946 | int x; | - | ||||||||||||||||||
| 947 | char b[16]; | - | ||||||||||||||||||
| 948 | b[cpp] = '\0'; | - | ||||||||||||||||||
| 949 | for (x=0; x<w && d<end; x++) { | - | ||||||||||||||||||
| 950 | memcpy(b, (char *)d, cpp); | - | ||||||||||||||||||
| 951 | *p++ = (QRgb)colorMap[xpmHash(b)]; | - | ||||||||||||||||||
| 952 | d += cpp; | - | ||||||||||||||||||
| 953 | } | - | ||||||||||||||||||
| 954 | - | |||||||||||||||||||
| 955 | if (x < w) { | - | ||||||||||||||||||
| 956 | QMessageLogger(__FILE__, 9981001, __PRETTY_FUNCTION__).warning("QImage: XPM pixels missing on image line %d (possibly a C++ trigraph).", y); | - | ||||||||||||||||||
| 957 | memset(p, 0, (w - x)*4); | - | ||||||||||||||||||
| 958 | } | - | ||||||||||||||||||
| 959 | } | - | ||||||||||||||||||
| 960 | } | - | ||||||||||||||||||
| 961 | - | |||||||||||||||||||
| 962 | if (device) { | - | ||||||||||||||||||
| 963 | - | |||||||||||||||||||
| 964 | for (int i = state.size() - 1; i >= 0; --i) | - | ||||||||||||||||||
| 965 | device->ungetChar(state[i]); | - | ||||||||||||||||||
| 966 | char c; | - | ||||||||||||||||||
| 967 | while (device->getChar(&c) && c != ';') {} | - | ||||||||||||||||||
| 968 | while (device->getChar(&c) && c != '\n') {} | - | ||||||||||||||||||
| 969 | } | - | ||||||||||||||||||
| 970 | return true; | - | ||||||||||||||||||
| 971 | } | - | ||||||||||||||||||
| 972 | bool qt_read_xpm_image_or_array(QIODevice *device, const char * const * source, QImage &image) | - | ||||||||||||||||||
| 973 | { | - | ||||||||||||||||||
| 974 | if (!source) | - | ||||||||||||||||||
| 975 | return true; | - | ||||||||||||||||||
| 976 | - | |||||||||||||||||||
| 977 | QByteArray buf(200, 0); | - | ||||||||||||||||||
| 978 | QByteArray state; | - | ||||||||||||||||||
| 979 | - | |||||||||||||||||||
| 980 | int cpp, ncols, w, h, index = 0; | - | ||||||||||||||||||
| 981 | - | |||||||||||||||||||
| 982 | if (device) { | - | ||||||||||||||||||
| 983 | - | |||||||||||||||||||
| 984 | int readBytes; | - | ||||||||||||||||||
| 985 | if ((readBytes = device->readLine(buf.data(), buf.size())) < 0) | - | ||||||||||||||||||
| 986 | return false; | - | ||||||||||||||||||
| 987 | - | |||||||||||||||||||
| 988 | if (buf.indexOf("/* XPM") != 0) { | - | ||||||||||||||||||
| 989 | while (readBytes > 0) { | - | ||||||||||||||||||
| 990 | device->ungetChar(buf.at(readBytes - 1)); | - | ||||||||||||||||||
| 991 | --readBytes; | - | ||||||||||||||||||
| 992 | } | - | ||||||||||||||||||
| 993 | return false; | - | ||||||||||||||||||
| 994 | } | - | ||||||||||||||||||
| 995 | } | - | ||||||||||||||||||
| 996 | - | |||||||||||||||||||
| 997 | if (!read_xpm_header(device, source, index, state, &cpp, &ncols, &w, &h)) | - | ||||||||||||||||||
| 998 | return false; | - | ||||||||||||||||||
| 999 | - | |||||||||||||||||||
| 1000 | return read_xpm_body(device, source, index, state, cpp, ncols, w, h, image); | - | ||||||||||||||||||
| 1001 | } | - | ||||||||||||||||||
| 1002 | - | |||||||||||||||||||
| 1003 | static const char* xpm_color_name(int cpp, int index) | - | ||||||||||||||||||
| 1004 | { | - | ||||||||||||||||||
| 1005 | static char returnable[5]; | - | ||||||||||||||||||
| 1006 | static const char code[] = ".#abcdefghijklmnopqrstuvwxyzABCD" | - | ||||||||||||||||||
| 1007 | "EFGHIJKLMNOPQRSTUVWXYZ0123456789"; | - | ||||||||||||||||||
| 1008 | - | |||||||||||||||||||
| 1009 | if (cpp > 1) { | - | ||||||||||||||||||
| 1010 | if (cpp > 2) { | - | ||||||||||||||||||
| 1011 | if (cpp > 3) { | - | ||||||||||||||||||
| 1012 | returnable[3] = code[index % 64]; | - | ||||||||||||||||||
| 1013 | index /= 64; | - | ||||||||||||||||||
| 1014 | } else | - | ||||||||||||||||||
| 1015 | returnable[3] = '\0'; | - | ||||||||||||||||||
| 1016 | returnable[2] = code[index % 64]; | - | ||||||||||||||||||
| 1017 | index /= 64; | - | ||||||||||||||||||
| 1018 | } else | - | ||||||||||||||||||
| 1019 | returnable[2] = '\0'; | - | ||||||||||||||||||
| 1020 | - | |||||||||||||||||||
| 1021 | if (index == 0) | - | ||||||||||||||||||
| 1022 | index = 64*44+21; | - | ||||||||||||||||||
| 1023 | else if (index == 64*44+21) | - | ||||||||||||||||||
| 1024 | index = 0; | - | ||||||||||||||||||
| 1025 | returnable[1] = code[index % 64]; | - | ||||||||||||||||||
| 1026 | index /= 64; | - | ||||||||||||||||||
| 1027 | } else | - | ||||||||||||||||||
| 1028 | returnable[1] = '\0'; | - | ||||||||||||||||||
| 1029 | returnable[0] = code[index]; | - | ||||||||||||||||||
| 1030 | - | |||||||||||||||||||
| 1031 | return returnable; | - | ||||||||||||||||||
| 1032 | } | - | ||||||||||||||||||
| 1033 | - | |||||||||||||||||||
| 1034 | - | |||||||||||||||||||
| 1035 | - | |||||||||||||||||||
| 1036 | static bool write_xpm_image(const QImage &sourceImage, QIODevice *device, const QString &fileName) | - | ||||||||||||||||||
| 1037 | { | - | ||||||||||||||||||
| 1038 | if (!device->isWritable() 
 | 0 | ||||||||||||||||||
| 1039 | return never executed: false; return false;never executed:  return false; | 0 | ||||||||||||||||||
| 1040 | - | |||||||||||||||||||
| 1041 | QImage image; | - | ||||||||||||||||||
| 1042 | if (sourceImage.format() != QImage::Format_RGB32 
 
 
 | 0 | ||||||||||||||||||
| 1043 | image = sourceImage.convertToFormat(QImage::Format_RGB32); never executed:  image = sourceImage.convertToFormat(QImage::Format_RGB32); | 0 | ||||||||||||||||||
| 1044 | else | - | ||||||||||||||||||
| 1045 | image = sourceImage; never executed:  image = sourceImage; | 0 | ||||||||||||||||||
| 1046 | - | |||||||||||||||||||
| 1047 | QMap<QRgb, int> colorMap; | - | ||||||||||||||||||
| 1048 | - | |||||||||||||||||||
| 1049 | int w = image.width(), h = image.height(), ncolors = 0; | - | ||||||||||||||||||
| 1050 | int x, y; | - | ||||||||||||||||||
| 1051 | - | |||||||||||||||||||
| 1052 | - | |||||||||||||||||||
| 1053 | for(y=0; y<h 
 | 0 | ||||||||||||||||||
| 1054 | const QRgb *yp = reinterpret_cast<const QRgb *>(image.constScanLine(y)); | - | ||||||||||||||||||
| 1055 | for(x=0; x<w 
 | 0 | ||||||||||||||||||
| 1056 | QRgb color = *(yp + x); | - | ||||||||||||||||||
| 1057 | if (!colorMap.contains(color) 
 | 0 | ||||||||||||||||||
| 1058 | colorMap.insert(color, ncolors++); never executed:  colorMap.insert(color, ncolors++); | 0 | ||||||||||||||||||
| 1059 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1060 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1061 | - | |||||||||||||||||||
| 1062 | - | |||||||||||||||||||
| 1063 | int cpp = 1; | - | ||||||||||||||||||
| 1064 | for (int k = 64; ncolors > k 
 | 0 | ||||||||||||||||||
| 1065 | ++cpp; | - | ||||||||||||||||||
| 1066 | - | |||||||||||||||||||
| 1067 | - | |||||||||||||||||||
| 1068 | if (cpp > 4 
 | 0 | ||||||||||||||||||
| 1069 | break; never executed:  break; | 0 | ||||||||||||||||||
| 1070 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1071 | - | |||||||||||||||||||
| 1072 | QString line; | - | ||||||||||||||||||
| 1073 | - | |||||||||||||||||||
| 1074 | - | |||||||||||||||||||
| 1075 | QTextStream s(device); | - | ||||||||||||||||||
| 1076 | s << "/* XPM */" << endl | - | ||||||||||||||||||
| 1077 | << "static char *" << fbname(fileName) << "[]={" << endl | - | ||||||||||||||||||
| 1078 | << '\"' << w << ' ' << h << ' ' << ncolors << ' ' << cpp << '\"'; | - | ||||||||||||||||||
| 1079 | - | |||||||||||||||||||
| 1080 | - | |||||||||||||||||||
| 1081 | QMap<QRgb, int>::Iterator c = colorMap.begin(); | - | ||||||||||||||||||
| 1082 | while (c != colorMap.end() 
 | 0 | ||||||||||||||||||
| 1083 | QRgb color = c.key(); | - | ||||||||||||||||||
| 1084 | if (image.format() != QImage::Format_RGB32 
 
 | 0 | ||||||||||||||||||
| 1085 | line = QString::asprintf("\"%s c None\"", never executed:  line = QString::asprintf("\"%s c None\"", xpm_color_name(cpp, *c)); | 0 | ||||||||||||||||||
| 1086 | xpm_color_name(cpp, *c)); never executed:  line = QString::asprintf("\"%s c None\"", xpm_color_name(cpp, *c)); | 0 | ||||||||||||||||||
| 1087 | else | - | ||||||||||||||||||
| 1088 | line = QString::asprintf("\"%s c #%02x%02x%02x\"", never executed:  line = QString::asprintf("\"%s c #%02x%02x%02x\"", xpm_color_name(cpp, *c), qRed(color), qGreen(color), qBlue(color)); | 0 | ||||||||||||||||||
| 1089 | xpm_color_name(cpp, *c), never executed:  line = QString::asprintf("\"%s c #%02x%02x%02x\"", xpm_color_name(cpp, *c), qRed(color), qGreen(color), qBlue(color)); | 0 | ||||||||||||||||||
| 1090 | qRed(color), never executed:  line = QString::asprintf("\"%s c #%02x%02x%02x\"", xpm_color_name(cpp, *c), qRed(color), qGreen(color), qBlue(color)); | 0 | ||||||||||||||||||
| 1091 | qGreen(color), never executed:  line = QString::asprintf("\"%s c #%02x%02x%02x\"", xpm_color_name(cpp, *c), qRed(color), qGreen(color), qBlue(color)); | 0 | ||||||||||||||||||
| 1092 | qBlue(color)); never executed:  line = QString::asprintf("\"%s c #%02x%02x%02x\"", xpm_color_name(cpp, *c), qRed(color), qGreen(color), qBlue(color)); | 0 | ||||||||||||||||||
| 1093 | ++c; | - | ||||||||||||||||||
| 1094 | s << ',' << endl << line; | - | ||||||||||||||||||
| 1095 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1096 | - | |||||||||||||||||||
| 1097 | - | |||||||||||||||||||
| 1098 | line.truncate(cpp*w); | - | ||||||||||||||||||
| 1099 | for(y=0; y<h 
 | 0 | ||||||||||||||||||
| 1100 | const QRgb *yp = reinterpret_cast<const QRgb *>(image.constScanLine(y)); | - | ||||||||||||||||||
| 1101 | int cc = 0; | - | ||||||||||||||||||
| 1102 | for(x=0; x<w 
 | 0 | ||||||||||||||||||
| 1103 | int color = (int)(*(yp + x)); | - | ||||||||||||||||||
| 1104 | const QByteArray chars(xpm_color_name(cpp, colorMap[color])); | - | ||||||||||||||||||
| 1105 | line[cc++] = QLatin1Char(chars[0]); | - | ||||||||||||||||||
| 1106 | if (cpp > 1 
 | 0 | ||||||||||||||||||
| 1107 | line[cc++] = QLatin1Char(chars[1]); | - | ||||||||||||||||||
| 1108 | if (cpp > 2 
 | 0 | ||||||||||||||||||
| 1109 | line[cc++] = QLatin1Char(chars[2]); | - | ||||||||||||||||||
| 1110 | if (cpp > 3 
 | 0 | ||||||||||||||||||
| 1111 | line[cc++] = QLatin1Char(chars[3]); | - | ||||||||||||||||||
| 1112 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1113 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1114 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1115 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1116 | s << ',' << endl << '\"' << line << '\"'; | - | ||||||||||||||||||
| 1117 | } never executed:  end of block | 0 | ||||||||||||||||||
| 1118 | s << "};" << endl; | - | ||||||||||||||||||
| 1119 | return never executed: (s.status() == QTextStream::Ok); return (s.status() == QTextStream::Ok);never executed:  return (s.status() == QTextStream::Ok); | 0 | ||||||||||||||||||
| 1120 | } | - | ||||||||||||||||||
| 1121 | - | |||||||||||||||||||
| 1122 | QXpmHandler::QXpmHandler() | - | ||||||||||||||||||
| 1123 | : state(Ready), index(0) | - | ||||||||||||||||||
| 1124 | { | - | ||||||||||||||||||
| 1125 | } | - | ||||||||||||||||||
| 1126 | - | |||||||||||||||||||
| 1127 | bool QXpmHandler::readHeader() | - | ||||||||||||||||||
| 1128 | { | - | ||||||||||||||||||
| 1129 | state = Error; | - | ||||||||||||||||||
| 1130 | if (!read_xpm_header(device(), 0, index, buffer, &cpp, &ncols, &width, &height)) | - | ||||||||||||||||||
| 1131 | return false; | - | ||||||||||||||||||
| 1132 | state = ReadHeader; | - | ||||||||||||||||||
| 1133 | return true; | - | ||||||||||||||||||
| 1134 | } | - | ||||||||||||||||||
| 1135 | - | |||||||||||||||||||
| 1136 | bool QXpmHandler::readImage(QImage *image) | - | ||||||||||||||||||
| 1137 | { | - | ||||||||||||||||||
| 1138 | if (state == Error) | - | ||||||||||||||||||
| 1139 | return false; | - | ||||||||||||||||||
| 1140 | - | |||||||||||||||||||
| 1141 | if (state == Ready && !readHeader()) { | - | ||||||||||||||||||
| 1142 | state = Error; | - | ||||||||||||||||||
| 1143 | return false; | - | ||||||||||||||||||
| 1144 | } | - | ||||||||||||||||||
| 1145 | - | |||||||||||||||||||
| 1146 | if (!read_xpm_body(device(), 0, index, buffer, cpp, ncols, width, height, *image)) { | - | ||||||||||||||||||
| 1147 | state = Error; | - | ||||||||||||||||||
| 1148 | return false; | - | ||||||||||||||||||
| 1149 | } | - | ||||||||||||||||||
| 1150 | - | |||||||||||||||||||
| 1151 | state = Ready; | - | ||||||||||||||||||
| 1152 | return true; | - | ||||||||||||||||||
| 1153 | } | - | ||||||||||||||||||
| 1154 | - | |||||||||||||||||||
| 1155 | bool QXpmHandler::canRead() const | - | ||||||||||||||||||
| 1156 | { | - | ||||||||||||||||||
| 1157 | if (state == Ready && !canRead(device())) | - | ||||||||||||||||||
| 1158 | return false; | - | ||||||||||||||||||
| 1159 | - | |||||||||||||||||||
| 1160 | if (state != Error) { | - | ||||||||||||||||||
| 1161 | setFormat("xpm"); | - | ||||||||||||||||||
| 1162 | return true; | - | ||||||||||||||||||
| 1163 | } | - | ||||||||||||||||||
| 1164 | - | |||||||||||||||||||
| 1165 | return false; | - | ||||||||||||||||||
| 1166 | } | - | ||||||||||||||||||
| 1167 | - | |||||||||||||||||||
| 1168 | bool QXpmHandler::canRead(QIODevice *device) | - | ||||||||||||||||||
| 1169 | { | - | ||||||||||||||||||
| 1170 | if (!device) { | - | ||||||||||||||||||
| 1171 | QMessageLogger(__FILE__, 12211224, __PRETTY_FUNCTION__).warning("QXpmHandler::canRead() called with no device"); | - | ||||||||||||||||||
| 1172 | return false; | - | ||||||||||||||||||
| 1173 | } | - | ||||||||||||||||||
| 1174 | - | |||||||||||||||||||
| 1175 | char head[6]; | - | ||||||||||||||||||
| 1176 | if (device->peek(head, sizeof(head)) != sizeof(head)) | - | ||||||||||||||||||
| 1177 | return false; | - | ||||||||||||||||||
| 1178 | - | |||||||||||||||||||
| 1179 | return qstrncmp(head, "/* XPM", 6) == 0; | - | ||||||||||||||||||
| 1180 | } | - | ||||||||||||||||||
| 1181 | - | |||||||||||||||||||
| 1182 | bool QXpmHandler::read(QImage *image) | - | ||||||||||||||||||
| 1183 | { | - | ||||||||||||||||||
| 1184 | if (!canRead()) | - | ||||||||||||||||||
| 1185 | return false; | - | ||||||||||||||||||
| 1186 | return readImage(image); | - | ||||||||||||||||||
| 1187 | } | - | ||||||||||||||||||
| 1188 | - | |||||||||||||||||||
| 1189 | bool QXpmHandler::write(const QImage &image) | - | ||||||||||||||||||
| 1190 | { | - | ||||||||||||||||||
| 1191 | return write_xpm_image(image, device(), fileName); | - | ||||||||||||||||||
| 1192 | } | - | ||||||||||||||||||
| 1193 | - | |||||||||||||||||||
| 1194 | bool QXpmHandler::supportsOption(ImageOption option) const | - | ||||||||||||||||||
| 1195 | { | - | ||||||||||||||||||
| 1196 | return option == Name | - | ||||||||||||||||||
| 1197 | || option == Size | - | ||||||||||||||||||
| 1198 | || option == ImageFormat; | - | ||||||||||||||||||
| 1199 | } | - | ||||||||||||||||||
| 1200 | - | |||||||||||||||||||
| 1201 | QVariant QXpmHandler::option(ImageOption option) const | - | ||||||||||||||||||
| 1202 | { | - | ||||||||||||||||||
| 1203 | if (option == Name) { | - | ||||||||||||||||||
| 1204 | return fileName; | - | ||||||||||||||||||
| 1205 | } else if (option == Size) { | - | ||||||||||||||||||
| 1206 | if (state == Error) | - | ||||||||||||||||||
| 1207 | return QVariant(); | - | ||||||||||||||||||
| 1208 | if (state == Ready && !const_cast<QXpmHandler*>(this)->readHeader()) | - | ||||||||||||||||||
| 1209 | return QVariant(); | - | ||||||||||||||||||
| 1210 | return QSize(width, height); | - | ||||||||||||||||||
| 1211 | } else if (option == ImageFormat) { | - | ||||||||||||||||||
| 1212 | if (state == Error) | - | ||||||||||||||||||
| 1213 | return QVariant(); | - | ||||||||||||||||||
| 1214 | if (state == Ready && !const_cast<QXpmHandler*>(this)->readHeader()) | - | ||||||||||||||||||
| 1215 | return QVariant(); | - | ||||||||||||||||||
| 1216 | - | |||||||||||||||||||
| 1217 | - | |||||||||||||||||||
| 1218 | - | |||||||||||||||||||
| 1219 | - | |||||||||||||||||||
| 1220 | if (ncols <= 256) | - | ||||||||||||||||||
| 1221 | return QImage::Format_Indexed8; | - | ||||||||||||||||||
| 1222 | else | - | ||||||||||||||||||
| 1223 | return QImage::Format_Invalid; | - | ||||||||||||||||||
| 1224 | } | - | ||||||||||||||||||
| 1225 | - | |||||||||||||||||||
| 1226 | return QVariant(); | - | ||||||||||||||||||
| 1227 | } | - | ||||||||||||||||||
| 1228 | - | |||||||||||||||||||
| 1229 | void QXpmHandler::setOption(ImageOption option, const QVariant &value) | - | ||||||||||||||||||
| 1230 | { | - | ||||||||||||||||||
| 1231 | if (option == Name) | - | ||||||||||||||||||
| 1232 | fileName = value.toString(); | - | ||||||||||||||||||
| 1233 | } | - | ||||||||||||||||||
| 1234 | - | |||||||||||||||||||
| 1235 | QByteArray QXpmHandler::name() const | - | ||||||||||||||||||
| 1236 | { | - | ||||||||||||||||||
| 1237 | return "xpm"; | - | ||||||||||||||||||
| 1238 | } | - | ||||||||||||||||||
| 1239 | - | |||||||||||||||||||
| 1240 | - | |||||||||||||||||||
| Switch to Source code | Preprocessed file |