Annotation of hatari/src/gui-sdl/dlgKeyboard.c, revision 1.1.1.1

1.1       root        1: /*
                      2:   Hatari - dlgKeyboard.c
                      3: 
                      4:   This file is distributed under the GNU Public License, version 2 or at
                      5:   your option any later version. Read the file gpl.txt for details.
                      6: */
                      7: char DlgKeyboard_rcsid[] = "Hatari $Id: dlgKeyboard.c,v 1.4 2004/06/11 12:48:49 thothy Exp $";
                      8: 
                      9: #include <unistd.h>
                     10: 
                     11: #include "main.h"
                     12: #include "memAlloc.h"
                     13: #include "configuration.h"
                     14: #include "dialog.h"
                     15: #include "sdlgui.h"
                     16: #include "file.h"
                     17: #include "screen.h"
                     18: 
                     19: 
                     20: #define DLGKEY_SYMBOLIC  3
                     21: #define DLGKEY_SCANCODE  4
                     22: #define DLGKEY_FROMFILE  5
                     23: #define DLGKEY_MAPNAME   7
                     24: #define DLGKEY_MAPBROWSE 8
                     25: #define DLGKEY_EXIT      9
                     26: 
                     27: 
                     28: /* The keyboard dialog: */
                     29: static SGOBJ keyboarddlg[] =
                     30: {
                     31:   { SGBOX, 0, 0, 0,0, 40,12, NULL },
                     32:   { SGTEXT, 0, 0, 13,1, 14,1, "Keyboard setup" },
                     33:   { SGTEXT, 0, 0, 2,3, 17,1, "Keyboard mapping:" },
                     34:   { SGRADIOBUT, 0, 0, 3,5, 10,1, "Symbolic" },
                     35:   { SGRADIOBUT, 0, 0, 15,5, 10,1, "Scancode" },
                     36:   { SGRADIOBUT, 0, 0, 27,5, 11,1, "From file" },
                     37:   { SGTEXT, 0, 0, 2,7, 13,1, "Mapping file:" },
                     38:   { SGTEXT, 0, 0, 2,8, 36,1, NULL },
                     39:   { SGBUTTON, 0, 0, 32,7, 6,1, "Browse" },
                     40:   { SGBUTTON, 0, 0, 10,10, 20,1, "Back to main menu" },
                     41:   { -1, 0, 0, 0,0, 0,0, NULL }
                     42: };
                     43: 
                     44: 
                     45: /*-----------------------------------------------------------------------*/
                     46: /*
                     47:   Show and process the "Keyboard" dialog.
                     48: */
                     49: void Dialog_KeyboardDlg(void)
                     50: {
                     51:   int i, but;
                     52:   char dlgmapfile[40];
                     53:   char *tmpname;
                     54: 
                     55:   tmpname = Memory_Alloc(FILENAME_MAX);
                     56: 
                     57:   SDLGui_CenterDlg(keyboarddlg);
                     58: 
                     59:   /* Set up dialog from actual values: */
                     60:   for(i = DLGKEY_SYMBOLIC; i <= DLGKEY_FROMFILE; i++)
                     61:   {
                     62:     keyboarddlg[i].state &= ~SG_SELECTED;
                     63:   }
                     64:   keyboarddlg[DLGKEY_SYMBOLIC+DialogParams.Keyboard.nKeymapType].state |= SG_SELECTED;
                     65: 
                     66:   File_ShrinkName(dlgmapfile, DialogParams.Keyboard.szMappingFileName, keyboarddlg[DLGKEY_MAPNAME].w);
                     67:   keyboarddlg[DLGKEY_MAPNAME].txt = dlgmapfile;
                     68: 
                     69:   /* Show the dialog: */
                     70:   do
                     71:   {
                     72:     but = SDLGui_DoDialog(keyboarddlg);
                     73: 
                     74:     if(but == DLGKEY_MAPBROWSE)
                     75:     {
                     76:       strcpy(tmpname, DialogParams.Keyboard.szMappingFileName);
                     77:       if(!tmpname[0])
                     78:       {
                     79:         getcwd(tmpname, FILENAME_MAX);
                     80:         File_AddSlashToEndFileName(tmpname);
                     81:       }
                     82:       if( SDLGui_FileSelect(tmpname, NULL, FALSE) )
                     83:       {
                     84:         strcpy(DialogParams.Keyboard.szMappingFileName, tmpname);
                     85:         if( !File_DoesFileNameEndWithSlash(tmpname) && File_Exists(tmpname) )
                     86:           File_ShrinkName(dlgmapfile, tmpname, keyboarddlg[DLGKEY_MAPNAME].w);
                     87:         else
                     88:           dlgmapfile[0] = 0;
                     89:       }
                     90:     }
                     91: 
                     92:   }
                     93:   while(but != DLGKEY_EXIT && !bQuitProgram);
                     94: 
                     95:   /* Read values from dialog: */
                     96:   if(keyboarddlg[DLGKEY_SYMBOLIC].state & SG_SELECTED)
                     97:     DialogParams.Keyboard.nKeymapType = KEYMAP_SYMBOLIC;
                     98:   else if(keyboarddlg[DLGKEY_SCANCODE].state & SG_SELECTED)
                     99:     DialogParams.Keyboard.nKeymapType = KEYMAP_SCANCODE;
                    100:   else
                    101:     DialogParams.Keyboard.nKeymapType = KEYMAP_LOADED;
                    102: 
                    103:   Memory_Free(tmpname);
                    104: }

unix.superglobalmegacorp.com

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