Change to the linux kernel coding style
[wmaker-crm.git] / WPrefs.app / KeyboardSettings.c
1 /* KeyboardSettings.c- keyboard options (equivalent to xset)
2  *
3  *  WPrefs - Window Maker Preferences Program
4  *
5  *  Copyright (c) 1998-2003 Alfredo K. Kojima
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2 of the License, or
10  *  (at your option) any later version.
11  *
12  *  This program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with this program; if not, write to the Free Software
19  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
20  *  USA.
21  */
22
23 #include "WPrefs.h"
24
25 typedef struct _Panel {
26         WMBox *box;
27
28         char *sectionName;
29
30         char *description;
31
32         CallbackRec callbacks;
33
34         WMWidget *parent;
35
36         WMFrame *delaF;
37         WMButton *delaB[4];
38         WMLabel *dmsL;
39         WMTextField *dmsT;
40
41         WMFrame *rateF;
42         WMButton *rateB[4];
43         WMLabel *rmsL;
44         WMTextField *rmsT;
45
46         WMTextField *testT;
47 } _Panel;
48
49 #define ICON_FILE       "keyboard"
50
51 static void createPanel(Panel * p)
52 {
53         _Panel *panel = (_Panel *) p;
54         WMScreen *scr = WMWidgetScreen(panel->parent);
55         int i;
56         WMColor *color;
57         WMFont *font;
58
59         color = WMDarkGrayColor(scr);
60         font = WMSystemFontOfSize(scr, 10);
61
62         panel->box = WMCreateBox(panel->parent);
63         WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2);
64
65     /**************** Initial Key Repeat ***************/
66         panel->delaF = WMCreateFrame(panel->box);
67         WMResizeWidget(panel->delaF, 495, 60);
68         WMMoveWidget(panel->delaF, 15, 10);
69         WMSetFrameTitle(panel->delaF, _("Initial Key Repeat"));
70
71         for (i = 0; i < 4; i++) {
72                 panel->delaB[i] = WMCreateButton(panel->delaF, WBTOnOff);
73                 WMResizeWidget(panel->delaB[i], 60, 20);
74                 WMMoveWidget(panel->delaB[i], 70 + i * 60, 25);
75                 if (i > 0)
76                         WMGroupButtons(panel->delaB[0], panel->delaB[i]);
77                 switch (i) {
78                 case 0:
79                         WMSetButtonText(panel->delaB[i], "....a");
80                         break;
81                 case 1:
82                         WMSetButtonText(panel->delaB[i], "...a");
83                         break;
84                 case 2:
85                         WMSetButtonText(panel->delaB[i], "..a");
86                         break;
87                 case 3:
88                         WMSetButtonText(panel->delaB[i], ".a");
89                         break;
90                 }
91         }
92         panel->dmsT = WMCreateTextField(panel->delaF);
93         WMResizeWidget(panel->dmsT, 50, 20);
94         WMMoveWidget(panel->dmsT, 345, 25);
95         /*    WMSetTextFieldAlignment(panel->dmsT, WARight); */
96
97         panel->dmsL = WMCreateLabel(panel->delaF);
98         WMResizeWidget(panel->dmsL, 30, 16);
99         WMMoveWidget(panel->dmsL, 400, 30);
100         WMSetLabelTextColor(panel->dmsL, color);
101         WMSetLabelFont(panel->dmsL, font);
102         WMSetLabelText(panel->dmsL, "msec");
103
104         WMMapSubwidgets(panel->delaF);
105
106     /**************** Key Repeat Rate ***************/
107         panel->rateF = WMCreateFrame(panel->box);
108         WMResizeWidget(panel->rateF, 495, 60);
109         WMMoveWidget(panel->rateF, 15, 95);
110         WMSetFrameTitle(panel->rateF, _("Key Repeat Rate"));
111
112         for (i = 0; i < 4; i++) {
113                 panel->rateB[i] = WMCreateButton(panel->rateF, WBTOnOff);
114                 WMResizeWidget(panel->rateB[i], 60, 20);
115                 WMMoveWidget(panel->rateB[i], 70 + i * 60, 25);
116                 if (i > 0)
117                         WMGroupButtons(panel->rateB[0], panel->rateB[i]);
118                 switch (i) {
119                 case 0:
120                         WMSetButtonText(panel->rateB[i], "a....a");
121                         break;
122                 case 1:
123                         WMSetButtonText(panel->rateB[i], "a...a");
124                         break;
125                 case 2:
126                         WMSetButtonText(panel->rateB[i], "a..a");
127                         break;
128                 case 3:
129                         WMSetButtonText(panel->rateB[i], "a.a");
130                         break;
131                 }
132         }
133         panel->rmsT = WMCreateTextField(panel->rateF);
134         WMResizeWidget(panel->rmsT, 50, 20);
135         WMMoveWidget(panel->rmsT, 345, 25);
136         /*    WMSetTextFieldAlignment(panel->rmsT, WARight); */
137
138         panel->rmsL = WMCreateLabel(panel->rateF);
139         WMResizeWidget(panel->rmsL, 30, 16);
140         WMMoveWidget(panel->rmsL, 400, 30);
141         WMSetLabelTextColor(panel->rmsL, color);
142         WMSetLabelFont(panel->rmsL, font);
143         WMSetLabelText(panel->rmsL, "msec");
144
145         WMMapSubwidgets(panel->rateF);
146
147         panel->testT = WMCreateTextField(panel->box);
148         WMResizeWidget(panel->testT, 480, 20);
149         WMMoveWidget(panel->testT, 20, 180);
150         WMSetTextFieldText(panel->testT, _("Type here to test"));
151
152         WMReleaseColor(color);
153         WMReleaseFont(font);
154
155         WMRealizeWidget(panel->box);
156         WMMapSubwidgets(panel->box);
157 }
158
159 Panel *InitKeyboardSettings(WMScreen * scr, WMWidget * parent)
160 {
161         _Panel *panel;
162
163         panel = wmalloc(sizeof(_Panel));
164         memset(panel, 0, sizeof(_Panel));
165
166         panel->sectionName = _("Keyboard Preferences");
167
168         panel->description = _("Not done");
169
170         panel->parent = parent;
171
172         panel->callbacks.createWidgets = createPanel;
173
174         AddSection(panel, ICON_FILE);
175
176         return panel;
177 }