From 1eb4ac580ffd6f020c9c43a709615b82ca2bd3ce Mon Sep 17 00:00:00 2001 From: Gwenhael Le Moine Date: Wed, 12 Jun 2024 13:40:53 +0200 Subject: [PATCH] factorize using opt_gx and sdl surfaces on/off --- src/ui_inner.h | 2 + src/ui_sdl.c | 420 ++++++++++++++++++++++++------------------------- src/ui_text.c | 9 +- src/ui_x11.c | 346 ++++++++++++++++++++-------------------- 4 files changed, 381 insertions(+), 396 deletions(-) diff --git a/src/ui_inner.h b/src/ui_inner.h index 173f69c..eaf2dda 100644 --- a/src/ui_inner.h +++ b/src/ui_inner.h @@ -79,9 +79,11 @@ extern letter_t small_font[ 128 ]; extern color_t colors_sx[ NB_COLORS ]; extern color_t colors_gx[ NB_COLORS ]; +#define COLORS ( opt_gx ? colors_gx : colors_sx ) extern button_t buttons_sx[ NB_KEYS ]; extern button_t buttons_gx[ NB_KEYS ]; +#define BUTTONS ( opt_gx ? buttons_gx : buttons_sx ) extern ann_struct_t ann_tbl[ NB_ANNUNCIATORS ]; diff --git a/src/ui_sdl.c b/src/ui_sdl.c index 507a947..9711aaa 100644 --- a/src/ui_sdl.c +++ b/src/ui_sdl.c @@ -17,8 +17,8 @@ #include "ui.h" #include "ui_inner.h" -#define _KEYBOARD_HEIGHT ( buttons_gx[ LAST_HPKEY ].y + buttons_gx[ LAST_HPKEY ].h ) -#define _KEYBOARD_WIDTH ( buttons_gx[ LAST_HPKEY ].x + buttons_gx[ LAST_HPKEY ].w ) +#define _KEYBOARD_HEIGHT ( BUTTONS[ LAST_HPKEY ].y + BUTTONS[ LAST_HPKEY ].h ) +#define _KEYBOARD_WIDTH ( BUTTONS[ LAST_HPKEY ].x + BUTTONS[ LAST_HPKEY ].w ) #define _TOP_SKIP 65 #define _SIDE_SKIP 20 @@ -39,15 +39,10 @@ /***********/ /* typedef */ /***********/ -typedef struct sdl_button_t { - SDL_Surface* surfaceup; - SDL_Surface* surfacedown; -} sdl_button_t; - -typedef struct sdl_ann_struct_t { +typedef struct sdl_surfaces_on_off_struct_t { SDL_Surface* surfaceon; SDL_Surface* surfaceoff; -} sdl_ann_struct_t; +} sdl_surfaces_on_off_struct_t; /*************/ /* variables */ @@ -58,68 +53,67 @@ static unsigned KEYBOARD_HEIGHT, KEYBOARD_WIDTH, TOP_SKIP, SIDE_SKIP, BOTTOM_SKI static unsigned int ARGBColors[ NB_COLORS ]; -static button_t* buttons = 0; -static sdl_button_t sdl_buttons[ NB_KEYS ] = { - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, +static sdl_surfaces_on_off_struct_t sdl_buttons[ NB_KEYS ] = { + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, - {.surfaceup = 0, .surfacedown = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, + {.surfaceon = 0, .surfaceoff = 0}, }; -static sdl_ann_struct_t sdl_ann_tbl[] = { +static sdl_surfaces_on_off_struct_t sdl_ann_tbl[] = { {.surfaceon = 0, .surfaceoff = 0}, {.surfaceon = 0, .surfaceoff = 0}, {.surfaceon = 0, .surfaceoff = 0}, @@ -497,7 +491,7 @@ static void _draw_bezel( unsigned int cut, unsigned int offset_y, int keypad_wid lineColor( sdlwindow, 0, keypad_height - 2, 0, cut, bgra2argb( ARGBColors[ PAD_BOT ] ) ); lineColor( sdlwindow, 1, keypad_height - 3, 1, cut, bgra2argb( ARGBColors[ PAD_BOT ] ) ); - // lower the menu buttons + // lower the menu BUTTONS // bottom lines lineColor( sdlwindow, 3, keypad_height - 3, keypad_width - 3, keypad_height - 3, bgra2argb( ARGBColors[ PAD_TOP ] ) ); @@ -697,159 +691,159 @@ static void __create_buttons( void ) for ( i = FIRST_HPKEY; i <= LAST_HPKEY; i++ ) { // Create surfaces for each button - if ( !sdl_buttons[ i ].surfaceup ) - sdl_buttons[ i ].surfaceup = - SDL_CreateRGBSurface( SDL_SWSURFACE, buttons[ i ].w, buttons[ i ].h, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 ); + if ( !sdl_buttons[ i ].surfaceon ) + sdl_buttons[ i ].surfaceon = + SDL_CreateRGBSurface( SDL_SWSURFACE, BUTTONS[ i ].w, BUTTONS[ i ].h, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 ); - if ( !sdl_buttons[ i ].surfacedown ) - sdl_buttons[ i ].surfacedown = - SDL_CreateRGBSurface( SDL_SWSURFACE, buttons[ i ].w, buttons[ i ].h, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 ); + if ( !sdl_buttons[ i ].surfaceoff ) + sdl_buttons[ i ].surfaceoff = + SDL_CreateRGBSurface( SDL_SWSURFACE, BUTTONS[ i ].w, BUTTONS[ i ].h, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 ); // Use alpha channel pixel = 0x00000000; // pixel = 0xffff0000; // Fill the button and outline - SDL_FillRect( sdl_buttons[ i ].surfaceup, 0, pixel ); - SDL_FillRect( sdl_buttons[ i ].surfacedown, 0, pixel ); + SDL_FillRect( sdl_buttons[ i ].surfaceon, 0, pixel ); + SDL_FillRect( sdl_buttons[ i ].surfaceoff, 0, pixel ); SDL_Rect rect; rect.x = 1; rect.y = 1; - rect.w = buttons[ i ].w - 2; - rect.h = buttons[ i ].h - 2; - SDL_FillRect( sdl_buttons[ i ].surfaceup, &rect, ARGBColors[ BUTTON ] ); - SDL_FillRect( sdl_buttons[ i ].surfacedown, &rect, ARGBColors[ BUTTON ] ); + rect.w = BUTTONS[ i ].w - 2; + rect.h = BUTTONS[ i ].h - 2; + SDL_FillRect( sdl_buttons[ i ].surfaceon, &rect, ARGBColors[ BUTTON ] ); + SDL_FillRect( sdl_buttons[ i ].surfaceoff, &rect, ARGBColors[ BUTTON ] ); // draw the released button // draw edge of button - lineColor( sdl_buttons[ i ].surfaceup, 1, buttons[ i ].h - 2, 1, 1, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 2, buttons[ i ].h - 3, 2, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 3, buttons[ i ].h - 4, 3, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 1, BUTTONS[ i ].h - 2, 1, 1, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 2, BUTTONS[ i ].h - 3, 2, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 3, BUTTONS[ i ].h - 4, 3, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 1, 1, buttons[ i ].w - 2, 1, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 2, 2, buttons[ i ].w - 3, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 3, 3, buttons[ i ].w - 4, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 4, 4, buttons[ i ].w - 5, 4, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 1, 1, BUTTONS[ i ].w - 2, 1, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 2, 2, BUTTONS[ i ].w - 3, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 3, 3, BUTTONS[ i ].w - 4, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 4, 4, BUTTONS[ i ].w - 5, 4, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - pixelColor( sdl_buttons[ i ].surfaceup, 4, 5, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, 4, 5, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 3, buttons[ i ].h - 2, buttons[ i ].w - 2, buttons[ i ].h - 2, + lineColor( sdl_buttons[ i ].surfaceon, 3, BUTTONS[ i ].h - 2, BUTTONS[ i ].w - 2, BUTTONS[ i ].h - 2, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 4, buttons[ i ].h - 3, buttons[ i ].w - 3, buttons[ i ].h - 3, + lineColor( sdl_buttons[ i ].surfaceon, 4, BUTTONS[ i ].h - 3, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 3, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 2, buttons[ i ].h - 2, buttons[ i ].w - 2, 3, + lineColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 2, BUTTONS[ i ].h - 2, BUTTONS[ i ].w - 2, 3, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 3, buttons[ i ].h - 3, buttons[ i ].w - 3, 4, + lineColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 3, BUTTONS[ i ].w - 3, 4, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 4, buttons[ i ].h - 4, buttons[ i ].w - 4, 5, + lineColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 4, BUTTONS[ i ].h - 4, BUTTONS[ i ].w - 4, 5, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - pixelColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 5, buttons[ i ].h - 4, bgra2argb( ARGBColors[ BUT_BOT ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 5, BUTTONS[ i ].h - 4, bgra2argb( ARGBColors[ BUT_BOT ] ) ); // draw frame around button - lineColor( sdl_buttons[ i ].surfaceup, 0, buttons[ i ].h - 3, 0, 2, bgra2argb( ARGBColors[ FRAME ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 2, 0, buttons[ i ].w - 3, 0, bgra2argb( ARGBColors[ FRAME ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, 2, buttons[ i ].h - 1, buttons[ i ].w - 3, buttons[ i ].h - 1, + lineColor( sdl_buttons[ i ].surfaceon, 0, BUTTONS[ i ].h - 3, 0, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 2, 0, BUTTONS[ i ].w - 3, 0, bgra2argb( ARGBColors[ FRAME ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 2, BUTTONS[ i ].h - 1, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 1, bgra2argb( ARGBColors[ FRAME ] ) ); - lineColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 1, buttons[ i ].h - 3, buttons[ i ].w - 1, 2, + lineColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 1, BUTTONS[ i ].h - 3, BUTTONS[ i ].w - 1, 2, bgra2argb( ARGBColors[ FRAME ] ) ); if ( i == HPKEY_ON ) { - lineColor( sdl_buttons[ i ].surfaceup, 1, 1, buttons[ 1 ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfaceup, 1, 2, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 2, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + lineColor( sdl_buttons[ i ].surfaceon, 1, 1, BUTTONS[ 1 ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, 1, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 2, 2, bgra2argb( ARGBColors[ FRAME ] ) ); } else { - pixelColor( sdl_buttons[ i ].surfaceup, 1, 1, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, 1, 1, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); } - pixelColor( sdl_buttons[ i ].surfaceup, 1, buttons[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfaceup, buttons[ i ].w - 2, buttons[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, 1, BUTTONS[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceon, BUTTONS[ i ].w - 2, BUTTONS[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); // draw the depressed button // draw edge of button - lineColor( sdl_buttons[ i ].surfacedown, 2, buttons[ i ].h - 4, 2, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, 3, buttons[ i ].h - 5, 3, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, 2, 2, buttons[ i ].w - 4, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, 3, 3, buttons[ i ].w - 5, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, 4, 4, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceoff, 2, BUTTONS[ i ].h - 4, 2, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceoff, 3, BUTTONS[ i ].h - 5, 3, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceoff, 2, 2, BUTTONS[ i ].w - 4, 2, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + lineColor( sdl_buttons[ i ].surfaceoff, 3, 3, BUTTONS[ i ].w - 5, 3, bgra2argb( ARGBColors[ BUT_TOP ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, 4, 4, bgra2argb( ARGBColors[ BUT_TOP ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, 3, buttons[ i ].h - 3, buttons[ i ].w - 3, buttons[ i ].h - 3, + lineColor( sdl_buttons[ i ].surfaceoff, 3, BUTTONS[ i ].h - 3, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 3, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, 4, buttons[ i ].h - 4, buttons[ i ].w - 4, buttons[ i ].h - 4, + lineColor( sdl_buttons[ i ].surfaceoff, 4, BUTTONS[ i ].h - 4, BUTTONS[ i ].w - 4, BUTTONS[ i ].h - 4, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 3, buttons[ i ].h - 3, buttons[ i ].w - 3, 3, + lineColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 3, BUTTONS[ i ].w - 3, 3, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 4, buttons[ i ].h - 4, buttons[ i ].w - 4, 4, + lineColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 4, BUTTONS[ i ].h - 4, BUTTONS[ i ].w - 4, 4, bgra2argb( ARGBColors[ BUT_BOT ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 5, buttons[ i ].h - 5, bgra2argb( ARGBColors[ BUT_BOT ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 5, BUTTONS[ i ].h - 5, bgra2argb( ARGBColors[ BUT_BOT ] ) ); // draw frame around button - lineColor( sdl_buttons[ i ].surfacedown, 0, buttons[ i ].h - 3, 0, 2, bgra2argb( ARGBColors[ FRAME ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, 2, 0, buttons[ i ].w - 3, 0, bgra2argb( ARGBColors[ FRAME ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, 2, buttons[ i ].h - 1, buttons[ i ].w - 3, buttons[ i ].h - 1, + lineColor( sdl_buttons[ i ].surfaceoff, 0, BUTTONS[ i ].h - 3, 0, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + lineColor( sdl_buttons[ i ].surfaceoff, 2, 0, BUTTONS[ i ].w - 3, 0, bgra2argb( ARGBColors[ FRAME ] ) ); + lineColor( sdl_buttons[ i ].surfaceoff, 2, BUTTONS[ i ].h - 1, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 1, bgra2argb( ARGBColors[ FRAME ] ) ); - lineColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 1, buttons[ i ].h - 3, buttons[ i ].w - 1, 2, + lineColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 1, BUTTONS[ i ].h - 3, BUTTONS[ i ].w - 1, 2, bgra2argb( ARGBColors[ FRAME ] ) ); if ( i == HPKEY_ON ) { - lineColor( sdl_buttons[ i ].surfacedown, 1, 1, buttons[ i ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, 1, 2, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 2, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + lineColor( sdl_buttons[ i ].surfaceoff, 1, 1, BUTTONS[ i ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, 1, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 2, 2, bgra2argb( ARGBColors[ FRAME ] ) ); } else { - pixelColor( sdl_buttons[ i ].surfacedown, 1, 1, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, 1, 1, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 2, 1, bgra2argb( ARGBColors[ FRAME ] ) ); } - pixelColor( sdl_buttons[ i ].surfacedown, 1, buttons[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 2, buttons[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, 1, BUTTONS[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 2, BUTTONS[ i ].h - 2, bgra2argb( ARGBColors[ FRAME ] ) ); if ( i == HPKEY_ON ) { - rectangleColor( sdl_buttons[ i ].surfacedown, 1, 2, 1 + buttons[ i ].w - 3, 2 + buttons[ i ].h - 4, + rectangleColor( sdl_buttons[ i ].surfaceoff, 1, 2, 1 + BUTTONS[ i ].w - 3, 2 + BUTTONS[ i ].h - 4, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, 2, 3, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 3, 3, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, 2, 3, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 3, 3, bgra2argb( ARGBColors[ FRAME ] ) ); } else { - rectangleColor( sdl_buttons[ i ].surfacedown, 1, 1, 1 + buttons[ i ].w - 3, 1 + buttons[ i ].h - 3, + rectangleColor( sdl_buttons[ i ].surfaceoff, 1, 1, 1 + BUTTONS[ i ].w - 3, 1 + BUTTONS[ i ].h - 3, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, 2, 2, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 3, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, 2, 2, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 3, 2, bgra2argb( ARGBColors[ FRAME ] ) ); } - pixelColor( sdl_buttons[ i ].surfacedown, 2, buttons[ i ].h - 3, bgra2argb( ARGBColors[ FRAME ] ) ); - pixelColor( sdl_buttons[ i ].surfacedown, buttons[ i ].w - 3, buttons[ i ].h - 3, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, 2, BUTTONS[ i ].h - 3, bgra2argb( ARGBColors[ FRAME ] ) ); + pixelColor( sdl_buttons[ i ].surfaceoff, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 3, bgra2argb( ARGBColors[ FRAME ] ) ); - if ( buttons[ i ].label != ( char* )0 ) { + if ( BUTTONS[ i ].label != ( char* )0 ) { // Todo: use SDL_ttf to print "nice" fonts // for the time being use SDL_gfxPrimitives' font - x = ( buttons[ i ].w - strlen( buttons[ i ].label ) * 8 ) / 2; - y = ( buttons[ i ].h + 1 ) / 2 - 4; - stringColor( sdl_buttons[ i ].surfaceup, x, y, buttons[ i ].label, 0xffffffff ); - stringColor( sdl_buttons[ i ].surfacedown, x, y, buttons[ i ].label, 0xffffffff ); + x = ( BUTTONS[ i ].w - strlen( BUTTONS[ i ].label ) * 8 ) / 2; + y = ( BUTTONS[ i ].h + 1 ) / 2 - 4; + stringColor( sdl_buttons[ i ].surfaceon, x, y, BUTTONS[ i ].label, 0xffffffff ); + stringColor( sdl_buttons[ i ].surfaceoff, x, y, BUTTONS[ i ].label, 0xffffffff ); } // Pixmap centered in button - if ( buttons[ i ].lw != 0 ) { + if ( BUTTONS[ i ].lw != 0 ) { // If there's a bitmap, try to plot this unsigned colorbg = ARGBColors[ BUTTON ]; - unsigned colorfg = ARGBColors[ buttons[ i ].lc ]; + unsigned colorfg = ARGBColors[ BUTTONS[ i ].lc ]; // Blit the label surface to the button SDL_Surface* surf; - surf = bitmap_to_surface( buttons[ i ].lw, buttons[ i ].lh, buttons[ i ].lb, colorfg, colorbg ); + surf = bitmap_to_surface( BUTTONS[ i ].lw, BUTTONS[ i ].lh, BUTTONS[ i ].lb, colorfg, colorbg ); // Draw the surface on the center of the button - x = ( 1 + buttons[ i ].w - buttons[ i ].lw ) / 2; - y = ( 1 + buttons[ i ].h - buttons[ i ].lh ) / 2 + 1; + x = ( 1 + BUTTONS[ i ].w - BUTTONS[ i ].lw ) / 2; + y = ( 1 + BUTTONS[ i ].h - BUTTONS[ i ].lh ) / 2 + 1; SDL_Rect srect; SDL_Rect drect; srect.x = 0; srect.y = 0; - srect.w = buttons[ i ].lw; - srect.h = buttons[ i ].lh; + srect.w = BUTTONS[ i ].lw; + srect.h = BUTTONS[ i ].lh; drect.x = x; drect.y = y; - drect.w = buttons[ i ].lw; - drect.h = buttons[ i ].lh; - SDL_BlitSurface( surf, &srect, sdl_buttons[ i ].surfacedown, &drect ); - SDL_BlitSurface( surf, &srect, sdl_buttons[ i ].surfaceup, &drect ); + drect.w = BUTTONS[ i ].lw; + drect.h = BUTTONS[ i ].lh; + SDL_BlitSurface( surf, &srect, sdl_buttons[ i ].surfaceoff, &drect ); + SDL_BlitSurface( surf, &srect, sdl_buttons[ i ].surfaceon, &drect ); SDL_FreeSurface( surf ); } } @@ -863,22 +857,22 @@ static void __draw_buttons( void ) // Blit the button surface to the screen srect.x = 0; srect.y = 0; - srect.w = buttons[ i ].w; - srect.h = buttons[ i ].h; - drect.x = KEYBOARD_OFFSET_X + buttons[ i ].x; - drect.y = KEYBOARD_OFFSET_Y + buttons[ i ].y; - drect.w = buttons[ i ].w; - drect.h = buttons[ i ].h; + srect.w = BUTTONS[ i ].w; + srect.h = BUTTONS[ i ].h; + drect.x = KEYBOARD_OFFSET_X + BUTTONS[ i ].x; + drect.y = KEYBOARD_OFFSET_Y + BUTTONS[ i ].y; + drect.w = BUTTONS[ i ].w; + drect.h = BUTTONS[ i ].h; if ( keyboard[ i ].pressed ) - SDL_BlitSurface( sdl_buttons[ i ].surfacedown, &srect, sdlwindow, &drect ); + SDL_BlitSurface( sdl_buttons[ i ].surfaceoff, &srect, sdlwindow, &drect ); else - SDL_BlitSurface( sdl_buttons[ i ].surfaceup, &srect, sdlwindow, &drect ); + SDL_BlitSurface( sdl_buttons[ i ].surfaceon, &srect, sdlwindow, &drect ); } - // Always update immediately buttons - SDL_UpdateRect( sdlwindow, KEYBOARD_OFFSET_X + buttons[ 0 ].x, KEYBOARD_OFFSET_Y + buttons[ 0 ].y, - buttons[ LAST_HPKEY ].x + buttons[ LAST_HPKEY ].w - buttons[ 0 ].x, - buttons[ LAST_HPKEY ].y + buttons[ LAST_HPKEY ].h - buttons[ 0 ].y ); + // Always update immediately BUTTONS + SDL_UpdateRect( sdlwindow, KEYBOARD_OFFSET_X + BUTTONS[ 0 ].x, KEYBOARD_OFFSET_Y + BUTTONS[ 0 ].y, + BUTTONS[ LAST_HPKEY ].x + BUTTONS[ LAST_HPKEY ].w - BUTTONS[ 0 ].x, + BUTTONS[ LAST_HPKEY ].y + BUTTONS[ LAST_HPKEY ].h - BUTTONS[ 0 ].y ); } static void _draw_keypad( void ) @@ -896,7 +890,7 @@ static void _draw_keypad( void ) // SDLDrawKeyMenu(); for ( i = FIRST_HPKEY; i <= LAST_HPKEY; i++ ) { - if ( buttons[ i ].is_menu ) { + if ( BUTTONS[ i ].is_menu ) { // draw the dark shade under the label pw = opt_gx ? 58 : 44; ph = opt_gx ? 48 : 9; @@ -905,11 +899,11 @@ static void _draw_keypad( void ) // Set the coordinates to absolute if ( opt_gx ) { - x = offset_x + buttons[ i ].x - 6; - y = offset_y + buttons[ i ].y - small_ascent - small_descent - 6; + x = offset_x + BUTTONS[ i ].x - 6; + y = offset_y + BUTTONS[ i ].y - small_ascent - small_descent - 6; } else { - x = offset_x + buttons[ i ].x + ( buttons[ i ].w - pw ) / 2; - y = offset_y + buttons[ i ].y - small_ascent - small_descent; + x = offset_x + BUTTONS[ i ].x + ( BUTTONS[ i ].w - pw ) / 2; + y = offset_y + BUTTONS[ i ].y - small_ascent - small_descent; } rect.x = x; @@ -926,119 +920,119 @@ static void _draw_keypad( void ) colorbg = ARGBColors[ PAD ]; // Letter ( small character bottom right of key) - if ( buttons[ i ].letter != ( char* )0 ) { + if ( BUTTONS[ i ].letter != ( char* )0 ) { if ( opt_gx ) { - x = offset_x + buttons[ i ].x + buttons[ i ].w + 3; - y = offset_y + buttons[ i ].y + buttons[ i ].h + 1; + x = offset_x + BUTTONS[ i ].x + BUTTONS[ i ].w + 3; + y = offset_y + BUTTONS[ i ].y + BUTTONS[ i ].h + 1; } else { - x = offset_x + buttons[ i ].x + buttons[ i ].w - SmallTextWidth( buttons[ i ].letter, 1 ) / 2 + 5; - y = offset_y + buttons[ i ].y + buttons[ i ].h - 2; + x = offset_x + BUTTONS[ i ].x + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].letter, 1 ) / 2 + 5; + y = offset_y + BUTTONS[ i ].y + BUTTONS[ i ].h - 2; } - write_text( x, y, buttons[ i ].letter, 1, 0xffffffff, colorbg ); + write_text( x, y, BUTTONS[ i ].letter, 1, 0xffffffff, colorbg ); } // SDLDrawKeysLabelsBottom(); // Bottom label: the only one is the cancel button - if ( buttons[ i ].sub != ( char* )0 ) { + if ( BUTTONS[ i ].sub != ( char* )0 ) { colorfg = ARGBColors[ WHITE ]; - x = offset_x + buttons[ i ].x + ( 1 + buttons[ i ].w - SmallTextWidth( buttons[ i ].sub, strlen( buttons[ i ].sub ) ) ) / 2; - y = offset_y + buttons[ i ].y + buttons[ i ].h + small_ascent + 2; - write_text( x, y, buttons[ i ].sub, strlen( buttons[ i ].sub ), colorfg, colorbg ); + x = offset_x + BUTTONS[ i ].x + ( 1 + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].sub, strlen( BUTTONS[ i ].sub ) ) ) / 2; + y = offset_y + BUTTONS[ i ].y + BUTTONS[ i ].h + small_ascent + 2; + write_text( x, y, BUTTONS[ i ].sub, strlen( BUTTONS[ i ].sub ), colorfg, colorbg ); } // SDLDrawKeysLabelsLeft(); // Draw the left labels - if ( buttons[ i ].left != ( char* )0 ) { - if ( buttons[ i ].is_menu ) { + if ( BUTTONS[ i ].left != ( char* )0 ) { + if ( BUTTONS[ i ].is_menu ) { // draw the dark shade under the label pw = opt_gx ? 58 : 46; colorbg = ARGBColors[ UNDERLAY ]; colorfg = ARGBColors[ LEFT ]; - x = ( pw + 1 - SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ) ) / 2; + x = ( pw + 1 - SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ) ) / 2; y = opt_gx ? 14 : 9; // Set the coordinates to absolute if ( opt_gx ) { - x += offset_x + buttons[ i ].x - 6; - y += offset_y + buttons[ i ].y - small_ascent - small_descent - 6; + x += offset_x + BUTTONS[ i ].x - 6; + y += offset_y + BUTTONS[ i ].y - small_ascent - small_descent - 6; } else { - x += offset_x + buttons[ i ].x + ( buttons[ i ].w - pw ) / 2; - y += offset_y + buttons[ i ].y - small_ascent - small_descent; + x += offset_x + BUTTONS[ i ].x + ( BUTTONS[ i ].w - pw ) / 2; + y += offset_y + BUTTONS[ i ].y - small_ascent - small_descent; } - write_text( x, y, buttons[ i ].left, strlen( buttons[ i ].left ), colorfg, colorbg ); + write_text( x, y, BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ), colorfg, colorbg ); } else // is_menu { colorbg = ARGBColors[ BLACK ]; colorfg = ARGBColors[ LEFT ]; - if ( buttons[ i ].right == ( char* )0 ) { + if ( BUTTONS[ i ].right == ( char* )0 ) { // centered label - x = offset_x + buttons[ i ].x + - ( 1 + buttons[ i ].w - SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ) ) / 2; + x = offset_x + BUTTONS[ i ].x + + ( 1 + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ) ) / 2; } else { // label to the left - wl = SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ); - wr = SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ); + wl = SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ); + wr = SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ); ws = SmallTextWidth( " ", 1 ); - x = offset_x + buttons[ i ].x + ( 1 + buttons[ i ].w - ( wl + wr + ws ) ) / 2; + x = offset_x + BUTTONS[ i ].x + ( 1 + BUTTONS[ i ].w - ( wl + wr + ws ) ) / 2; } - y = offset_y + buttons[ i ].y - small_descent; + y = offset_y + BUTTONS[ i ].y - small_descent; - write_text( x, y, buttons[ i ].left, strlen( buttons[ i ].left ), colorfg, colorbg ); + write_text( x, y, BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ), colorfg, colorbg ); } // is_menu } // SDLDrawKeysLabelsRight(); // draw the right labels - if ( buttons[ i ].right != ( char* )0 ) { - if ( buttons[ i ].is_menu ) { + if ( BUTTONS[ i ].right != ( char* )0 ) { + if ( BUTTONS[ i ].is_menu ) { // draw the dark shade under the label pw = opt_gx ? 58 : 44; colorbg = ARGBColors[ UNDERLAY ]; colorfg = ARGBColors[ RIGHT ]; - x = ( pw + 1 - SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ) ) / 2; + x = ( pw + 1 - SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ) ) / 2; y = opt_gx ? 14 : 8; // Set the coordinates to absolute if ( opt_gx ) { - x += offset_x + buttons[ i ].x - 6; - y += offset_y + buttons[ i ].y - small_ascent - small_descent - 6; + x += offset_x + BUTTONS[ i ].x - 6; + y += offset_y + BUTTONS[ i ].y - small_ascent - small_descent - 6; } else { - x += offset_x + buttons[ i ].x + ( buttons[ i ].w - pw ) / 2; - y += offset_y + buttons[ i ].y - small_ascent - small_descent; + x += offset_x + BUTTONS[ i ].x + ( BUTTONS[ i ].w - pw ) / 2; + y += offset_y + BUTTONS[ i ].y - small_ascent - small_descent; } - write_text( x, y, buttons[ i ].right, strlen( buttons[ i ].right ), colorfg, colorbg ); - } // buttons[i].is_menu + write_text( x, y, BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ), colorfg, colorbg ); + } // BUTTONS[i].is_menu else { colorbg = ARGBColors[ BLACK ]; colorfg = ARGBColors[ RIGHT ]; - if ( buttons[ i ].left == ( char* )0 ) { + if ( BUTTONS[ i ].left == ( char* )0 ) { // centered label - x = offset_x + buttons[ i ].x + - ( 1 + buttons[ i ].w - SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ) ) / 2; + x = offset_x + BUTTONS[ i ].x + + ( 1 + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ) ) / 2; } else { // label to the right - wl = SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ); - wr = SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ); + wl = SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ); + wr = SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ); ws = SmallTextWidth( " ", 1 ); - x = offset_x + buttons[ i ].x + ( 1 + buttons[ i ].w - ( wl + wr + ws ) ) / 2 + wl + ws; + x = offset_x + BUTTONS[ i ].x + ( 1 + BUTTONS[ i ].w - ( wl + wr + ws ) ) / 2 + wl + ws; } - y = offset_y + buttons[ i ].y - small_descent; + y = offset_y + BUTTONS[ i ].y - small_descent; - write_text( x, y, buttons[ i ].right, strlen( buttons[ i ].right ), colorfg, colorbg ); + write_text( x, y, BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ), colorfg, colorbg ); } } } @@ -1170,14 +1164,14 @@ static void _show_key( int hpkey ) return; // Which surface to show - ssurf = ( keyboard[ hpkey ].pressed ) ? sdl_buttons[ hpkey ].surfacedown : sdl_buttons[ hpkey ].surfaceup; + ssurf = ( keyboard[ hpkey ].pressed ) ? sdl_buttons[ hpkey ].surfaceoff : sdl_buttons[ hpkey ].surfaceon; // Background backup showkeylastsurf = SDL_CreateRGBSurface( SDL_SWSURFACE, ssurf->w, ssurf->h, 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 ); // Where to - x = KEYBOARD_OFFSET_X + buttons[ hpkey ].x - ( ssurf->w - ssurf->w + 1 ) / 2; - y = KEYBOARD_OFFSET_Y + buttons[ hpkey ].y - ( ssurf->h - ssurf->h + 1 ) / 2; + x = KEYBOARD_OFFSET_X + BUTTONS[ hpkey ].x - ( ssurf->w - ssurf->w + 1 ) / 2; + y = KEYBOARD_OFFSET_Y + BUTTONS[ hpkey ].y - ( ssurf->h - ssurf->h + 1 ) / 2; // blitting does not clip to screen, so if we are out of the screen we // shift the button to fit if ( x < 0 ) @@ -1330,7 +1324,7 @@ void sdl_get_event( void ) please_exit = true; break; - // Mouse move: react to state changes in the buttons that are + // Mouse move: react to state changes in the BUTTONS that are // pressed case SDL_MOUSEMOTION: hpkey = mouse_click_to_hpkey( event.motion.x, event.motion.y ); @@ -1590,8 +1584,8 @@ void init_sdl_ui( int argc, char** argv ) DISPLAY_OFFSET_X = 0; DISPLAY_OFFSET_Y = 0; } else { - width = ( buttons_gx[ LAST_HPKEY ].x + buttons_gx[ LAST_HPKEY ].w ) + 2 * SIDE_SKIP; - height = DISPLAY_OFFSET_Y + DISPLAY_HEIGHT + DISP_KBD_SKIP + buttons_gx[ LAST_HPKEY ].y + buttons_gx[ LAST_HPKEY ].h + BOTTOM_SKIP; + width = ( BUTTONS[ LAST_HPKEY ].x + BUTTONS[ LAST_HPKEY ].w ) + 2 * SIDE_SKIP; + height = DISPLAY_OFFSET_Y + DISPLAY_HEIGHT + DISP_KBD_SKIP + BUTTONS[ LAST_HPKEY ].y + BUTTONS[ LAST_HPKEY ].h + BOTTOM_SKIP; } uint32_t sdl_window_flags = SDL_SWSURFACE | SDL_RESIZABLE; @@ -1605,12 +1599,12 @@ void init_sdl_ui( int argc, char** argv ) exit( 1 ); } - buttons = opt_gx ? buttons_gx : buttons_sx; + /* BUTTONS = opt_gx ? BUTTONS_gx : BUTTONS_sx; */ - colors_setup( opt_gx ? colors_gx : colors_sx ); + colors_setup( COLORS ); if ( !config.hide_chrome ) { - int cut = buttons[ HPKEY_MTH ].y + KEYBOARD_OFFSET_Y - 19; + int cut = BUTTONS[ HPKEY_MTH ].y + KEYBOARD_OFFSET_Y - 19; _draw_background( width, cut, width, height ); _draw_bezel( cut, KEYBOARD_OFFSET_Y, width, height ); diff --git a/src/ui_text.c b/src/ui_text.c index 23e3f82..84a1774 100644 --- a/src/ui_text.c +++ b/src/ui_text.c @@ -586,16 +586,15 @@ void init_text_ui( int argc, char** argv ) noecho(); nonl(); /* tell curses not to do NL->CR/NL on output */ - color_t* colors = opt_gx ? colors_gx : colors_sx; if ( !config.mono && has_colors() ) { start_color(); if ( config.gray ) { - init_color( LCD_COLOR_BG, colors[ LCD ].gray_rgb, colors[ LCD ].gray_rgb, colors[ LCD ].gray_rgb ); - init_color( LCD_COLOR_FG, colors[ PIXEL ].gray_rgb, colors[ PIXEL ].gray_rgb, colors[ PIXEL ].gray_rgb ); + init_color( LCD_COLOR_BG, COLORS[ LCD ].gray_rgb, COLORS[ LCD ].gray_rgb, COLORS[ LCD ].gray_rgb ); + init_color( LCD_COLOR_FG, COLORS[ PIXEL ].gray_rgb, COLORS[ PIXEL ].gray_rgb, COLORS[ PIXEL ].gray_rgb ); } else { - init_color( LCD_COLOR_BG, colors[ LCD ].r, colors[ LCD ].g, colors[ LCD ].b ); - init_color( LCD_COLOR_FG, colors[ PIXEL ].r, colors[ PIXEL ].g, colors[ PIXEL ].b ); + init_color( LCD_COLOR_BG, COLORS[ LCD ].r, COLORS[ LCD ].g, COLORS[ LCD ].b ); + init_color( LCD_COLOR_FG, COLORS[ PIXEL ].r, COLORS[ PIXEL ].g, COLORS[ PIXEL ].b ); } init_pair( LCD_PIXEL_OFF, LCD_COLOR_BG, LCD_COLOR_BG ); diff --git a/src/ui_x11.c b/src/ui_x11.c index decaebc..6fda8b5 100644 --- a/src/ui_x11.c +++ b/src/ui_x11.c @@ -26,8 +26,8 @@ #define UPDATE_MENU 1 #define UPDATE_DISP 2 -#define KEYBOARD_HEIGHT ( buttons[ LAST_HPKEY ].y + buttons[ LAST_HPKEY ].h ) -#define KEYBOARD_WIDTH ( buttons[ LAST_HPKEY ].x + buttons[ LAST_HPKEY ].w ) +#define KEYBOARD_HEIGHT ( BUTTONS[ LAST_HPKEY ].y + BUTTONS[ LAST_HPKEY ].h ) +#define KEYBOARD_WIDTH ( BUTTONS[ LAST_HPKEY ].x + BUTTONS[ LAST_HPKEY ].w ) #define TOP_SKIP 65 #define SIDE_SKIP 20 @@ -242,7 +242,6 @@ static XColor x11_colors[ NB_COLORS ] = { {0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0}, {0, 0, 0, 0, DoRed | DoGreen | DoBlue, 0}, }; -static color_t* colors; static int CompletionType = -1; @@ -277,7 +276,6 @@ static int icon_color_mode; static char* res_name; static char* res_class; -static button_t* buttons = 0; static x11_button_t x11_buttons[ NB_KEYS ] = { {.map = 0, .down = 0, .xwin = 0}, {.map = 0, .down = 0, .xwin = 0}, @@ -571,19 +569,19 @@ static inline void colors_setup( void ) for ( c = FIRST_COLOR; c <= LAST_COLOR; c++ ) { switch ( color_mode ) { case COLOR_MODE_MONO: - x11_colors[ c ].red = colors[ c ].mono_rgb << 8; - x11_colors[ c ].green = colors[ c ].mono_rgb << 8; - x11_colors[ c ].blue = colors[ c ].mono_rgb << 8; + x11_colors[ c ].red = COLORS[ c ].mono_rgb << 8; + x11_colors[ c ].green = COLORS[ c ].mono_rgb << 8; + x11_colors[ c ].blue = COLORS[ c ].mono_rgb << 8; break; case COLOR_MODE_GRAY: - x11_colors[ c ].red = colors[ c ].gray_rgb << 8; - x11_colors[ c ].green = colors[ c ].gray_rgb << 8; - x11_colors[ c ].blue = colors[ c ].gray_rgb << 8; + x11_colors[ c ].red = COLORS[ c ].gray_rgb << 8; + x11_colors[ c ].green = COLORS[ c ].gray_rgb << 8; + x11_colors[ c ].blue = COLORS[ c ].gray_rgb << 8; break; default: - x11_colors[ c ].red = colors[ c ].r << 8; - x11_colors[ c ].green = colors[ c ].g << 8; - x11_colors[ c ].blue = colors[ c ].b << 8; + x11_colors[ c ].red = COLORS[ c ].r << 8; + x11_colors[ c ].green = COLORS[ c ].g << 8; + x11_colors[ c ].blue = COLORS[ c ].b << 8; break; } if ( direct_color ) { @@ -654,19 +652,19 @@ static inline void colors_setup( void ) for ( c = FIRST_COLOR; c <= LAST_COLOR; c++ ) { switch ( color_mode ) { case COLOR_MODE_MONO: - x11_colors[ c ].red = colors[ c ].mono_rgb << 8; - x11_colors[ c ].green = colors[ c ].mono_rgb << 8; - x11_colors[ c ].blue = colors[ c ].mono_rgb << 8; + x11_colors[ c ].red = COLORS[ c ].mono_rgb << 8; + x11_colors[ c ].green = COLORS[ c ].mono_rgb << 8; + x11_colors[ c ].blue = COLORS[ c ].mono_rgb << 8; break; case COLOR_MODE_GRAY: - x11_colors[ c ].red = colors[ c ].gray_rgb << 8; - x11_colors[ c ].green = colors[ c ].gray_rgb << 8; - x11_colors[ c ].blue = colors[ c ].gray_rgb << 8; + x11_colors[ c ].red = COLORS[ c ].gray_rgb << 8; + x11_colors[ c ].green = COLORS[ c ].gray_rgb << 8; + x11_colors[ c ].blue = COLORS[ c ].gray_rgb << 8; break; default: - x11_colors[ c ].red = colors[ c ].r << 8; - x11_colors[ c ].green = colors[ c ].g << 8; - x11_colors[ c ].blue = colors[ c ].b << 8; + x11_colors[ c ].red = COLORS[ c ].r << 8; + x11_colors[ c ].green = COLORS[ c ].g << 8; + x11_colors[ c ].blue = COLORS[ c ].b << 8; break; } if ( dynamic_color && c == PIXEL ) { @@ -724,7 +722,7 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ if ( i < HPKEY_MTH ) pixel = COLOR( DISP_PAD ); else { - if ( opt_gx && buttons[ i ].is_menu ) + if ( opt_gx && BUTTONS[ i ].is_menu ) pixel = COLOR( UNDERLAY ); else pixel = COLOR( PAD ); @@ -733,7 +731,7 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ /* * create the buttons subwindows */ - x11_buttons[ i ].xwin = XCreateSimpleWindow( dpy, mainW, off_x + buttons[ i ].x, off_y + buttons[ i ].y, buttons[ i ].w, buttons[ i ].h, + x11_buttons[ i ].xwin = XCreateSimpleWindow( dpy, mainW, off_x + BUTTONS[ i ].x, off_y + BUTTONS[ i ].y, BUTTONS[ i ].w, BUTTONS[ i ].h, 0, COLOR( BLACK ), pixel ); XDefineCursor( dpy, x11_buttons[ i ].xwin, XCreateFontCursor( dpy, XC_hand1 ) ); @@ -746,19 +744,19 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ /* * draw the released button */ - x11_buttons[ i ].map = XCreatePixmap( dpy, x11_buttons[ i ].xwin, buttons[ i ].w, buttons[ i ].h, depth ); + x11_buttons[ i ].map = XCreatePixmap( dpy, x11_buttons[ i ].xwin, BUTTONS[ i ].w, BUTTONS[ i ].h, depth ); XSetForeground( dpy, gc, pixel ); - XFillRectangle( dpy, x11_buttons[ i ].map, gc, 0, 0, buttons[ i ].w, buttons[ i ].h ); + XFillRectangle( dpy, x11_buttons[ i ].map, gc, 0, 0, BUTTONS[ i ].w, BUTTONS[ i ].h ); XSetForeground( dpy, gc, COLOR( BUTTON ) ); - XFillRectangle( dpy, x11_buttons[ i ].map, gc, 1, 1, buttons[ i ].w - 2, buttons[ i ].h - 2 ); + XFillRectangle( dpy, x11_buttons[ i ].map, gc, 1, 1, BUTTONS[ i ].w - 2, BUTTONS[ i ].h - 2 ); - if ( buttons[ i ].label != ( char* )0 ) { + if ( BUTTONS[ i ].label != ( char* )0 ) { /* * set font size in gc */ - switch ( buttons[ i ].font_size ) { + switch ( BUTTONS[ i ].font_size ) { case 0: finfo = f_small; break; @@ -780,28 +778,28 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ * draw string centered in button */ XSetBackground( dpy, gc, COLOR( BUTTON ) ); - XSetForeground( dpy, gc, COLOR( buttons[ i ].lc ) ); + XSetForeground( dpy, gc, COLOR( BUTTONS[ i ].lc ) ); - XTextExtents( finfo, buttons[ i ].label, ( int )strlen( buttons[ i ].label ), &dir, &fa, &fd, &xchar ); - x = ( buttons[ i ].w - xchar.width ) / 2; - y = ( 1 + buttons[ i ].h - ( xchar.ascent + xchar.descent ) ) / 2 + xchar.ascent + 1; - XDrawImageString( dpy, x11_buttons[ i ].map, gc, x, y, buttons[ i ].label, ( int )strlen( buttons[ i ].label ) ); + XTextExtents( finfo, BUTTONS[ i ].label, ( int )strlen( BUTTONS[ i ].label ), &dir, &fa, &fd, &xchar ); + x = ( BUTTONS[ i ].w - xchar.width ) / 2; + y = ( 1 + BUTTONS[ i ].h - ( xchar.ascent + xchar.descent ) ) / 2 + xchar.ascent + 1; + XDrawImageString( dpy, x11_buttons[ i ].map, gc, x, y, BUTTONS[ i ].label, ( int )strlen( BUTTONS[ i ].label ) ); XSetBackground( dpy, gc, COLOR( BLACK ) ); - } else if ( buttons[ i ].lw != 0 ) { + } else if ( BUTTONS[ i ].lw != 0 ) { /* * draw pixmap centered in button */ XSetBackground( dpy, gc, COLOR( BUTTON ) ); - XSetForeground( dpy, gc, COLOR( buttons[ i ].lc ) ); + XSetForeground( dpy, gc, COLOR( BUTTONS[ i ].lc ) ); - pix = XCreateBitmapFromData( dpy, x11_buttons[ i ].xwin, ( char* )buttons[ i ].lb, buttons[ i ].lw, buttons[ i ].lh ); + pix = XCreateBitmapFromData( dpy, x11_buttons[ i ].xwin, ( char* )BUTTONS[ i ].lb, BUTTONS[ i ].lw, BUTTONS[ i ].lh ); - x = ( 1 + buttons[ i ].w - buttons[ i ].lw ) / 2; - y = ( 1 + buttons[ i ].h - buttons[ i ].lh ) / 2 + 1; + x = ( 1 + BUTTONS[ i ].w - BUTTONS[ i ].lw ) / 2; + y = ( 1 + BUTTONS[ i ].h - BUTTONS[ i ].lh ) / 2 + 1; - XCopyPlane( dpy, pix, x11_buttons[ i ].map, gc, 0, 0, buttons[ i ].lw, buttons[ i ].lh, x, y, 1 ); + XCopyPlane( dpy, pix, x11_buttons[ i ].map, gc, 0, 0, BUTTONS[ i ].lw, BUTTONS[ i ].lh, x, y, 1 ); XFreePixmap( dpy, pix ); @@ -813,72 +811,72 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ */ XSetForeground( dpy, gc, COLOR( BUT_TOP ) ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 1, ( int )( buttons[ i ].h - 2 ), 1, 1 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, ( int )( buttons[ i ].h - 3 ), 2, 2 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 3, ( int )( buttons[ i ].h - 4 ), 3, 3 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 1, ( int )( BUTTONS[ i ].h - 2 ), 1, 1 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, ( int )( BUTTONS[ i ].h - 3 ), 2, 2 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 3, ( int )( BUTTONS[ i ].h - 4 ), 3, 3 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 1, 1, ( int )( buttons[ i ].w - 2 ), 1 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, 2, ( int )( buttons[ i ].w - 3 ), 2 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 3, 3, ( int )( buttons[ i ].w - 4 ), 3 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 4, 4, ( int )( buttons[ i ].w - 5 ), 4 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 1, 1, ( int )( BUTTONS[ i ].w - 2 ), 1 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, 2, ( int )( BUTTONS[ i ].w - 3 ), 2 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 3, 3, ( int )( BUTTONS[ i ].w - 4 ), 3 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 4, 4, ( int )( BUTTONS[ i ].w - 5 ), 4 ); XDrawPoint( dpy, x11_buttons[ i ].map, gc, 4, 5 ); XSetForeground( dpy, gc, COLOR( BUT_BOT ) ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 3, ( int )( buttons[ i ].h - 2 ), ( int )( buttons[ i ].w - 2 ), - ( int )( buttons[ i ].h - 2 ) ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 4, ( int )( buttons[ i ].h - 3 ), ( int )( buttons[ i ].w - 3 ), - ( int )( buttons[ i ].h - 3 ) ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 3, ( int )( BUTTONS[ i ].h - 2 ), ( int )( BUTTONS[ i ].w - 2 ), + ( int )( BUTTONS[ i ].h - 2 ) ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 4, ( int )( BUTTONS[ i ].h - 3 ), ( int )( BUTTONS[ i ].w - 3 ), + ( int )( BUTTONS[ i ].h - 3 ) ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 2 ), ( int )( buttons[ i ].h - 2 ), ( int )( buttons[ i ].w - 2 ), + XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 2 ), ( int )( BUTTONS[ i ].h - 2 ), ( int )( BUTTONS[ i ].w - 2 ), 3 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 3 ), ( int )( buttons[ i ].h - 3 ), ( int )( buttons[ i ].w - 3 ), + XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 3 ), ( int )( BUTTONS[ i ].h - 3 ), ( int )( BUTTONS[ i ].w - 3 ), 4 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 4 ), ( int )( buttons[ i ].h - 4 ), ( int )( buttons[ i ].w - 4 ), + XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 4 ), ( int )( BUTTONS[ i ].h - 4 ), ( int )( BUTTONS[ i ].w - 4 ), 5 ); - XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 5 ), ( int )( buttons[ i ].h - 4 ) ); + XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 5 ), ( int )( BUTTONS[ i ].h - 4 ) ); /* * draw frame around button */ XSetForeground( dpy, gc, COLOR( FRAME ) ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 0, ( int )( buttons[ i ].h - 3 ), 0, 2 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, 0, ( int )( buttons[ i ].w - 3 ), 0 ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, ( int )( buttons[ i ].h - 1 ), ( int )( buttons[ i ].w - 3 ), - ( int )( buttons[ i ].h - 1 ) ); - XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 1 ), ( int )( buttons[ i ].h - 3 ), ( int )( buttons[ i ].w - 1 ), + XDrawLine( dpy, x11_buttons[ i ].map, gc, 0, ( int )( BUTTONS[ i ].h - 3 ), 0, 2 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, 0, ( int )( BUTTONS[ i ].w - 3 ), 0 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 2, ( int )( BUTTONS[ i ].h - 1 ), ( int )( BUTTONS[ i ].w - 3 ), + ( int )( BUTTONS[ i ].h - 1 ) ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 1 ), ( int )( BUTTONS[ i ].h - 3 ), ( int )( BUTTONS[ i ].w - 1 ), 2 ); if ( i == HPKEY_ON ) { - XDrawLine( dpy, x11_buttons[ i ].map, gc, 1, 1, ( int )( buttons[ i ].w - 2 ), 1 ); + XDrawLine( dpy, x11_buttons[ i ].map, gc, 1, 1, ( int )( BUTTONS[ i ].w - 2 ), 1 ); XDrawPoint( dpy, x11_buttons[ i ].map, gc, 1, 2 ); - XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 2 ), 2 ); + XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 2 ), 2 ); } else { XDrawPoint( dpy, x11_buttons[ i ].map, gc, 1, 1 ); - XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 2 ), 1 ); + XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 2 ), 1 ); } - XDrawPoint( dpy, x11_buttons[ i ].map, gc, 1, ( int )( buttons[ i ].h - 2 ) ); - XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( buttons[ i ].w - 2 ), ( int )( buttons[ i ].h - 2 ) ); + XDrawPoint( dpy, x11_buttons[ i ].map, gc, 1, ( int )( BUTTONS[ i ].h - 2 ) ); + XDrawPoint( dpy, x11_buttons[ i ].map, gc, ( int )( BUTTONS[ i ].w - 2 ), ( int )( BUTTONS[ i ].h - 2 ) ); /* * draw the depressed button */ - x11_buttons[ i ].down = XCreatePixmap( dpy, x11_buttons[ i ].xwin, buttons[ i ].w, buttons[ i ].h, depth ); + x11_buttons[ i ].down = XCreatePixmap( dpy, x11_buttons[ i ].xwin, BUTTONS[ i ].w, BUTTONS[ i ].h, depth ); XSetForeground( dpy, gc, pixel ); - XFillRectangle( dpy, x11_buttons[ i ].down, gc, 0, 0, buttons[ i ].w, buttons[ i ].h ); + XFillRectangle( dpy, x11_buttons[ i ].down, gc, 0, 0, BUTTONS[ i ].w, BUTTONS[ i ].h ); XSetForeground( dpy, gc, COLOR( BUTTON ) ); - XFillRectangle( dpy, x11_buttons[ i ].down, gc, 1, 1, buttons[ i ].w - 2, buttons[ i ].h - 2 ); + XFillRectangle( dpy, x11_buttons[ i ].down, gc, 1, 1, BUTTONS[ i ].w - 2, BUTTONS[ i ].h - 2 ); - if ( buttons[ i ].label != ( char* )0 ) { + if ( BUTTONS[ i ].label != ( char* )0 ) { /* * set small or big font in gc */ - switch ( buttons[ i ].font_size ) { + switch ( BUTTONS[ i ].font_size ) { case 0: finfo = f_small; break; @@ -900,12 +898,12 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ * draw string centered in button */ XSetBackground( dpy, gc, COLOR( BUTTON ) ); - XSetForeground( dpy, gc, COLOR( buttons[ i ].lc ) ); + XSetForeground( dpy, gc, COLOR( BUTTONS[ i ].lc ) ); - XTextExtents( finfo, buttons[ i ].label, ( int )strlen( buttons[ i ].label ), &dir, &fa, &fd, &xchar ); - x = ( buttons[ i ].w - xchar.width ) / 2; - y = ( 1 + buttons[ i ].h - ( xchar.ascent + xchar.descent ) ) / 2 + xchar.ascent; - XDrawImageString( dpy, x11_buttons[ i ].down, gc, x, y, buttons[ i ].label, ( int )strlen( buttons[ i ].label ) ); + XTextExtents( finfo, BUTTONS[ i ].label, ( int )strlen( BUTTONS[ i ].label ), &dir, &fa, &fd, &xchar ); + x = ( BUTTONS[ i ].w - xchar.width ) / 2; + y = ( 1 + BUTTONS[ i ].h - ( xchar.ascent + xchar.descent ) ) / 2 + xchar.ascent; + XDrawImageString( dpy, x11_buttons[ i ].down, gc, x, y, BUTTONS[ i ].label, ( int )strlen( BUTTONS[ i ].label ) ); XSetBackground( dpy, gc, COLOR( BLACK ) ); } else { @@ -913,14 +911,14 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ * draw pixmap centered in button */ XSetBackground( dpy, gc, COLOR( BUTTON ) ); - XSetForeground( dpy, gc, COLOR( buttons[ i ].lc ) ); + XSetForeground( dpy, gc, COLOR( BUTTONS[ i ].lc ) ); - pix = XCreateBitmapFromData( dpy, x11_buttons[ i ].xwin, ( char* )buttons[ i ].lb, buttons[ i ].lw, buttons[ i ].lh ); + pix = XCreateBitmapFromData( dpy, x11_buttons[ i ].xwin, ( char* )BUTTONS[ i ].lb, BUTTONS[ i ].lw, BUTTONS[ i ].lh ); - x = ( 1 + buttons[ i ].w - buttons[ i ].lw ) / 2; - y = ( 1 + buttons[ i ].h - buttons[ i ].lh ) / 2; + x = ( 1 + BUTTONS[ i ].w - BUTTONS[ i ].lw ) / 2; + y = ( 1 + BUTTONS[ i ].h - BUTTONS[ i ].lh ) / 2; - XCopyPlane( dpy, pix, x11_buttons[ i ].down, gc, 0, 0, buttons[ i ].lw, buttons[ i ].lh, x, y, 1 ); + XCopyPlane( dpy, pix, x11_buttons[ i ].down, gc, 0, 0, BUTTONS[ i ].lw, BUTTONS[ i ].lh, x, y, 1 ); XFreePixmap( dpy, pix ); @@ -932,62 +930,62 @@ static inline void __create_button( int i, int off_x, int off_y, XFontStruct* f_ */ XSetForeground( dpy, gc, COLOR( BUT_TOP ) ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, ( int )( buttons[ i ].h - 4 ), 2, 2 ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 3, ( int )( buttons[ i ].h - 5 ), 3, 3 ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, ( int )( BUTTONS[ i ].h - 4 ), 2, 2 ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 3, ( int )( BUTTONS[ i ].h - 5 ), 3, 3 ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, 2, ( int )( buttons[ i ].w - 4 ), 2 ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 3, 3, ( int )( buttons[ i ].w - 5 ), 3 ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, 2, ( int )( BUTTONS[ i ].w - 4 ), 2 ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 3, 3, ( int )( BUTTONS[ i ].w - 5 ), 3 ); XDrawPoint( dpy, x11_buttons[ i ].down, gc, 4, 4 ); XSetForeground( dpy, gc, COLOR( BUT_BOT ) ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 3, ( int )( buttons[ i ].h - 3 ), ( int )( buttons[ i ].w - 3 ), - ( int )( buttons[ i ].h - 3 ) ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 4, ( int )( buttons[ i ].h - 4 ), ( int )( buttons[ i ].w - 4 ), - ( int )( buttons[ i ].h - 4 ) ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 3, ( int )( BUTTONS[ i ].h - 3 ), ( int )( BUTTONS[ i ].w - 3 ), + ( int )( BUTTONS[ i ].h - 3 ) ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 4, ( int )( BUTTONS[ i ].h - 4 ), ( int )( BUTTONS[ i ].w - 4 ), + ( int )( BUTTONS[ i ].h - 4 ) ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 3 ), ( int )( buttons[ i ].h - 3 ), ( int )( buttons[ i ].w - 3 ), + XDrawLine( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 3 ), ( int )( BUTTONS[ i ].h - 3 ), ( int )( BUTTONS[ i ].w - 3 ), 3 ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 4 ), ( int )( buttons[ i ].h - 4 ), ( int )( buttons[ i ].w - 4 ), + XDrawLine( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 4 ), ( int )( BUTTONS[ i ].h - 4 ), ( int )( BUTTONS[ i ].w - 4 ), 4 ); - XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 5 ), ( int )( buttons[ i ].h - 5 ) ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 5 ), ( int )( BUTTONS[ i ].h - 5 ) ); /* * draw frame around button */ XSetForeground( dpy, gc, COLOR( FRAME ) ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 0, ( int )( buttons[ i ].h - 3 ), 0, 2 ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, 0, ( int )( buttons[ i ].w - 3 ), 0 ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, ( int )( buttons[ i ].h - 1 ), ( int )( buttons[ i ].w - 3 ), - ( int )( buttons[ i ].h - 1 ) ); - XDrawLine( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 1 ), ( int )( buttons[ i ].h - 3 ), ( int )( buttons[ i ].w - 1 ), + XDrawLine( dpy, x11_buttons[ i ].down, gc, 0, ( int )( BUTTONS[ i ].h - 3 ), 0, 2 ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, 0, ( int )( BUTTONS[ i ].w - 3 ), 0 ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 2, ( int )( BUTTONS[ i ].h - 1 ), ( int )( BUTTONS[ i ].w - 3 ), + ( int )( BUTTONS[ i ].h - 1 ) ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 1 ), ( int )( BUTTONS[ i ].h - 3 ), ( int )( BUTTONS[ i ].w - 1 ), 2 ); if ( i == HPKEY_ON ) { - XDrawLine( dpy, x11_buttons[ i ].down, gc, 1, 1, ( int )( buttons[ i ].w - 2 ), 1 ); + XDrawLine( dpy, x11_buttons[ i ].down, gc, 1, 1, ( int )( BUTTONS[ i ].w - 2 ), 1 ); XDrawPoint( dpy, x11_buttons[ i ].down, gc, 1, 2 ); - XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 2 ), 2 ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 2 ), 2 ); } else { XDrawPoint( dpy, x11_buttons[ i ].down, gc, 1, 1 ); - XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 2 ), 1 ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 2 ), 1 ); } - XDrawPoint( dpy, x11_buttons[ i ].down, gc, 1, ( int )( buttons[ i ].h - 2 ) ); - XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 2 ), ( int )( buttons[ i ].h - 2 ) ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, 1, ( int )( BUTTONS[ i ].h - 2 ) ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 2 ), ( int )( BUTTONS[ i ].h - 2 ) ); if ( i == HPKEY_ON ) { - XDrawRectangle( dpy, x11_buttons[ i ].down, gc, 1, 2, buttons[ i ].w - 3, buttons[ i ].h - 4 ); + XDrawRectangle( dpy, x11_buttons[ i ].down, gc, 1, 2, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 4 ); XDrawPoint( dpy, x11_buttons[ i ].down, gc, 2, 3 ); - XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 3 ), 3 ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 3 ), 3 ); } else { - XDrawRectangle( dpy, x11_buttons[ i ].down, gc, 1, 1, buttons[ i ].w - 3, buttons[ i ].h - 3 ); + XDrawRectangle( dpy, x11_buttons[ i ].down, gc, 1, 1, BUTTONS[ i ].w - 3, BUTTONS[ i ].h - 3 ); XDrawPoint( dpy, x11_buttons[ i ].down, gc, 2, 2 ); - XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 3 ), 2 ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 3 ), 2 ); } - XDrawPoint( dpy, x11_buttons[ i ].down, gc, 2, ( int )( buttons[ i ].h - 3 ) ); - XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( buttons[ i ].w - 3 ), ( int )( buttons[ i ].h - 3 ) ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, 2, ( int )( BUTTONS[ i ].h - 3 ) ); + XDrawPoint( dpy, x11_buttons[ i ].down, gc, ( int )( BUTTONS[ i ].w - 3 ), ( int )( BUTTONS[ i ].h - 3 ) ); } static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x, x11_keypad_t* local_keypad ) @@ -1011,39 +1009,39 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x pixel = ( i < HPKEY_MTH ) ? COLOR( DISP_PAD ) : COLOR( PAD ); - if ( buttons[ i ].letter != ( char* )0 ) { + if ( BUTTONS[ i ].letter != ( char* )0 ) { XSetBackground( dpy, gc, pixel ); XSetForeground( dpy, gc, COLOR( WHITE ) ); if ( opt_gx ) { - x = offset_x + buttons[ i ].x + buttons[ i ].w + 3; - y = offset_y + buttons[ i ].y + buttons[ i ].h + 1; + x = offset_x + BUTTONS[ i ].x + BUTTONS[ i ].w + 3; + y = offset_y + BUTTONS[ i ].y + BUTTONS[ i ].h + 1; } else { - x = offset_x + buttons[ i ].x + buttons[ i ].w - SmallTextWidth( buttons[ i ].letter, 1 ) / 2 + 5; - y = offset_y + buttons[ i ].y + buttons[ i ].h - 2; + x = offset_x + BUTTONS[ i ].x + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].letter, 1 ) / 2 + 5; + y = offset_y + BUTTONS[ i ].y + BUTTONS[ i ].h - 2; } - __write_text( dpy, local_keypad->pixmap, gc, x, y, buttons[ i ].letter, 1 ); + __write_text( dpy, local_keypad->pixmap, gc, x, y, BUTTONS[ i ].letter, 1 ); } /* * draw the bottom labels */ - if ( buttons[ i ].sub != ( char* )0 ) { + if ( BUTTONS[ i ].sub != ( char* )0 ) { XSetBackground( dpy, gc, pixel ); XSetForeground( dpy, gc, COLOR( WHITE ) ); - x = offset_x + buttons[ i ].x + ( 1 + buttons[ i ].w - SmallTextWidth( buttons[ i ].sub, strlen( buttons[ i ].sub ) ) ) / 2; - y = offset_y + buttons[ i ].y + buttons[ i ].h + small_ascent + 2; + x = offset_x + BUTTONS[ i ].x + ( 1 + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].sub, strlen( BUTTONS[ i ].sub ) ) ) / 2; + y = offset_y + BUTTONS[ i ].y + BUTTONS[ i ].h + small_ascent + 2; - __write_text( dpy, local_keypad->pixmap, gc, x, y, buttons[ i ].sub, strlen( buttons[ i ].sub ) ); + __write_text( dpy, local_keypad->pixmap, gc, x, y, BUTTONS[ i ].sub, strlen( BUTTONS[ i ].sub ) ); } /* * draw the left labels */ - if ( buttons[ i ].left != ( char* )0 ) { - if ( buttons[ i ].is_menu ) { + if ( BUTTONS[ i ].left != ( char* )0 ) { + if ( BUTTONS[ i ].is_menu ) { /* * draw the dark shade under the label */ @@ -1064,10 +1062,10 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x XSetBackground( dpy, gc, COLOR( UNDERLAY ) ); XSetForeground( dpy, gc, COLOR( LEFT ) ); - x = ( pw + 1 - SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ) ) / 2; + x = ( pw + 1 - SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ) ) / 2; y = ( opt_gx ) ? 14 : 9; - __write_text( dpy, pix, gc, x, y, buttons[ i ].left, strlen( buttons[ i ].left ) ); + __write_text( dpy, pix, gc, x, y, BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ); XSetForeground( dpy, gc, pixel ); @@ -1079,11 +1077,11 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x } if ( opt_gx ) { - x = offset_x + buttons[ i ].x - 6; - y = offset_y + buttons[ i ].y - small_ascent - small_descent - 6; + x = offset_x + BUTTONS[ i ].x - 6; + y = offset_y + BUTTONS[ i ].y - small_ascent - small_descent - 6; } else { - x = offset_x + buttons[ i ].x + ( buttons[ i ].w - pw ) / 2; - y = offset_y + buttons[ i ].y - small_ascent - small_descent; + x = offset_x + BUTTONS[ i ].x + ( BUTTONS[ i ].w - pw ) / 2; + y = offset_y + BUTTONS[ i ].y - small_ascent - small_descent; } XCopyArea( dpy, pix, local_keypad->pixmap, gc, 0, 0, pw, ph, x, y ); @@ -1093,28 +1091,28 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x XSetBackground( dpy, gc, pixel ); XSetForeground( dpy, gc, COLOR( LEFT ) ); - if ( buttons[ i ].right == ( char* )0 ) /* centered label */ - x = offset_x + buttons[ i ].x + - ( 1 + buttons[ i ].w - SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ) ) / 2; + if ( BUTTONS[ i ].right == ( char* )0 ) /* centered label */ + x = offset_x + BUTTONS[ i ].x + + ( 1 + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ) ) / 2; else { /* label to the left */ - wl = SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ); - wr = SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ); + wl = SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ); + wr = SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ); ws = SmallTextWidth( " ", 1 ); - x = offset_x + buttons[ i ].x + ( 1 + buttons[ i ].w - ( wl + wr + ws ) ) / 2; + x = offset_x + BUTTONS[ i ].x + ( 1 + BUTTONS[ i ].w - ( wl + wr + ws ) ) / 2; } - y = offset_y + buttons[ i ].y - small_descent; + y = offset_y + BUTTONS[ i ].y - small_descent; - __write_text( dpy, local_keypad->pixmap, gc, x, y, buttons[ i ].left, strlen( buttons[ i ].left ) ); + __write_text( dpy, local_keypad->pixmap, gc, x, y, BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ); } } /* * draw the right labels */ - if ( buttons[ i ].right != ( char* )0 ) { - if ( buttons[ i ].is_menu ) { + if ( BUTTONS[ i ].right != ( char* )0 ) { + if ( BUTTONS[ i ].is_menu ) { /* * draw the dark shade under the label */ @@ -1135,10 +1133,10 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x XSetBackground( dpy, gc, COLOR( UNDERLAY ) ); XSetForeground( dpy, gc, COLOR( RIGHT ) ); - x = ( pw + 1 - SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ) ) / 2; + x = ( pw + 1 - SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ) ) / 2; y = ( opt_gx ) ? 14 : 8; - __write_text( dpy, pix, gc, x, y, buttons[ i ].right, strlen( buttons[ i ].right ) ); + __write_text( dpy, pix, gc, x, y, BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ); XSetForeground( dpy, gc, pixel ); @@ -1150,11 +1148,11 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x } if ( opt_gx ) { - x = offset_x + buttons[ i ].x - 6; - y = offset_y + buttons[ i ].y - small_ascent - small_descent - 6; + x = offset_x + BUTTONS[ i ].x - 6; + y = offset_y + BUTTONS[ i ].y - small_ascent - small_descent - 6; } else { - x = offset_x + buttons[ i ].x + ( buttons[ i ].w - pw ) / 2; - y = offset_y + buttons[ i ].y - small_ascent - small_descent; + x = offset_x + BUTTONS[ i ].x + ( BUTTONS[ i ].w - pw ) / 2; + y = offset_y + BUTTONS[ i ].y - small_ascent - small_descent; } XCopyArea( dpy, pix, local_keypad->pixmap, gc, 0, 0, pw, ph, x, y ); @@ -1164,20 +1162,20 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x XSetBackground( dpy, gc, pixel ); XSetForeground( dpy, gc, COLOR( RIGHT ) ); - if ( buttons[ i ].left == ( char* )0 ) /* centered label */ - x = offset_x + buttons[ i ].x + - ( 1 + buttons[ i ].w - SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ) ) / 2; + if ( BUTTONS[ i ].left == ( char* )0 ) /* centered label */ + x = offset_x + BUTTONS[ i ].x + + ( 1 + BUTTONS[ i ].w - SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ) ) / 2; else { /* label to the right */ - wl = SmallTextWidth( buttons[ i ].left, strlen( buttons[ i ].left ) ); - wr = SmallTextWidth( buttons[ i ].right, strlen( buttons[ i ].right ) ); + wl = SmallTextWidth( BUTTONS[ i ].left, strlen( BUTTONS[ i ].left ) ); + wr = SmallTextWidth( BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ); ws = SmallTextWidth( " ", 1 ); - x = offset_x + buttons[ i ].x + ( 1 + buttons[ i ].w - ( wl + wr + ws ) ) / 2 + wl + ws; + x = offset_x + BUTTONS[ i ].x + ( 1 + BUTTONS[ i ].w - ( wl + wr + ws ) ) / 2 + wl + ws; } - y = offset_y + buttons[ i ].y - small_descent; + y = offset_y + BUTTONS[ i ].y - small_descent; - __write_text( dpy, local_keypad->pixmap, gc, x, y, buttons[ i ].right, strlen( buttons[ i ].right ) ); + __write_text( dpy, local_keypad->pixmap, gc, x, y, BUTTONS[ i ].right, strlen( BUTTONS[ i ].right ) ); } } } @@ -1196,9 +1194,9 @@ static inline void __create_keypad( unsigned int offset_y, unsigned int offset_x pix = XCreateBitmapFromData( dpy, local_keypad->pixmap, ( char* )last_bitmap, last_width, last_height ); - x = offset_x + buttons[ HPKEY_1 ].x + buttons[ HPKEY_1 ].w + - ( buttons[ HPKEY_2 ].x - buttons[ HPKEY_1 ].x - buttons[ HPKEY_1 ].w ) / 2; - y = offset_y + buttons[ HPKEY_5 ].y + buttons[ HPKEY_5 ].h + 2; + x = offset_x + BUTTONS[ HPKEY_1 ].x + BUTTONS[ HPKEY_1 ].w + + ( BUTTONS[ HPKEY_2 ].x - BUTTONS[ HPKEY_1 ].x - BUTTONS[ HPKEY_1 ].w ) / 2; + y = offset_y + BUTTONS[ HPKEY_5 ].y + BUTTONS[ HPKEY_5 ].h + 2; XCopyPlane( dpy, pix, local_keypad->pixmap, gc, 0, 0, last_width, last_height, x, y, 1 ); @@ -1334,7 +1332,7 @@ static inline void _draw_bezel( unsigned int offset_y, x11_keypad_t* local_keypa XDrawLine( dpy, local_keypad->pixmap, gc, 1, ( int )( local_keypad->height - 3 ), 1, cut ); /* - * lower the menu buttons + * lower the menu BUTTONS */ XSetForeground( dpy, gc, COLOR( PAD_TOP ) ); @@ -1515,7 +1513,7 @@ static void draw_keypad( void ) { XCopyArea( dpy, keypad.pixmap, mainW, gc, 0, 0 static inline void draw_button( int i ) { XCopyArea( dpy, ( keyboard[ i ].pressed ) ? x11_buttons[ i ].down : x11_buttons[ i ].map, x11_buttons[ i ].xwin, gc, 0, 0, - buttons[ i ].w, buttons[ i ].h, 0, 0 ); + BUTTONS[ i ].w, BUTTONS[ i ].h, 0, 0 ); } static inline void _create_icon( void ) @@ -2185,25 +2183,17 @@ static bool create_window( int argc, char** argv ) int info, x, y, w, h; unsigned int width, height; - if ( opt_gx ) { - buttons = buttons_gx; - colors = colors_gx; - icon_maps = icon_maps_gx; - } else { - buttons = buttons_sx; - colors = colors_sx; - icon_maps = icon_maps_sx; - } + icon_maps = opt_gx ? icon_maps_gx : icon_maps_sx; if ( config.netbook ) { int i; for ( i = 0; i < 6; i++ ) { - buttons[ i ].x -= 3; - buttons[ i ].y += 300; + BUTTONS[ i ].x -= 3; + BUTTONS[ i ].y += 300; } for ( ; i <= LAST_HPKEY; i++ ) { - buttons[ i ].x += 317; - buttons[ i ].y -= 3; + BUTTONS[ i ].x += 317; + BUTTONS[ i ].y -= 3; } } @@ -2419,7 +2409,7 @@ static bool create_window( int argc, char** argv ) * create the keypad */ /* - * draw the nice labels around the buttons + * draw the nice labels around the BUTTONS */ keypad.width = width; keypad.height = height; @@ -2428,11 +2418,11 @@ static bool create_window( int argc, char** argv ) int cut; if ( config.netbook ) { - cut = buttons[ HPKEY_MTH ].y - ( small_ascent + small_descent + 6 + 4 ); + cut = BUTTONS[ HPKEY_MTH ].y - ( small_ascent + small_descent + 6 + 4 ); _draw_background( width / 2, height, width, height, &keypad ); __create_keypad( -cut, KEYBOARD_OFFSET_X, &keypad ); } else { - cut = buttons[ HPKEY_MTH ].y + KEYBOARD_OFFSET_Y - 19; + cut = BUTTONS[ HPKEY_MTH ].y + KEYBOARD_OFFSET_Y - 19; _draw_background( width, cut, width, height, &keypad ); __create_keypad( KEYBOARD_OFFSET_Y, KEYBOARD_OFFSET_X, &keypad ); } @@ -3053,15 +3043,15 @@ void x11_adjust_contrast( void ) case COLOR_MODE_MONO: return; case COLOR_MODE_GRAY: - gray = ( 0x13 - contrast ) * ( colors[ LCD ].gray_rgb / 0x10 ); + gray = ( 0x13 - contrast ) * ( COLORS[ LCD ].gray_rgb / 0x10 ); x11_colors[ PIXEL ].red = gray << 8; x11_colors[ PIXEL ].green = gray << 8; x11_colors[ PIXEL ].blue = gray << 8; break; default: - r = ( 0x13 - contrast ) * ( colors[ LCD ].r / 0x10 ); - g = ( 0x13 - contrast ) * ( colors[ LCD ].g / 0x10 ); - b = 128 - ( ( 0x13 - contrast ) * ( ( 128 - colors[ LCD ].b ) / 0x10 ) ); + r = ( 0x13 - contrast ) * ( COLORS[ LCD ].r / 0x10 ); + g = ( 0x13 - contrast ) * ( COLORS[ LCD ].g / 0x10 ); + b = 128 - ( ( 0x13 - contrast ) * ( ( 128 - COLORS[ LCD ].b ) / 0x10 ) ); x11_colors[ PIXEL ].red = r << 8; x11_colors[ PIXEL ].green = g << 8; x11_colors[ PIXEL ].blue = b << 8; @@ -3069,10 +3059,10 @@ void x11_adjust_contrast( void ) } if ( direct_color ) { - colors[ PIXEL ].gray_rgb = gray; - colors[ PIXEL ].r = r; - colors[ PIXEL ].g = g; - colors[ PIXEL ].b = b; + COLORS[ PIXEL ].gray_rgb = gray; + COLORS[ PIXEL ].r = r; + COLORS[ PIXEL ].g = g; + COLORS[ PIXEL ].b = b; colors_setup();