Added key-repeat to minimenu, and Y to jump up a page in the conf UI; way more usable...
authorskeezix <skeezix@flotsam-vm.(none)>
Wed, 25 Aug 2010 13:05:31 +0000 (09:05 -0400)
committerskeezix <skeezix@flotsam-vm.(none)>
Wed, 25 Aug 2010 13:05:31 +0000 (09:05 -0400)
minimenu/mmconf.c
minimenu/mmui.c

index 14b69a2..18535da 100644 (file)
@@ -80,6 +80,8 @@ unsigned char conf_run_menu ( confitem_t *toplevel ) {
 
     if ( ! page ) {
       page = pages;
 
     if ( ! page ) {
       page = pages;
+      sel = 0;
+      first_visible = 0;
     }
 
     if ( lastpage != page ) {
     }
 
     if ( lastpage != page ) {
@@ -94,7 +96,8 @@ unsigned char conf_run_menu ( confitem_t *toplevel ) {
 
       switch ( event.type ) {
 
 
       switch ( event.type ) {
 
-      case SDL_KEYUP:
+      //case SDL_KEYUP:
+      case SDL_KEYDOWN:
 
        if ( event.key.keysym.sym == SDLK_UP ) {
 
 
        if ( event.key.keysym.sym == SDLK_UP ) {
 
@@ -127,6 +130,9 @@ unsigned char conf_run_menu ( confitem_t *toplevel ) {
 
          } while ( page [ sel ].type == ct_nil );
 
 
          } while ( page [ sel ].type == ct_nil );
 
+       } else if ( event.key.keysym.sym == SDLK_PAGEUP ) {
+         page = NULL;
+
        } else if ( event.key.keysym.sym == SDLK_LEFT || event.key.keysym.sym == SDLK_RIGHT ) {
 
          unsigned char left = 0;
        } else if ( event.key.keysym.sym == SDLK_LEFT || event.key.keysym.sym == SDLK_RIGHT ) {
 
          unsigned char left = 0;
index 5210797..370644d 100644 (file)
@@ -144,6 +144,9 @@ unsigned char ui_setup ( void ) {
   }
 #endif
 
   }
 #endif
 
+  // key repeat
+  SDL_EnableKeyRepeat ( 500, 150 );
+
   // images
   //IMG_Init ( IMG_INIT_JPG | IMG_INIT_PNG );
 
   // images
   //IMG_Init ( IMG_INIT_JPG | IMG_INIT_PNG );
 
@@ -1201,7 +1204,8 @@ void ui_process_input ( unsigned char block_p ) {
 #endif
 
 #if 1 // keyboard events
 #endif
 
 #if 1 // keyboard events
-    case SDL_KEYUP:
+    //case SDL_KEYUP:
+    case SDL_KEYDOWN:
 
       //pnd_log ( pndn_debug, "key up %u\n", event.key.keysym.sym );
 
 
       //pnd_log ( pndn_debug, "key up %u\n", event.key.keysym.sym );
 
@@ -2135,7 +2139,8 @@ int ui_modal_single_menu ( char *argv[], unsigned int argc, char *title, char *f
 
       switch ( event.type ) {
 
 
       switch ( event.type ) {
 
-      case SDL_KEYUP:
+      //case SDL_KEYUP:
+      case SDL_KEYDOWN:
 
        if ( event.key.keysym.sym == SDLK_UP ) {
          if ( sel ) {
 
        if ( event.key.keysym.sym == SDLK_UP ) {
          if ( sel ) {
@@ -2788,7 +2793,7 @@ void ui_aboutscreen ( char *textpath ) {
 
        SDL_Event e;
 
 
        SDL_Event e;
 
-       if ( SDL_PeepEvents ( &e, 1, SDL_GETEVENT, SDL_EVENTMASK(SDL_KEYUP) ) > 0 ) {
+       if ( SDL_PeepEvents ( &e, 1, SDL_GETEVENT, SDL_EVENTMASK(SDL_KEYUP|SDL_KEYDOWN) ) > 0 ) {
          return;
        }
 
          return;
        }