Plan 9 from Bell Labs’s /usr/web/sources/extra/i/icons.c

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#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;
}


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.