|
|
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.