|
|
1.1 ! root 1: /* ! 2: Previous - 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: const char DlgKeyboard_fileid[] = "Previous dlgKeyboard.c : " __DATE__ " " __TIME__; ! 8: ! 9: #include <unistd.h> ! 10: ! 11: #include "main.h" ! 12: #include "configuration.h" ! 13: #include "dialog.h" ! 14: #include "sdlgui.h" ! 15: #include "file.h" ! 16: #include "screen.h" ! 17: #include "dimension.hpp" ! 18: ! 19: #define ENABLE_LOADED_OPTION 0 ! 20: ! 21: #define DLGKEY_SCANCODE 4 ! 22: #define DLGKEY_SYMBOLIC 5 ! 23: #define DLGKEY_SWAP 8 ! 24: #define DLGKEY_EXIT 20 ! 25: ! 26: ! 27: /* The keyboard dialog: */ ! 28: static SGOBJ keyboarddlg[] = ! 29: { ! 30: { SGBOX, 0, 0, 0,0, 47,28, NULL }, ! 31: { SGTEXT, 0, 0, 15,1, 16,1, "Keyboard options" }, ! 32: ! 33: { SGBOX, 0, 0, 2,3, 21,7, NULL }, ! 34: { SGTEXT, 0, 0, 4,4, 17,1, "Keyboard mapping:" }, ! 35: { SGRADIOBUT, 0, 0, 6,6, 10,1, "Scancode" }, ! 36: { SGRADIOBUT, 0, 0, 6,8, 10,1, "Symbolic" }, ! 37: ! 38: { SGBOX, 0, 0, 24,3, 21,7, NULL }, ! 39: { SGTEXT, 0, 0, 26,4, 12,1, "Key options:" }, ! 40: { SGCHECKBOX, 0, 0, 26,6, 18,1, "Swap cmd and alt" }, ! 41: ! 42: { SGBOX, 0, 0, 2,11, 43,12, NULL }, ! 43: { SGTEXT, 0, 0, 4,12, 10,1, "Shortcuts:" }, ! 44: { SGTEXT, 0, 0, 17,12, 10,1, "ctrl-alt-X (Fn)" }, ! 45: { SGTEXT, 0, 0, 6,14, 17,1, "Show main menu -O (F12)" }, ! 46: { SGTEXT, 0, 0, 6,15, 17,1, "Pause -P" }, ! 47: { SGTEXT, 0, 0, 6,16, 17,1, "Cold reset -C" }, ! 48: { SGTEXT, 0, 0, 6,17, 17,1, "Lock/unlock mouse -M" }, ! 49: { SGTEXT, 0, 0, 6,18, 17,1, "Screen toggle -N" }, ! 50: { SGTEXT, 0, 0, 6,19, 17,1, "Fullscreen on/off -F" }, ! 51: { SGTEXT, 0, 0, 6,20, 17,1, "Sound on/off -S" }, ! 52: { SGTEXT, 0, 0, 6,21, 17,1, "Quit -Q" }, ! 53: ! 54: { SGBUTTON, SG_DEFAULT, 0, 13,25, 21,1, "Back to main menu" }, ! 55: { -1, 0, 0, 0,0, 0,0, NULL } ! 56: }; ! 57: ! 58: ! 59: /*-----------------------------------------------------------------------*/ ! 60: /** ! 61: * Show and process the "Keyboard" dialog. ! 62: */ ! 63: void Dialog_KeyboardDlg(void) ! 64: { ! 65: int but; ! 66: #if ENABLE_LOADED_OPTION ! 67: char dlgmapfile[44]; ! 68: #endif ! 69: SDLGui_CenterDlg(keyboarddlg); ! 70: ! 71: /* Set up dialog from actual values: */ ! 72: keyboarddlg[DLGKEY_SCANCODE].state &= ~SG_SELECTED; ! 73: keyboarddlg[DLGKEY_SYMBOLIC].state &= ~SG_SELECTED; ! 74: ! 75: switch (ConfigureParams.Keyboard.nKeymapType) { ! 76: case KEYMAP_SCANCODE: ! 77: keyboarddlg[DLGKEY_SCANCODE].state |= SG_SELECTED; ! 78: break; ! 79: case KEYMAP_SYMBOLIC: ! 80: keyboarddlg[DLGKEY_SYMBOLIC].state |= SG_SELECTED; ! 81: break; ! 82: ! 83: default: ! 84: break; ! 85: } ! 86: #if ENABLE_LOADED_OPTION ! 87: File_ShrinkName(dlgmapfile, ConfigureParams.Keyboard.szMappingFileName, keyboarddlg[DLGKEY_MAPNAME].w); ! 88: keyboarddlg[DLGKEY_MAPNAME].txt = dlgmapfile; ! 89: #endif ! 90: ! 91: if (ConfigureParams.Keyboard.bSwapCmdAlt) { ! 92: keyboarddlg[DLGKEY_SWAP].state |= SG_SELECTED; ! 93: } ! 94: else { ! 95: keyboarddlg[DLGKEY_SWAP].state &= ~SG_SELECTED; ! 96: } ! 97: ! 98: /* Show the dialog: */ ! 99: do ! 100: { ! 101: but = SDLGui_DoDialog(keyboarddlg, NULL); ! 102: #if ENABLE_LOADED_OPTION ! 103: if (but == DLGKEY_MAPBROWSE) ! 104: { ! 105: SDLGui_FileConfSelect(dlgmapfile, ! 106: ConfigureParams.Keyboard.szMappingFileName, ! 107: keyboarddlg[DLGKEY_MAPNAME].w, false); ! 108: } ! 109: #endif ! 110: } ! 111: while (but != DLGKEY_EXIT && but != SDLGUI_QUIT ! 112: && but != SDLGUI_ERROR && !bQuitProgram); ! 113: ! 114: /* Read values from dialog: */ ! 115: if (keyboarddlg[DLGKEY_SCANCODE].state & SG_SELECTED) ! 116: ConfigureParams.Keyboard.nKeymapType = KEYMAP_SCANCODE; ! 117: else ! 118: ConfigureParams.Keyboard.nKeymapType = KEYMAP_SYMBOLIC; ! 119: #if ENABLE_LOADED_OPTION ! 120: else ! 121: ConfigureParams.Keyboard.nKeymapType = KEYMAP_LOADED; ! 122: #endif ! 123: ConfigureParams.Keyboard.bSwapCmdAlt = (keyboarddlg[DLGKEY_SWAP].state & SG_SELECTED); ! 124: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.