#include "i.h" typedef struct Iconinfo Iconinfo; struct Iconinfo { int width; int height; uchar* data; // 8-bit-deep, Brazil colormap uchar* mask; // 8-bit-deep grey, can be nil }; // logo made with background color == 221 (RGB=221,221,221), which // matches Grey of frame #define logowidth 47 #define logoheight 48 static uchar logodata[2256] = { 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 187, 153, 170, 170, 170, 170, 187, 221, 238, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 238, 221, 221, 204, 187, 153, 136, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 170, 51, 85, 102, 124, 141, 141, 141, 141, 141, 107, 73, 136, 153, 153, 153, 153, 153, 170, 170, 170, 153, 153, 136, 153, 136, 136, 136, 73, 73, 90, 90, 107, 124, 141, 141, 141, 238, 221, 221, 221, 221, 221, 221, 221, 221, 221, 238, 255, 255, 119, 73, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 238, 221, 221, 221, 221, 221, 221, 136, 255, 255, 255, 255, 255, 187, 85, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 107, 204, 221, 221, 221, 221, 221, 187, 221, 255, 255, 255, 204, 238, 238, 85, 141, 141, 141, 141, 141, 141, 141, 90, 68, 34, 68, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 85, 102, 124, 107, 204, 221, 221, 221, 221, 221, 136, 255, 255, 255, 238, 51, 85, 102, 124, 141, 141, 141, 141, 141, 141, 51, 0, 0, 17, 17, 34, 124, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 90, 85, 102, 85, 51, 119, 85, 68, 187, 221, 221, 221, 221, 221, 153, 221, 68, 85, 85, 107, 141, 141, 141, 141, 141, 141, 141, 141, 102, 0, 0, 0, 80, 80, 17, 85, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 85, 187, 255, 221, 170, 170, 255, 187, 68, 221, 221, 221, 221, 221, 238, 153, 119, 107, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 17, 0, 0, 136, 143, 79, 79, 34, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 85, 187, 102, 102, 136, 221, 255, 255, 153, 170, 221, 221, 221, 221, 204, 51, 102, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 0, 0, 97, 239, 114, 97, 79, 34, 141, 141, 141, 141, 141, 141, 141, 141, 141, 73, 17, 153, 204, 255, 255, 255, 255, 255, 170, 221, 221, 221, 221, 221, 238, 73, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 17, 0, 0, 205, 205, 0, 17, 90, 141, 141, 141, 141, 141, 141, 141, 141, 141, 85, 102, 255, 255, 255, 255, 255, 187, 255, 153, 221, 221, 221, 221, 221, 221, 90, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 73, 0, 0, 79, 79, 0, 102, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 107, 51, 187, 221, 238, 187, 119, 68, 255, 153, 221, 221, 221, 221, 221, 221, 107, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 107, 85, 51, 68, 107, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 85, 51, 85, 107, 124, 136, 255, 170, 221, 221, 221, 221, 221, 204, 124, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 124, 90, 107, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 102, 187, 170, 204, 221, 221, 221, 221, 204, 124, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 68, 131, 114, 159, 159, 159, 80, 90, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 107, 68, 170, 221, 221, 221, 221, 204, 124, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 90, 0, 222, 240, 240, 159, 222, 159, 51, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 119, 221, 221, 221, 221, 221, 204, 107, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 34, 17, 80, 239, 222, 177, 222, 142, 177, 85, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 119, 221, 221, 221, 221, 221, 238, 90, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 107, 0, 80, 0, 205, 240, 222, 114, 239, 142, 80, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 119, 221, 221, 221, 221, 221, 238, 90, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 17, 79, 80, 80, 240, 239, 239, 205, 160, 177, 73, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 73, 221, 221, 221, 221, 221, 221, 90, 141, 141, 124, 124, 107, 90, 124, 141, 141, 141, 141, 141, 141, 141, 141, 141, 85, 79, 17, 80, 222, 240, 222, 114, 239, 142, 51, 107, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 90, 221, 221, 221, 221, 221, 221, 136, 73, 68, 72, 89, 89, 89, 72, 102, 85, 68, 85, 85, 68, 68, 85, 68, 68, 79, 17, 17, 159, 240, 159, 239, 142, 159, 17, 72, 68, 85, 90, 141, 141, 141, 141, 141, 141, 141, 141, 90, 221, 221, 221, 221, 221, 221, 102, 85, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 34, 0, 79, 97, 240, 240, 159, 205, 222, 79, 123, 140, 140, 89, 85, 85, 90, 141, 141, 141, 141, 141, 90, 221, 221, 221, 221, 221, 221, 119, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 85, 17, 80, 79, 239, 240, 222, 239, 142, 160, 89, 140, 140, 140, 140, 140, 106, 85, 68, 68, 85, 85, 85, 221, 221, 221, 221, 221, 221, 136, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 106, 0, 79, 0, 222, 240, 240, 142, 239, 142, 85, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 68, 238, 221, 221, 221, 221, 221, 136, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 0, 0, 79, 177, 240, 239, 222, 160, 205, 51, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 136, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 17, 17, 97, 159, 240, 240, 177, 177, 205, 34, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 136, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 34, 0, 79, 142, 240, 240, 222, 239, 159, 80, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 153, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 51, 0, 17, 142, 240, 240, 240, 160, 240, 97, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 170, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 34, 17, 159, 114, 240, 240, 222, 239, 160, 97, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 170, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 51, 97, 79, 80, 240, 240, 240, 177, 160, 142, 106, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 119, 221, 221, 221, 221, 221, 221, 204, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 17, 17, 142, 97, 240, 240, 177, 160, 160, 160, 85, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 204, 123, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 34, 80, 79, 79, 240, 177, 160, 160, 205, 205, 68, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 221, 106, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 17, 0, 79, 79, 240, 240, 160, 205, 205, 160, 79, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 238, 89, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 17, 0, 97, 79, 240, 222, 222, 205, 159, 114, 114, 72, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 221, 102, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 0, 0, 0, 79, 240, 240, 205, 159, 114, 114, 159, 34, 140, 140, 140, 140, 140, 140, 140, 140, 140, 89, 221, 221, 221, 221, 221, 221, 221, 34, 34, 68, 140, 106, 68, 102, 68, 72, 89, 89, 89, 72, 72, 89, 72, 85, 51, 0, 0, 0, 79, 239, 205, 114, 114, 114, 159, 79, 79, 123, 140, 140, 140, 140, 140, 140, 140, 140, 72, 221, 221, 221, 221, 221, 221, 221, 85, 0, 0, 106, 140, 34, 17, 0, 17, 17, 51, 34, 68, 85, 17, 17, 17, 17, 34, 17, 0, 0, 160, 80, 97, 79, 97, 0, 17, 68, 123, 140, 140, 140, 140, 140, 140, 140, 140, 119, 221, 221, 221, 221, 221, 221, 221, 68, 0, 0, 106, 140, 140, 51, 51, 34, 17, 34, 17, 51, 0, 34, 34, 0, 17, 51, 34, 68, 17, 0, 17, 0, 51, 89, 123, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 119, 221, 221, 221, 221, 221, 221, 221, 153, 106, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 123, 89, 72, 85, 68, 51, 17, 34, 17, 85, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 102, 221, 221, 221, 221, 221, 221, 221, 221, 123, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 119, 221, 221, 221, 221, 221, 221, 221, 221, 136, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 102, 221, 221, 221, 221, 221, 221, 221, 221, 238, 136, 106, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 123, 123, 123, 140, 140, 140, 140, 140, 140, 187, 221, 221, 221, 221, 221, 221, 221, 221, 221, 170, 187, 153, 136, 136, 102, 89, 123, 140, 140, 140, 140, 123, 106, 106, 89, 119, 119, 136, 136, 153, 153, 153, 170, 170, 187, 204, 204, 221, 204, 204, 187, 187, 170, 153, 136, 153, 238, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 238, 221, 204, 204, 204, 204, 204, 221, 238, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, }; #define backwidth 16 #define backheight 16 static uchar backdata[256] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 170, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 170, 97, 85, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 221, 51, 97, 17, 187, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 170, 114, 97, 79, 97, 79, 80, 114, 68, 153, 221, 255, 255, 255, 255, 119, 177, 205, 80, 97, 159, 97, 205, 239, 205, 177, 80, 34, 204, 255, 119, 160, 222, 205, 114, 160, 222, 177, 159, 114, 97, 159, 114, 142, 187, 170, 159, 79, 80, 240, 159, 222, 177, 160, 159, 222, 177, 142, 177, 142, 153, 187, 97, 17, 79, 159, 205, 80, 80, 142, 159, 80, 205, 159, 80, 0, 153, 255, 136, 97, 79, 159, 177, 80, 79, 142, 97, 79, 142, 142, 142, 79, 187, 255, 255, 68, 80, 79, 142, 79, 34, 238, 204, 136, 114, 97, 142, 187, 255, 255, 255, 221, 97, 80, 142, 159, 17, 204, 255, 255, 238, 85, 187, 255, 255, 255, 255, 255, 187, 79, 142, 114, 51, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 204, 68, 17, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, }; static uchar backmask[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; #define fwdwidth 16 #define fwdheight 16 static uchar fwddata[256] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 170, 170, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 170, 160, 114, 170, 255, 255, 255, 255, 255, 255, 255, 238, 255, 255, 255, 255, 85, 114, 205, 97, 221, 255, 255, 255, 255, 255, 102, 34, 34, 34, 85, 119, 51, 205, 97, 222, 80, 255, 255, 255, 255, 119, 97, 51, 34, 97, 17, 0, 34, 142, 51, 159, 222, 102, 255, 255, 255, 97, 240, 240, 239, 222, 222, 160, 79, 142, 159, 114, 205, 159, 170, 255, 255, 79, 160, 177, 160, 205, 160, 240, 177, 205, 239, 160, 114, 177, 170, 255, 255, 17, 51, 114, 80, 80, 80, 142, 80, 159, 142, 177, 159, 51, 238, 255, 255, 51, 34, 97, 79, 51, 80, 80, 114, 51, 97, 114, 114, 136, 255, 255, 255, 153, 255, 255, 255, 255, 255, 255, 136, 159, 80, 97, 131, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 131, 80, 34, 153, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 79, 17, 153, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 79, 204, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, }; static uchar fwdmask[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; #define reloadwidth 16 #define reloadheight 16 static uchar reloaddata[256] = { 255, 255, 255, 255, 255, 255, 170, 136, 136, 153, 170, 119, 170, 255, 255, 255, 255, 255, 255, 255, 255, 102, 205, 239, 222, 222, 97, 177, 205, 119, 255, 255, 255, 255, 255, 255, 238, 142, 240, 240, 240, 177, 177, 177, 159, 97, 255, 255, 255, 255, 255, 255, 136, 222, 239, 240, 240, 142, 222, 114, 97, 85, 255, 255, 255, 255, 255, 255, 131, 222, 114, 159, 239, 142, 142, 159, 160, 187, 255, 255, 255, 255, 255, 255, 131, 239, 240, 222, 240, 142, 177, 34, 119, 255, 255, 255, 255, 255, 238, 255, 165, 240, 205, 222, 222, 114, 114, 187, 255, 187, 153, 255, 255, 221, 17, 51, 51, 222, 142, 114, 114, 159, 159, 68, 34, 79, 102, 255, 255, 119, 97, 0, 97, 142, 205, 80, 222, 160, 80, 80, 17, 79, 221, 255, 255, 136, 51, 80, 79, 97, 160, 177, 205, 80, 79, 142, 97, 187, 255, 255, 255, 255, 136, 142, 160, 205, 239, 160, 114, 205, 222, 177, 85, 255, 255, 255, 255, 255, 255, 119, 142, 205, 205, 97, 239, 177, 205, 142, 238, 255, 255, 255, 255, 255, 255, 255, 85, 97, 97, 80, 97, 142, 159, 170, 255, 255, 255, 255, 255, 255, 255, 255, 238, 80, 159, 80, 205, 159, 170, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 221, 68, 222, 114, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 119, 221, 255, 255, 255, 255, 255, 255, 255, }; static uchar reloadmask[256] = { 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, }; #define stopwidth 16 #define stopheight 16 static uchar stopdata[256] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 119, 68, 159, 131, 119, 170, 255, 255, 255, 255, 255, 255, 255, 255, 221, 80, 205, 159, 159, 160, 114, 114, 119, 255, 255, 255, 255, 255, 255, 255, 255, 131, 79, 142, 177, 240, 240, 240, 142, 255, 255, 255, 255, 255, 255, 255, 255, 165, 79, 142, 222, 159, 240, 240, 165, 255, 255, 255, 255, 255, 255, 255, 255, 170, 79, 79, 114, 177, 160, 177, 153, 255, 255, 255, 255, 255, 255, 255, 255, 255, 34, 79, 114, 160, 222, 160, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 79, 159, 114, 222, 148, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 79, 79, 80, 205, 165, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 148, 80, 159, 240, 119, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 85, 148, 136, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 136, 119, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 85, 114, 80, 136, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 102, 17, 17, 170, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 102, 170, 255, 255, 255, 255, 255, 255, 255, }; static uchar stopmask[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, }; #define histwidth 16 #define histheight 16 static uchar histdata[256] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 221, 85, 221, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 170, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 204, 238, 255, 136, 79, 187, 255, 255, 255, 255, 255, 255, 255, 238, 136, 97, 80, 136, 187, 80, 136, 255, 255, 255, 255, 255, 255, 255, 255, 68, 79, 79, 119, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 170, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 79, 114, 170, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 131, 97, 79, 131, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 80, 79, 79, 68, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 131, 136, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, }; static uchar histmask[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; #define bmarkwidth 16 #define bmarkheight 16 static uchar bmarkdata[256] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 221, 221, 221, 238, 221, 153, 153, 170, 204, 255, 255, 255, 255, 255, 255, 131, 160, 160, 160, 159, 160, 239, 222, 222, 142, 238, 255, 255, 255, 255, 255, 131, 159, 239, 222, 159, 239, 222, 222, 240, 160, 238, 255, 255, 255, 255, 255, 131, 177, 97, 79, 240, 159, 114, 97, 239, 142, 238, 255, 255, 255, 255, 255, 51, 222, 205, 160, 240, 222, 239, 240, 205, 159, 238, 255, 255, 255, 255, 255, 159, 177, 240, 239, 240, 222, 222, 222, 205, 160, 221, 255, 255, 255, 255, 255, 79, 239, 239, 0, 239, 205, 142, 159, 222, 205, 204, 255, 255, 255, 255, 255, 80, 222, 240, 142, 177, 240, 240, 240, 240, 222, 170, 255, 255, 255, 255, 255, 80, 222, 240, 240, 240, 160, 142, 160, 222, 222, 153, 255, 255, 255, 255, 255, 79, 177, 205, 17, 240, 205, 240, 240, 160, 79, 153, 255, 255, 255, 255, 238, 97, 177, 222, 205, 240, 239, 240, 240, 97, 79, 68, 255, 255, 255, 255, 187, 177, 205, 222, 177, 222, 160, 222, 142, 79, 102, 238, 255, 255, 255, 255, 187, 119, 136, 136, 119, 165, 119, 119, 136, 204, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, }; static uchar bmarkmask[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; #define exitwidth 16 #define exitheight 16 static uchar exitdata[256] = { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 255, 255, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, }; static uchar exitmask[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; // indexed by IClogo, etc. static Iconinfo icons[NICONS] = { { logowidth, logoheight, logodata, nil}, { backwidth, backheight, backdata, backmask}, { fwdwidth, fwdheight, fwddata, fwdmask}, { reloadwidth, reloadheight, reloaddata, reloadmask}, { stopwidth, stopheight, stopdata, stopmask}, { histwidth, histheight, histdata, histmask}, { bmarkwidth, bmarkheight, bmarkdata, bmarkmask}, { exitwidth, exitheight, exitdata, exitmask}, }; Image* geticon(int icon, Image** pmask) { Image* im; Image* mim; Iconinfo* ii; Rectangle r; int n; if(icon < 0 || icon >= NICONS) return nil; ii = &icons[icon]; r = Rect(0, 0, ii->width, ii->height); n = ii->width * ii->height; im = allocimage(display, r, CMAP8, 0, DNofill); if(im == nil) fatalerror("can't create icon image"); loadimage(im, r, ii->data, n); if(pmask != nil) *pmask = nil; if(ii->mask != nil) { mim = allocimage(display, r, GREY8, 0, DNofill); if(mim != nil && pmask != nil) { loadimage(mim, r, ii->mask, n); *pmask = mim; } } return im; }