diff --git a/src/od-joy.cpp b/src/od-joy.cpp index 0b6790d..2cc13f0 100755 --- a/src/od-joy.cpp +++ b/src/od-joy.cpp @@ -324,7 +324,14 @@ void read_joystick(int nr, unsigned int *dir, int *button) { vkbd_displace_down(); } - + else if (buttonStart && (dpadLeft || left)) + { + vkbd_transparency_up(); + } + else if (buttonStart && (dpadRight || right)) + { + vkbd_transparency_down(); + } else { if (left || dpadLeft) diff --git a/src/vkbd/vkbd.cpp b/src/vkbd/vkbd.cpp index 90fa041..eef46d9 100755 --- a/src/vkbd/vkbd.cpp +++ b/src/vkbd/vkbd.cpp @@ -13,6 +13,7 @@ extern int keycode2amiga(SDL_keysym *prKeySym); static int vkbd_x=VKBD_X; static int vkbd_y=VKBD_Y; +static int vkbd_transparency=255; static int vkbd_just_blinked=0; int vkbd_shift=0; @@ -31,6 +32,8 @@ void vkbd_quit(void) { } int vkbd_process(void) { return -1234567; } void vkbd_displace_up(void) { }; void vkbd_displace_down(void) { }; +void vkbd_transparency_up(void) { }; +void vkbd_transparency_down(void) { }; #else #define MAX_KEY 110 @@ -338,9 +341,10 @@ int vkbd_init(void) } ksurShift=SDL_DisplayFormat(tmp); SDL_FreeSurface(tmp); - - SDL_SetAlpha(ksur, SDL_SRCALPHA | SDL_RLEACCEL, 125); - SDL_SetAlpha(ksurShift, SDL_SRCALPHA | SDL_RLEACCEL, 125); + + vkbd_transparency=128; //default transparency is 128 for LARGEKEYBOARD + SDL_SetAlpha(ksur, SDL_SRCALPHA | SDL_RLEACCEL, vkbd_transparency); + SDL_SetAlpha(ksurShift, SDL_SRCALPHA | SDL_RLEACCEL, vkbd_transparency); #else //LARGEKEYBOARD //if using the small keyboard, load in the zoomed keys instead for(i=0;i53) + vkbd_transparency-=4; + else + vkbd_transparency=50; + SDL_SetAlpha(ksur, SDL_SRCALPHA | SDL_RLEACCEL, vkbd_transparency); +#ifdef LARGEKEYBOARD + SDL_SetAlpha(ksurShift, SDL_SRCALPHA | SDL_RLEACCEL, vkbd_transparency); +#endif +} + +void vkbd_transparency_down(void) +{ + if (vkbd_transparency<252) + { + vkbd_transparency+=4; //some transparency + SDL_SetAlpha(ksur, SDL_SRCALPHA | SDL_RLEACCEL, vkbd_transparency); +#ifdef LARGEKEYBOARD + SDL_SetAlpha(ksurShift, SDL_SRCALPHA | SDL_RLEACCEL, vkbd_transparency); +#endif + } + else + { + vkbd_transparency=255; //fully opaque + SDL_SetAlpha(ksur, 0, vkbd_transparency); +#ifdef LARGEKEYBOARD + SDL_SetAlpha(ksurShift, 0, vkbd_transparency); +#endif + } +} + + void vkbd_displace_up(void) { if (vkbd_y>3) diff --git a/src/vkbd/vkbd.h b/src/vkbd/vkbd.h index 7cbc058..f2b3fd6 100755 --- a/src/vkbd/vkbd.h +++ b/src/vkbd/vkbd.h @@ -17,6 +17,8 @@ int vkbd_process(void); void vkbd_init_button2(void); void vkbd_displace_up(void); void vkbd_displace_down(void); +void vkbd_transparency_up(void); +void vkbd_transparency_down(void); extern int vkbd_mode; extern int vkbd_move;