diff --git a/src/ui_sdl.c b/src/ui_sdl.c index cab7f2d..3a74b63 100644 --- a/src/ui_sdl.c +++ b/src/ui_sdl.c @@ -63,7 +63,7 @@ typedef struct sdl_keypad_t { typedef struct sdl_button_t { const char* name; short pressed; - short extra; + /* short extra; */ int code; int x, y; @@ -162,7 +162,6 @@ static sdl_button_t* buttons = 0; static sdl_button_t buttons_sx[] = { { "A", - 0, 0, 0x14, 0, @@ -183,7 +182,6 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, { "B", - 0, 0, 0x84, 50, @@ -204,7 +202,6 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, { "C", - 0, 0, 0x83, 100, @@ -225,7 +222,6 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, { "D", - 0, 0, 0x82, 150, @@ -246,7 +242,6 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, { "E", - 0, 0, 0x81, 200, @@ -267,7 +262,6 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, { "F", - 0, 0, 0x80, 250, @@ -288,21 +282,20 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, - { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, + { "MTH", 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "PRINT", 1, 0, 0, 0, 0 }, - { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, + { "PRG", 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", "I/O", 1, 0, 0, 0, 0 }, - { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, + { "CST", 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", "MODES", 1, 0, 0, 0, 0 }, - { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, + { "VAR", 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", "MEMORY", 1, 0, 0, 0, 0 }, - { "UP", 0, 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, + { "UP", 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bitmap, "K", "LIBRARY", 1, 0, 0, 0, 0 }, - { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, + { "NXT", 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, 0, 0, 0, 0 }, { "COLON", - 0, 0, 0x04, 0, @@ -322,18 +315,17 @@ static sdl_button_t buttons_sx[] = { 0, 0, 0 }, - { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, + { "STO", 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0, 0 }, - { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, + { "EVAL", 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aQ", 0, "aNUM", 0, 0, 0 }, - { "LEFT", 0, 0, 0x62, 150, 100, 36, + { "LEFT", 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bitmap, "P", "GRAPH", 0, 0, 0, 0, 0 }, - { "DOWN", 0, 0, 0x61, 200, 100, 36, + { "DOWN", 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bitmap, "Q", "REVIEW", 0, 0, 0, 0, 0 }, { "RIGHT", - 0, 0, 0x60, 250, @@ -354,17 +346,16 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, - { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, + { "SIN", 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0, 0 }, - { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, + { "COS", 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0, 0 }, - { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, + { "TAN", 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0, 0 }, - { "SQRT", 0, 0, 0x52, 150, 150, 36, + { "SQRT", 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bitmap, "V", "e", 0, "f", 0, 0, 0 }, { "POWER", - 0, 0, 0x51, 200, @@ -384,23 +375,22 @@ static sdl_button_t buttons_sx[] = { 0, 0, 0 }, - { "INV", 0, 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, + { "INV", 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bitmap, "X", "h", 0, "LN", 0, 0, 0 }, - { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, + { "ENTER", 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0, 0 }, - { "NEG", 0, 0, 0x43, 100, 200, 36, + { "NEG", 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bitmap, "Y", "EDIT", 0, "VISIT", 0, 0, 0 }, - { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, + { "EEX", 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "2D", 0, "3D", 0, 0, 0 }, - { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, + { "DEL", 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "PURGE", 0, 0, 0, 0, 0 }, - { "BS", 0, 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, + { "BS", 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bitmap, 0, "DROP", 0, "CLR", 0, 0, 0 }, { "ALPHA", - 0, 0, 0x35, 0, @@ -420,36 +410,35 @@ static sdl_button_t buttons_sx[] = { 0, 0, 0 }, - { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, + { "7", 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, "SOLVE", 1, 0, 0, 0, 0 }, - { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, + { "8", 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, "PLOT", 1, 0, 0, 0, 0 }, - { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, + { "9", 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, "ALGEBRA", 1, 0, 0, 0, 0 }, - { "DIV", 0, 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, + { "DIV", 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bitmap, 0, "( )", 0, "#", 0, 0, 0 }, - { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, + { "SHL", 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bitmap, 0, 0, 0, 0, 0, 0, 0 }, - { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, + { "4", 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, "TIME", 1, 0, 0, 0, 0 }, - { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, + { "5", 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, "STAT", 1, 0, 0, 0, 0 }, - { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, + { "6", 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, "UNITS", 1, 0, 0, 0, 0 }, - { "MUL", 0, 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, + { "MUL", 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bitmap, 0, "[ ]", 0, "_", 0, 0, 0 }, - { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, + { "SHR", 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bitmap, 0, 0, 0, 0, 0, 0, 0 }, - { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, + { "1", 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, "RAD", 0, "POLAR", 0, 0, 0 }, - { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, + { "2", 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, "STACK", 0, "ARG", 0, 0, 0 }, - { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, + { "3", 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, "CMD", 0, "MENU", 0, 0, 0 }, { "MINUS", - 0, 0, 0x10, 240, @@ -470,15 +459,15 @@ static sdl_button_t buttons_sx[] = { 0, 0 }, - { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, + { "ON", 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "ATTN", 0, 0 }, - { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, + { "0", 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "= ", 0, " a", 0, 0, 0 }, - { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, + { "PERIOD", 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, ", ", 0, " k", 0, 0, 0 }, - { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, + { "SPC", 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "l ", 0, " m", 0, 0, 0 }, - { "PLUS", 0, 0, 0x00, 240, 400, 46, + { "PLUS", 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bitmap, 0, "{ }", 0, ": :", 0, 0, 0 }, @@ -486,7 +475,6 @@ static sdl_button_t buttons_sx[] = { static sdl_button_t buttons_gx[] = { { "A", - 0, 0, 0x14, 0, @@ -507,7 +495,6 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, { "B", - 0, 0, 0x84, 50, @@ -528,7 +515,6 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, { "C", - 0, 0, 0x83, 100, @@ -549,7 +535,6 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, { "D", - 0, 0, 0x82, 150, @@ -570,7 +555,6 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, { "E", - 0, 0, 0x81, 200, @@ -591,7 +575,6 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, { "F", - 0, 0, 0x80, 250, @@ -612,21 +595,20 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, - { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, + { "MTH", 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "RAD", 0, "POLAR", 0, 0, 0 }, - { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, + { "PRG", 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", 0, 0, "CHARS", 0, 0, 0 }, - { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, + { "CST", 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", 0, 0, "MODES", 0, 0, 0 }, - { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, + { "VAR", 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", 0, 0, "MEMORY", 0, 0, 0 }, - { "UP", 0, 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, + { "UP", 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bitmap, "K", 0, 0, "STACK", 0, 0, 0 }, - { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, + { "NXT", 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, "MENU", 0, 0, 0 }, { "COLON", - 0, 0, 0x04, 0, @@ -646,18 +628,17 @@ static sdl_button_t buttons_gx[] = { 0, 0, 0 }, - { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, + { "STO", 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0, 0 }, - { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, + { "EVAL", 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aNUM", 0, "UNDO", 0, 0, 0 }, - { "LEFT", 0, 0, 0x62, 150, 100, 36, + { "LEFT", 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bitmap, "P", "PICTURE", 0, 0, 0, 0, 0 }, - { "DOWN", 0, 0, 0x61, 200, 100, 36, + { "DOWN", 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bitmap, "Q", "VIEW", 0, 0, 0, 0, 0 }, { "RIGHT", - 0, 0, 0x60, 250, @@ -678,17 +659,16 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, - { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, + { "SIN", 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0, 0 }, - { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, + { "COS", 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0, 0 }, - { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, + { "TAN", 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0, 0 }, - { "SQRT", 0, 0, 0x52, 150, 150, 36, + { "SQRT", 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bitmap, "V", "n", 0, "o", 0, 0, 0 }, { "POWER", - 0, 0, 0x51, 200, @@ -708,23 +688,22 @@ static sdl_button_t buttons_gx[] = { 0, 0, 0 }, - { "INV", 0, 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, + { "INV", 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bitmap, "X", "q", 0, "LN", 0, 0, 0 }, - { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, + { "ENTER", 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0, 0 }, - { "NEG", 0, 0, 0x43, 100, 200, 36, + { "NEG", 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bitmap, "Y", "EDIT", 0, "CMD", 0, 0, 0 }, - { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, + { "EEX", 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "PURG", 0, "ARG", 0, 0, 0 }, - { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, + { "DEL", 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "CLEAR", 0, 0, 0, 0, 0 }, - { "BS", 0, 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, + { "BS", 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bitmap, 0, "DROP", 0, 0, 0, 0, 0 }, { "ALPHA", - 0, 0, 0x35, 0, @@ -744,36 +723,35 @@ static sdl_button_t buttons_gx[] = { 0, 0, 0 }, - { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, + { "7", 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, 0, 1, "SOLVE", 0, 0, 0 }, - { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, + { "8", 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, 0, 1, "PLOT", 0, 0, 0 }, - { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, + { "9", 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, 0, 1, "SYMBOLIC", 0, 0, 0 }, - { "DIV", 0, 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, + { "DIV", 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bitmap, 0, "r ", 0, "s", 0, 0, 0 }, - { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, + { "SHL", 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bitmap, 0, 0, 0, 0, 0, 0, 0 }, - { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, + { "4", 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, 0, 1, "TIME", 0, 0, 0 }, - { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, + { "5", 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, 0, 1, "STAT", 0, 0, 0 }, - { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, + { "6", 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, 0, 1, "UNITS", 0, 0, 0 }, - { "MUL", 0, 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, + { "MUL", 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bitmap, 0, "t ", 0, "u", 0, 0, 0 }, - { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, + { "SHR", 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bitmap, 0, 0, 1, " ", 0, 0, 0 }, - { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, + { "1", 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, 0, 1, "I/O", 0, 0, 0 }, - { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, + { "2", 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, 0, 1, "LIBRARY", 0, 0, 0 }, - { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, + { "3", 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, 0, 1, "EQ LIB", 0, 0, 0 }, { "MINUS", - 0, 0, 0x10, 240, @@ -794,15 +772,15 @@ static sdl_button_t buttons_gx[] = { 0, 0 }, - { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, + { "ON", 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "CANCEL", 0, 0 }, - { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, + { "0", 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "\004 ", 0, "\003", 0, 0, 0 }, - { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, + { "PERIOD", 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, "\002 ", 0, "\001", 0, 0, 0 }, - { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, + { "SPC", 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "\005 ", 0, "z", 0, 0, 0 }, - { "PLUS", 0, 0, 0x00, 240, 400, 46, + { "PLUS", 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bitmap, 0, "x ", 0, "y", 0, 0, 0 }, diff --git a/src/ui_text.c b/src/ui_text.c index bd02450..82fc846 100644 --- a/src/ui_text.c +++ b/src/ui_text.c @@ -30,16 +30,18 @@ typedef struct tui_ann_struct_t { typedef struct tui_button_t { const char* name; short pressed; - short extra; int code; - int x, y; - unsigned int w, h; + int x; + int y; + unsigned int w; + unsigned int h; int lc; const char* label; short font_size; - unsigned int lw, lh; + unsigned int lw; + unsigned int lh; unsigned char* lb; const char* letter; @@ -65,221 +67,219 @@ static tui_ann_struct_t ann_tbl[] = { static tui_button_t* buttons = 0; static tui_button_t buttons_sx[] = { - { "A", 0, 0, 0x14, 0, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "A", 0, 0x14, 0, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "A", 0, 0, 0, 0 }, - { "B", 0, 0, 0x84, 50, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "B", 0, 0x84, 50, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "B", 0, 0, 0, 0 }, - { "C", 0, 0, 0x83, 100, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "C", 0, 0x83, 100, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "C", 0, 0, 0, 0 }, - { "D", 0, 0, 0x82, 150, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "D", 0, 0x82, 150, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "D", 0, 0, 0, 0 }, - { "E", 0, 0, 0x81, 200, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "E", 0, 0x81, 200, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "E", 0, 0, 0, 0 }, - { "F", 0, 0, 0x80, 250, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "F", 0, 0x80, 250, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "F", 0, 0, 0, 0 }, - { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "PRINT", + { "MTH", 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "PRINT", 1, 0, 0 }, - { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", "I/O", + { "PRG", 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", "I/O", 1, 0, 0 }, - { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", + { "CST", 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", "MODES", 1, 0, 0 }, - { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", + { "VAR", 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", "MEMORY", 1, 0, 0 }, - { "UP", 0, 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, + { "UP", 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bitmap, "K", "LIBRARY", 1, 0, 0 }, - { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", + { "NXT", 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, 0, 0 }, - { "COLON", 0, 0, 0x04, 0, 100, 36, 26, WHITE, 0, 0, colon_width, + { "COLON", 0, 0x04, 0, 100, 36, 26, WHITE, 0, 0, colon_width, colon_height, colon_bitmap, "M", "UP", 0, "HOME", 0 }, - { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", + { "STO", 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0 }, - { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", + { "EVAL", 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aQ", 0, "aNUM", 0 }, - { "LEFT", 0, 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, + { "LEFT", 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bitmap, "P", "GRAPH", 0, 0, 0 }, - { "DOWN", 0, 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, + { "DOWN", 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bitmap, "Q", "REVIEW", 0, 0, 0 }, - { "RIGHT", 0, 0, 0x60, 250, 100, 36, 26, WHITE, 0, 0, right_width, + { "RIGHT", 0, 0x60, 250, 100, 36, 26, WHITE, 0, 0, right_width, right_height, right_bitmap, "R", "SWAP", 0, 0, 0 }, - { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", + { "SIN", 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0 }, - { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", + { "COS", 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0 }, - { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", + { "TAN", 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0 }, - { "SQRT", 0, 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, + { "SQRT", 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bitmap, "V", "e", 0, "f", 0 }, - { "POWER", 0, 0, 0x51, 200, 150, 36, 26, WHITE, 0, 0, power_width, + { "POWER", 0, 0x51, 200, 150, 36, 26, WHITE, 0, 0, power_width, power_height, power_bitmap, "W", "g", 0, "LOG", 0 }, - { "INV", 0, 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, + { "INV", 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bitmap, "X", "h", 0, "LN", 0 }, - { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, + { "ENTER", 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0 }, - { "NEG", 0, 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, + { "NEG", 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bitmap, "Y", "EDIT", 0, "VISIT", 0 }, - { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "2D", + { "EEX", 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "2D", 0, "3D", 0 }, - { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "PURGE", + { "DEL", 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "PURGE", 0, 0, 0 }, - { "BS", 0, 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, + { "BS", 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bitmap, 0, "DROP", 0, "CLR", 0 }, - { "ALPHA", 0, 0, 0x35, 0, 250, 36, 26, WHITE, 0, 0, alpha_width, + { "ALPHA", 0, 0x35, 0, 250, 36, 26, WHITE, 0, 0, alpha_width, alpha_height, alpha_bitmap, 0, "USR", 0, "ENTRY", 0 }, - { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, "SOLVE", 1, + { "7", 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, "SOLVE", 1, 0, 0 }, - { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, "PLOT", 1, + { "8", 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, "PLOT", 1, 0, 0 }, - { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, "ALGEBRA", + { "9", 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, "ALGEBRA", 1, 0, 0 }, - { "DIV", 0, 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, + { "DIV", 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bitmap, 0, "( )", 0, "#", 0 }, - { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, + { "SHL", 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bitmap, 0, 0, 0, 0, 0 }, - { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, "TIME", 1, 0, + { "4", 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, "TIME", 1, 0, 0 }, - { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, "STAT", 1, + { "5", 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, "STAT", 1, 0, 0 }, - { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, "UNITS", 1, + { "6", 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, "UNITS", 1, 0, 0 }, - { "MUL", 0, 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, + { "MUL", 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bitmap, 0, "[ ]", 0, "_", 0 }, - { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, + { "SHR", 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bitmap, 0, 0, 0, 0, 0 }, - { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, "RAD", 0, + { "1", 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, "RAD", 0, "POLAR", 0 }, - { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, "STACK", 0, + { "2", 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, "STACK", 0, "ARG", 0 }, - { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, "CMD", 0, + { "3", 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, "CMD", 0, "MENU", 0 }, - { "MINUS", 0, 0, 0x10, 240, 350, 46, 26, WHITE, 0, 0, minus_width, + { "MINUS", 0, 0x10, 240, 350, 46, 26, WHITE, 0, 0, minus_width, minus_height, minus_bitmap, 0, "i", 0, "j", 0 }, - { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, + { "ON", 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "ATTN" }, - { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "= ", 0, + { "0", 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "= ", 0, " a", 0 }, - { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, ", ", + { "PERIOD", 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, ", ", 0, " k", 0 }, - { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "l ", 0, + { "SPC", 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "l ", 0, " m", 0 }, - { "PLUS", 0, 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, - plus_height, plus_bitmap, 0, "{ }", 0, ": :", 0 }, - - { 0 } }; + { "PLUS", 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, + plus_height, plus_bitmap, 0, "{ }", 0, ": :", 0 } }; static tui_button_t buttons_gx[] = { - { "A", 0, 0, 0x14, 0, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "A", 0, 0x14, 0, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "A", 0, 0, 0, 0 }, - { "B", 0, 0, 0x84, 50, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "B", 0, 0x84, 50, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "B", 0, 0, 0, 0 }, - { "C", 0, 0, 0x83, 100, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "C", 0, 0x83, 100, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "C", 0, 0, 0, 0 }, - { "D", 0, 0, 0x82, 150, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "D", 0, 0x82, 150, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "D", 0, 0, 0, 0 }, - { "E", 0, 0, 0x81, 200, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "E", 0, 0x81, 200, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "E", 0, 0, 0, 0 }, - { "F", 0, 0, 0x80, 250, 0, 36, 23, WHITE, 0, 0, menu_label_width, + { "F", 0, 0x80, 250, 0, 36, 23, WHITE, 0, 0, menu_label_width, menu_label_height, menu_label_bitmap, "F", 0, 0, 0, 0 }, - { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "RAD", 0, + { "MTH", 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "RAD", 0, "POLAR", 0 }, - { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", 0, 0, + { "PRG", 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", 0, 0, "CHARS", 0 }, - { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", 0, 0, + { "CST", 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", 0, 0, "MODES", 0 }, - { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", 0, 0, + { "VAR", 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", 0, 0, "MEMORY", 0 }, - { "UP", 0, 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, + { "UP", 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bitmap, "K", 0, 0, "STACK", 0 }, - { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", + { "NXT", 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, "MENU", 0 }, - { "COLON", 0, 0, 0x04, 0, 100, 36, 26, WHITE, 0, 0, colon_width, + { "COLON", 0, 0x04, 0, 100, 36, 26, WHITE, 0, 0, colon_width, colon_height, colon_bitmap, "M", "UP", 0, "HOME", 0 }, - { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", + { "STO", 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0 }, - { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", + { "EVAL", 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aNUM", 0, "UNDO", 0 }, - { "LEFT", 0, 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, + { "LEFT", 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bitmap, "P", "PICTURE", 0, 0, 0 }, - { "DOWN", 0, 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, + { "DOWN", 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bitmap, "Q", "VIEW", 0, 0, 0 }, - { "RIGHT", 0, 0, 0x60, 250, 100, 36, 26, WHITE, 0, 0, right_width, + { "RIGHT", 0, 0x60, 250, 100, 36, 26, WHITE, 0, 0, right_width, right_height, right_bitmap, "R", "SWAP", 0, 0, 0 }, - { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", + { "SIN", 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0 }, - { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", + { "COS", 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0 }, - { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", + { "TAN", 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0 }, - { "SQRT", 0, 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, + { "SQRT", 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bitmap, "V", "n", 0, "o", 0 }, - { "POWER", 0, 0, 0x51, 200, 150, 36, 26, WHITE, 0, 0, power_width, + { "POWER", 0, 0x51, 200, 150, 36, 26, WHITE, 0, 0, power_width, power_height, power_bitmap, "W", "p", 0, "LOG", 0 }, - { "INV", 0, 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, + { "INV", 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bitmap, "X", "q", 0, "LN", 0 }, - { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, + { "ENTER", 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0 }, - { "NEG", 0, 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, + { "NEG", 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bitmap, "Y", "EDIT", 0, "CMD", 0 }, - { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", + { "EEX", 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "PURG", 0, "ARG", 0 }, - { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "CLEAR", + { "DEL", 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "CLEAR", 0, 0, 0 }, - { "BS", 0, 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, + { "BS", 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bitmap, 0, "DROP", 0, 0, 0 }, - { "ALPHA", 0, 0, 0x35, 0, 250, 36, 26, WHITE, 0, 0, alpha_width, + { "ALPHA", 0, 0x35, 0, 250, 36, 26, WHITE, 0, 0, alpha_width, alpha_height, alpha_bitmap, 0, "USER", 0, "ENTRY", 0 }, - { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, 0, 1, + { "7", 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, 0, 1, "SOLVE", 0 }, - { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, 0, 1, + { "8", 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, 0, 1, "PLOT", 0 }, - { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, 0, 1, + { "9", 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, 0, 1, "SYMBOLIC", 0 }, - { "DIV", 0, 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, + { "DIV", 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bitmap, 0, "r ", 0, "s", 0 }, - { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, + { "SHL", 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bitmap, 0, 0, 0, 0, 0 }, - { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, 0, 1, "TIME", + { "4", 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, 0, 1, "TIME", 0 }, - { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, 0, 1, + { "5", 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, 0, 1, "STAT", 0 }, - { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, 0, 1, + { "6", 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, 0, 1, "UNITS", 0 }, - { "MUL", 0, 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, + { "MUL", 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bitmap, 0, "t ", 0, "u", 0 }, - { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, + { "SHR", 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bitmap, 0, 0, 1, " ", 0 }, - { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, 0, 1, "I/O", + { "1", 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, 0, 1, "I/O", 0 }, - { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, 0, 1, + { "2", 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, 0, 1, "LIBRARY", 0 }, - { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, 0, 1, + { "3", 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, 0, 1, "EQ LIB", 0 }, - { "MINUS", 0, 0, 0x10, 240, 350, 46, 26, WHITE, 0, 0, minus_width, + { "MINUS", 0, 0x10, 240, 350, 46, 26, WHITE, 0, 0, minus_width, minus_height, minus_bitmap, 0, "v ", 0, "w", 0 }, - { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, + { "ON", 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "CANCEL" }, - { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "\004 ", 0, + { "0", 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "\004 ", 0, "\003", 0 }, - { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, + { "PERIOD", 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, "\002 ", 0, "\001", 0 }, - { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "\005 ", + { "SPC", 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "\005 ", 0, "z", 0 }, - { "PLUS", 0, 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, + { "PLUS", 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bitmap, 0, "x ", 0, "y", 0 }, { 0 } }; diff --git a/src/ui_x11.c b/src/ui_x11.c index d60c5aa..bf9b417 100644 --- a/src/ui_x11.c +++ b/src/ui_x11.c @@ -263,7 +263,6 @@ typedef struct x11_keypad_t { typedef struct x11_button_t { const char* name; short pressed; - short extra; int code; int x, y; @@ -610,7 +609,6 @@ static x11_button_t* buttons = 0; static x11_button_t buttons_sx[] = { { "A", - 0, 0, 0x14, 0, @@ -632,7 +630,6 @@ static x11_button_t buttons_sx[] = { 0, 0 }, { "B", - 0, 0, 0x84, 50, @@ -654,7 +651,6 @@ static x11_button_t buttons_sx[] = { 0, 0 }, { "C", - 0, 0, 0x83, 100, @@ -676,7 +672,6 @@ static x11_button_t buttons_sx[] = { 0, 0 }, { "D", - 0, 0, 0x82, 150, @@ -698,7 +693,6 @@ static x11_button_t buttons_sx[] = { 0, 0 }, { "E", - 0, 0, 0x81, 200, @@ -720,7 +714,6 @@ static x11_button_t buttons_sx[] = { 0, 0 }, { "F", - 0, 0, 0x80, 250, @@ -742,22 +735,21 @@ static x11_button_t buttons_sx[] = { 0, 0 }, - { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, + { "MTH", 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "PRINT", 1, 0, 0, 0, 0, 0 }, - { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, + { "PRG", 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", "I/O", 1, 0, 0, 0, 0, 0 }, - { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, + { "CST", 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", "MODES", 1, 0, 0, 0, 0, 0 }, - { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, + { "VAR", 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", "MEMORY", 1, 0, 0, 0, 0, 0 }, - { "UP", 0, 0, 0x71, 200, 50, 36, 26, + { "UP", 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bitmap, "K", "LIBRARY", 1, 0, 0, 0, 0, 0 }, - { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, + { "NXT", 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, 0, 0, 0, 0, 0 }, { "COLON", - 0, 0, 0x04, 0, @@ -778,20 +770,19 @@ static x11_button_t buttons_sx[] = { 0, 0, 0 }, - { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, + { "STO", 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0, 0, 0 }, - { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, + { "EVAL", 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aQ", 0, "aNUM", 0, 0, 0, 0 }, - { "LEFT", 0, 0, 0x62, 150, 100, + { "LEFT", 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bitmap, "P", "GRAPH", 0, 0, 0, 0, 0, 0 }, - { "DOWN", 0, 0, 0x61, 200, 100, + { "DOWN", 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bitmap, "Q", "REVIEW", 0, 0, 0, 0, 0, 0 }, { "RIGHT", - 0, 0, 0x60, 250, @@ -813,17 +804,16 @@ static x11_button_t buttons_sx[] = { 0, 0 }, - { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, + { "SIN", 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0, 0, 0 }, - { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, + { "COS", 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0, 0, 0 }, - { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, + { "TAN", 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0, 0, 0 }, - { "SQRT", 0, 0, 0x52, 150, 150, 36, 26, WHITE, 0, + { "SQRT", 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bitmap, "V", "e", 0, "f", 0, 0, 0, 0 }, { "POWER", - 0, 0, 0x51, 200, @@ -844,25 +834,24 @@ static x11_button_t buttons_sx[] = { 0, 0, 0 }, - { "INV", 0, 0, 0x50, 250, 150, 36, 26, + { "INV", 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bitmap, "X", "h", 0, "LN", 0, 0, 0, 0 }, - { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, + { "ENTER", 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0, 0, 0 }, - { "NEG", 0, 0, 0x43, 100, 200, 36, 26, + { "NEG", 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bitmap, "Y", "EDIT", 0, "VISIT", 0, 0, 0, 0 }, - { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, + { "EEX", 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "2D", 0, "3D", 0, 0, 0, 0 }, - { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, + { "DEL", 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "PURGE", 0, 0, 0, 0, 0, 0 }, - { "BS", 0, 0, 0x40, 250, 200, 36, 26, + { "BS", 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bitmap, 0, "DROP", 0, "CLR", 0, 0, 0, 0 }, { "ALPHA", - 0, 0, 0x35, 0, @@ -883,38 +872,37 @@ static x11_button_t buttons_sx[] = { 0, 0, 0 }, - { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, + { "7", 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, "SOLVE", 1, 0, 0, 0, 0, 0 }, - { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, + { "8", 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, "PLOT", 1, 0, 0, 0, 0, 0 }, - { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, + { "9", 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, "ALGEBRA", 1, 0, 0, 0, 0, 0 }, - { "DIV", 0, 0, 0x30, 240, 250, 46, 26, + { "DIV", 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bitmap, 0, "( )", 0, "#", 0, 0, 0, 0 }, - { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, + { "SHL", 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bitmap, 0, 0, 0, 0, 0, 0, 0, 0 }, - { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, + { "4", 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, "TIME", 1, 0, 0, 0, 0, 0 }, - { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, + { "5", 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, "STAT", 1, 0, 0, 0, 0, 0 }, - { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, + { "6", 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, "UNITS", 1, 0, 0, 0, 0, 0 }, - { "MUL", 0, 0, 0x20, 240, 300, 46, 26, + { "MUL", 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bitmap, 0, "[ ]", 0, "_", 0, 0, 0, 0 }, - { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, + { "SHR", 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bitmap, 0, 0, 0, 0, 0, 0, 0, 0 }, - { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, + { "1", 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, "RAD", 0, "POLAR", 0, 0, 0, 0 }, - { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, + { "2", 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, "STACK", 0, "ARG", 0, 0, 0, 0 }, - { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, + { "3", 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, "CMD", 0, "MENU", 0, 0, 0, 0 }, { "MINUS", - 0, 0, 0x10, 240, @@ -936,15 +924,15 @@ static x11_button_t buttons_sx[] = { 0, 0 }, - { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, + { "ON", 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "ATTN", 0, 0, 0 }, - { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, + { "0", 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "= ", 0, " a", 0, 0, 0, 0 }, - { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, + { "PERIOD", 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, ", ", 0, " k", 0, 0, 0, 0 }, - { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, + { "SPC", 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "l ", 0, " m", 0, 0, 0, 0 }, - { "PLUS", 0, 0, 0x00, 240, 400, + { "PLUS", 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bitmap, 0, "{ }", 0, ": :", 0, 0, 0, 0 }, @@ -953,7 +941,6 @@ static x11_button_t buttons_sx[] = { static x11_button_t buttons_gx[] = { { "A", - 0, 0, 0x14, 0, @@ -975,7 +962,6 @@ static x11_button_t buttons_gx[] = { 0, 0 }, { "B", - 0, 0, 0x84, 50, @@ -997,7 +983,6 @@ static x11_button_t buttons_gx[] = { 0, 0 }, { "C", - 0, 0, 0x83, 100, @@ -1019,7 +1004,6 @@ static x11_button_t buttons_gx[] = { 0, 0 }, { "D", - 0, 0, 0x82, 150, @@ -1041,7 +1025,6 @@ static x11_button_t buttons_gx[] = { 0, 0 }, { "E", - 0, 0, 0x81, 200, @@ -1063,7 +1046,6 @@ static x11_button_t buttons_gx[] = { 0, 0 }, { "F", - 0, 0, 0x80, 250, @@ -1085,21 +1067,20 @@ static x11_button_t buttons_gx[] = { 0, 0 }, - { "MTH", 0, 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, + { "MTH", 0, 0x24, 0, 50, 36, 26, WHITE, "MTH", 0, 0, 0, 0, "G", "RAD", 0, "POLAR", 0, 0, 0, 0 }, - { "PRG", 0, 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, + { "PRG", 0, 0x74, 50, 50, 36, 26, WHITE, "PRG", 0, 0, 0, 0, "H", 0, 0, "CHARS", 0, 0, 0, 0 }, - { "CST", 0, 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, + { "CST", 0, 0x73, 100, 50, 36, 26, WHITE, "CST", 0, 0, 0, 0, "I", 0, 0, "MODES", 0, 0, 0, 0 }, - { "VAR", 0, 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, + { "VAR", 0, 0x72, 150, 50, 36, 26, WHITE, "VAR", 0, 0, 0, 0, "J", 0, 0, "MEMORY", 0, 0, 0, 0 }, - { "UP", 0, 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, + { "UP", 0, 0x71, 200, 50, 36, 26, WHITE, 0, 0, up_width, up_height, up_bitmap, "K", 0, 0, "STACK", 0, 0, 0, 0 }, - { "NXT", 0, 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, + { "NXT", 0, 0x70, 250, 50, 36, 26, WHITE, "NXT", 0, 0, 0, 0, "L", "PREV", 0, "MENU", 0, 0, 0, 0 }, { "COLON", - 0, 0, 0x04, 0, @@ -1120,20 +1101,19 @@ static x11_button_t buttons_gx[] = { 0, 0, 0 }, - { "STO", 0, 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, + { "STO", 0, 0x64, 50, 100, 36, 26, WHITE, "STO", 0, 0, 0, 0, "N", "DEF", 0, "RCL", 0, 0, 0, 0 }, - { "EVAL", 0, 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, + { "EVAL", 0, 0x63, 100, 100, 36, 26, WHITE, "EVAL", 0, 0, 0, 0, "O", "aNUM", 0, "UNDO", 0, 0, 0, 0 }, - { "LEFT", 0, 0, 0x62, 150, 100, + { "LEFT", 0, 0x62, 150, 100, 36, 26, WHITE, 0, 0, left_width, left_height, left_bitmap, "P", "PICTURE", 0, 0, 0, 0, 0, 0 }, - { "DOWN", 0, 0, 0x61, 200, 100, + { "DOWN", 0, 0x61, 200, 100, 36, 26, WHITE, 0, 0, down_width, down_height, down_bitmap, "Q", "VIEW", 0, 0, 0, 0, 0, 0 }, { "RIGHT", - 0, 0, 0x60, 250, @@ -1155,17 +1135,16 @@ static x11_button_t buttons_gx[] = { 0, 0 }, - { "SIN", 0, 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, + { "SIN", 0, 0x34, 0, 150, 36, 26, WHITE, "SIN", 0, 0, 0, 0, "S", "ASIN", 0, "b", 0, 0, 0, 0 }, - { "COS", 0, 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, + { "COS", 0, 0x54, 50, 150, 36, 26, WHITE, "COS", 0, 0, 0, 0, "T", "ACOS", 0, "c", 0, 0, 0, 0 }, - { "TAN", 0, 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, + { "TAN", 0, 0x53, 100, 150, 36, 26, WHITE, "TAN", 0, 0, 0, 0, "U", "ATAN", 0, "d", 0, 0, 0, 0 }, - { "SQRT", 0, 0, 0x52, 150, 150, 36, 26, WHITE, 0, + { "SQRT", 0, 0x52, 150, 150, 36, 26, WHITE, 0, 0, sqrt_width, sqrt_height, sqrt_bitmap, "V", "n", 0, "o", 0, 0, 0, 0 }, { "POWER", - 0, 0, 0x51, 200, @@ -1186,24 +1165,23 @@ static x11_button_t buttons_gx[] = { 0, 0, 0 }, - { "INV", 0, 0, 0x50, 250, 150, 36, 26, + { "INV", 0, 0x50, 250, 150, 36, 26, WHITE, 0, 0, inv_width, inv_height, inv_bitmap, "X", "q", 0, "LN", 0, 0, 0, 0 }, - { "ENTER", 0, 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, + { "ENTER", 0, 0x44, 0, 200, 86, 26, WHITE, "ENTER", 2, 0, 0, 0, 0, "EQUATION", 0, "MATRIX", 0, 0, 0, 0 }, - { "NEG", 0, 0, 0x43, 100, 200, 36, 26, + { "NEG", 0, 0x43, 100, 200, 36, 26, WHITE, 0, 0, neg_width, neg_height, neg_bitmap, "Y", "EDIT", 0, "CMD", 0, 0, 0, 0 }, - { "EEX", 0, 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, + { "EEX", 0, 0x42, 150, 200, 36, 26, WHITE, "EEX", 0, 0, 0, 0, "Z", "PURG", 0, "ARG", 0, 0, 0, 0 }, - { "DEL", 0, 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, + { "DEL", 0, 0x41, 200, 200, 36, 26, WHITE, "DEL", 0, 0, 0, 0, 0, "CLEAR", 0, 0, 0, 0, 0, 0 }, - { "BS", 0, 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, + { "BS", 0, 0x40, 250, 200, 36, 26, WHITE, 0, 0, bs_width, bs_height, bs_bitmap, 0, "DROP", 0, 0, 0, 0, 0, 0 }, { "ALPHA", - 0, 0, 0x35, 0, @@ -1224,36 +1202,35 @@ static x11_button_t buttons_gx[] = { 0, 0, 0 }, - { "7", 0, 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, + { "7", 0, 0x33, 60, 250, 46, 26, WHITE, "7", 1, 0, 0, 0, 0, 0, 1, "SOLVE", 0, 0, 0, 0 }, - { "8", 0, 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, + { "8", 0, 0x32, 120, 250, 46, 26, WHITE, "8", 1, 0, 0, 0, 0, 0, 1, "PLOT", 0, 0, 0, 0 }, - { "9", 0, 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, + { "9", 0, 0x31, 180, 250, 46, 26, WHITE, "9", 1, 0, 0, 0, 0, 0, 1, "SYMBOLIC", 0, 0, 0, 0 }, - { "DIV", 0, 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, + { "DIV", 0, 0x30, 240, 250, 46, 26, WHITE, 0, 0, div_width, div_height, div_bitmap, 0, "r ", 0, "s", 0, 0, 0, 0 }, - { "SHL", 0, 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, + { "SHL", 0, 0x25, 0, 300, 36, 26, LEFT, 0, 0, shl_width, shl_height, shl_bitmap, 0, 0, 0, 0, 0, 0, 0, 0 }, - { "4", 0, 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, + { "4", 0, 0x23, 60, 300, 46, 26, WHITE, "4", 1, 0, 0, 0, 0, 0, 1, "TIME", 0, 0, 0, 0 }, - { "5", 0, 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, + { "5", 0, 0x22, 120, 300, 46, 26, WHITE, "5", 1, 0, 0, 0, 0, 0, 1, "STAT", 0, 0, 0, 0 }, - { "6", 0, 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, + { "6", 0, 0x21, 180, 300, 46, 26, WHITE, "6", 1, 0, 0, 0, 0, 0, 1, "UNITS", 0, 0, 0, 0 }, - { "MUL", 0, 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, + { "MUL", 0, 0x20, 240, 300, 46, 26, WHITE, 0, 0, mul_width, mul_height, mul_bitmap, 0, "t ", 0, "u", 0, 0, 0, 0 }, - { "SHR", 0, 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, + { "SHR", 0, 0x15, 0, 350, 36, 26, RIGHT, 0, 0, shr_width, shr_height, shr_bitmap, 0, 0, 1, " ", 0, 0, 0, 0 }, - { "1", 0, 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, + { "1", 0, 0x13, 60, 350, 46, 26, WHITE, "1", 1, 0, 0, 0, 0, 0, 1, "I/O", 0, 0, 0, 0 }, - { "2", 0, 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, + { "2", 0, 0x12, 120, 350, 46, 26, WHITE, "2", 1, 0, 0, 0, 0, 0, 1, "LIBRARY", 0, 0, 0, 0 }, - { "3", 0, 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, + { "3", 0, 0x11, 180, 350, 46, 26, WHITE, "3", 1, 0, 0, 0, 0, 0, 1, "EQ LIB", 0, 0, 0, 0 }, { "MINUS", - 0, 0, 0x10, 240, @@ -1275,15 +1252,15 @@ static x11_button_t buttons_gx[] = { 0, 0 }, - { "ON", 0, 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, + { "ON", 0, 0x8000, 0, 400, 36, 26, WHITE, "ON", 0, 0, 0, 0, 0, "CONT", 0, "OFF", "CANCEL", 0, 0, 0 }, - { "0", 0, 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, + { "0", 0, 0x03, 60, 400, 46, 26, WHITE, "0", 1, 0, 0, 0, 0, "\004 ", 0, "\003", 0, 0, 0, 0 }, - { "PERIOD", 0, 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, + { "PERIOD", 0, 0x02, 120, 400, 46, 26, WHITE, ".", 1, 0, 0, 0, 0, "\002 ", 0, "\001", 0, 0, 0, 0 }, - { "SPC", 0, 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, + { "SPC", 0, 0x01, 180, 400, 46, 26, WHITE, "SPC", 0, 0, 0, 0, 0, "\005 ", 0, "z", 0, 0, 0, 0 }, - { "PLUS", 0, 0, 0x00, 240, 400, + { "PLUS", 0, 0x00, 240, 400, 46, 26, WHITE, 0, 0, plus_width, plus_height, plus_bitmap, 0, "x ", 0, "y", 0, 0, 0, 0 },