Annotation of frontvm/src/shortcut.c, revision 1.1.1.1

1.1       root        1: /*
                      2:   Hatari
                      3: 
                      4:   Shortcut keys
                      5: */
                      6: 
                      7: #include <SDL.h>
                      8: 
                      9: #include "main.h"
                     10: #include "audio.h"
                     11: #include "screen.h"
                     12: #include "shortcut.h"
                     13: #include "hostcall.h"
                     14: #include "../m68000.h"
                     15: 
                     16: 
                     17: /* List of possible short-cuts(MUST match SHORTCUT_xxxx) */
                     18: char *pszShortCutTextStrings[NUM_SHORTCUTS+1] = {
                     19:   "(not assigned)",
                     20:   "Full Screen",
                     21:   "Mouse Mode",
                     22:   NULL  /*term*/
                     23: };
                     24: 
                     25: char *pszShortCutF11TextString[] = {
                     26:   "Full Screen",
                     27:   NULL  /*term*/
                     28: };
                     29: 
                     30: char *pszShortCutF12TextString[] = {
                     31:   "Mouse Mode",
                     32:   NULL  /*term*/
                     33: };
                     34: 
                     35: ShortCutFunction_t pShortCutFunctions[NUM_SHORTCUTS] = {
                     36:   NULL,
                     37:   ShortCut_FullScreen,
                     38:   ShortCut_MouseMode,
                     39: };
                     40: 
                     41: SHORTCUT_KEY ShortCutKey;
                     42: 
                     43: /*-----------------------------------------------------------------------*/
                     44: /*
                     45:   Clear shortkey structure
                     46: */
                     47: void ShortCut_ClearKeys(void)
                     48: {
                     49:   /* Clear short-cut key structure */
                     50:   memset (&ShortCutKey,0, sizeof(SHORTCUT_KEY));
                     51: }
                     52: 
                     53: /*-----------------------------------------------------------------------*/
                     54: /*
                     55:   Check to see if pressed any shortcut keys, and call handling function
                     56: */
                     57: void ShortCut_CheckKeys(void)
                     58: {
                     59:   /* Check for supported keys: */
                     60:   switch(ShortCutKey.Key) {
                     61:      case SDLK_F11:                  /* Switch between fullscreen/windowed mode */
                     62:        ShortCut_FullScreen();
                     63:        break;
                     64:      case SDLK_m:                    /* Toggle mouse mode */
                     65:        ShortCut_MouseMode();
                     66:        break;
                     67:      case SDLK_q:                    /* Quit program */
                     68:        SDL_Quit ();
                     69:        exit (0);
                     70:        bQuitProgram = TRUE;
                     71:        break;
                     72:      case SDLK_d:
                     73:        Call_DumpDebug ();
                     74:        break;
                     75:      case SDLK_e:
                     76:        Screen_ToggleRenderer ();
                     77:        break;
                     78:   }
                     79: 
                     80:     /* And clear */
                     81:     ShortCut_ClearKeys();
                     82: }
                     83: 
                     84: 
                     85: /*-----------------------------------------------------------------------*/
                     86: /*
                     87:   Shortcut to toggle full-screen
                     88: */
                     89: void ShortCut_FullScreen(void)
                     90: {
                     91:        Screen_ToggleFullScreen ();
                     92: }
                     93: 
                     94: 
                     95: /*-----------------------------------------------------------------------*/
                     96: /*
                     97:   Shortcut to toggle mouse mode
                     98: */
                     99: void ShortCut_MouseMode(void)
                    100: {
                    101:   bGrabMouse = !bGrabMouse;        /* Toggle flag */
                    102: 
                    103:   if(!bInFullScreen)
                    104:   {
                    105:     if(bGrabMouse)
                    106:     {
                    107:       SDL_WM_GrabInput(SDL_GRAB_ON);
                    108:     }
                    109:     else
                    110:     {
                    111:       SDL_WM_GrabInput(SDL_GRAB_OFF);
                    112:     }
                    113:   }
                    114: }
                    115: 
                    116: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.