#include "apm.h" typedef struct { Pixmap pixmap; Pixmap mask; XpmAttributes attributes; } XpmIcon; typedef struct image_info_type { const char* filename; const int width; const int height; const int x; const int y; const int charwidth; } image_info_type; /* Assign reference numbers to all images that are loaded. */ #define SMALLFONT 0 #define BIGFONT 1 #define BATTERY_HIGH 2 #define BATTERY_LOW 3 #define BATTERY_CRITICAL 4 #define BATTERY_NONE 5 #define BATTERY_BLINK 6 #define UNPLUGGED 7 #define PLUGGED 8 #define NOCHARGING 9 #define CHARGING 10 #define DIAL_BRIGHT 11 #define DIAL_DIM 12 #define FACE 13 #define NUM_IMAGES 14 /* * An array of the filenames of all images to load (minus .xpm extention), * plus the size of the image, where to draw it on the icon, etc */ static struct image_info_type image_info[] = { {"smallfont",7,67,0,45,6}, {"bigfont",9,73,0,23,7}, {"battery_high",25,13,33,42,0}, {"battery_medium",25,13,33,42,0}, {"battery_low",25,13,33,42,0}, {"battery_none",25,13,33,42,0}, {"battery_blink",25,13,33,42,0}, {"unplugged",10,8,6,45,0}, {"plugged",10,8,6,45,0}, {"nocharging",15,9,17,43,0}, {"charging",15,9,17,43,0}, {"dial_bright",56,31,4,4,0}, {"dial_dim",56,31,4,4,0}, {"face",64,64,0,0,0}, }; #define DIAL_MULTIPLIER 0.56 /* Locations of letters in the percent remaining display. */ #define HUNDREDS_OFFSET 35 #define TENS_OFFSET 37 #define ONES_OFFSET 43 #define PERCENT_OFFSET 49 /* Locations of letters in the time remaining display. */ #define HOURS_TENS_OFFSET 15 #define HOURS_ONES_OFFSET 23 #define COLON_OFFSET 30 #define MINUTES_TENS_OFFSET 34 #define MINUTES_ONES_OFFSET 41 /* Replacement strings used by -x option */ #define STR_SUB_PERCENT "%percent%" #define STR_SUB_MINUTES "%minutes%" #define STR_SUB_SECONDS "%seconds%"