File: Widget.c

package info (click to toggle)
fvwm95 2.0.43ba-15
  • links: PTS
  • area: main
  • in suites: potato
  • size: 6,356 kB
  • ctags: 4,759
  • sloc: ansic: 46,398; makefile: 1,586; sh: 782; perl: 328
file content (273 lines) | stat: -rw-r--r-- 10,218 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
/*******************************************************************/
/* Fichier contenant les fonctions attachees aux objets graphiques */
/*******************************************************************/

#include "Tools.h"

extern void InitPushButton(struct XObj *xobj);
extern void DestroyPushButton(struct XObj *xobj);
extern void DrawPushButton(struct XObj *xobj);
extern void EvtMousePushButton(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyPushButton(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgPushButton(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitRadioButton(struct XObj *xobj);
extern void DestroyRadioButton(struct XObj *xobj);
extern void DrawRadioButton(struct XObj *xobj);
extern void EvtMouseRadioButton(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyRadioButton(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgRadioButton(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitItemDraw(struct XObj *xobj);
extern void DestroyItemDraw(struct XObj *xobj);
extern void DrawItemDraw(struct XObj *xobj);
extern void EvtMouseItemDraw(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyItemDraw(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgItemDraw(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitCheckBox(struct XObj *xobj);
extern void DestroyCheckBox(struct XObj *xobj);
extern void DrawCheckBox(struct XObj *xobj);
extern void EvtMouseCheckBox(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyCheckBox(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgCheckBox(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitTextField(struct XObj *xobj);
extern void DestroyTextField(struct XObj *xobj);
extern void DrawTextField(struct XObj *xobj);
extern void EvtMouseTextField(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyTextField(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgTextField(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitHScrollBar(struct XObj *xobj);
extern void DestroyHScrollBar(struct XObj *xobj);
extern void DrawHScrollBar(struct XObj *xobj);
extern void EvtMouseHScrollBar(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyHScrollBar(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgHScrollBar(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitVScrollBar(struct XObj *xobj);
extern void DestroyVScrollBar(struct XObj *xobj);
extern void DrawVScrollBar(struct XObj *xobj);
extern void EvtMouseVScrollBar(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyVScrollBar(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgVScrollBar(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitPopupMenu(struct XObj *xobj);
extern void DestroyPopupMenu(struct XObj *xobj);
extern void DrawPopupMenu(struct XObj *xobj);
extern void EvtMousePopupMenu(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyPopupMenu(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgPopupMenu(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitRectangle(struct XObj *xobj);
extern void DestroyRectangle(struct XObj *xobj);
extern void DrawRectangle(struct XObj *xobj);
extern void EvtMouseRectangle(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyRectangle(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgRectangle(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitMiniScroll(struct XObj *xobj);
extern void DestroyMiniScroll(struct XObj *xobj);
extern void DrawMiniScroll(struct XObj *xobj);
extern void EvtMouseMiniScroll(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyMiniScroll(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgMiniScroll(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitSwallow(struct XObj *xobj);
extern void DestroySwallow(struct XObj *xobj);
extern void DrawSwallow(struct XObj *xobj);
extern void EvtMouseSwallow(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeySwallow(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgSwallow(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitHDipstick(struct XObj *xobj);
extern void DestroyHDipstick(struct XObj *xobj);
extern void DrawHDipstick(struct XObj *xobj);
extern void EvtMouseHDipstick(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyHDipstick(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgHDipstick(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitVDipstick(struct XObj *xobj);
extern void DestroyVDipstick(struct XObj *xobj);
extern void DrawVDipstick(struct XObj *xobj);
extern void EvtMouseVDipstick(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyVDipstick(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgVDipstick(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitList(struct XObj *xobj);
extern void DestroyList(struct XObj *xobj);
extern void DrawList(struct XObj *xobj);
extern void EvtMouseList(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyList(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgList(struct XObj *xobj,unsigned long type,unsigned long *body);

extern void InitMenu(struct XObj *xobj);
extern void DestroyMenu(struct XObj *xobj);
extern void DrawMenu(struct XObj *xobj);
extern void EvtMouseMenu(struct XObj *xobj,XButtonEvent *EvtButton);
extern void EvtKeyMenu(struct XObj *xobj,XKeyEvent *EvtKey);
extern void ProcessMsgMenu(struct XObj *xobj,unsigned long type,unsigned long *body);

/***********************************************/
/*Choix des fonctions suivant le type de bouton*/
/***********************************************/

void ChooseFunction(struct XObj *xobj,char *type)
{
 if (strcmp(type,"PushButton")==0)
 {
  xobj->TypeWidget=PushButton;
  xobj->InitObj=InitPushButton;
  xobj->DestroyObj=DestroyPushButton;
  xobj->DrawObj=DrawPushButton;
  xobj->EvtMouse=EvtMousePushButton;
  xobj->EvtKey=EvtKeyPushButton;
  xobj->ProcessMsg=ProcessMsgPushButton;
 }
 else if (strcmp(type,"RadioButton")==0)
 {
  xobj->TypeWidget=RadioButton;
  xobj->InitObj=InitRadioButton;
  xobj->DestroyObj=DestroyRadioButton;
  xobj->DrawObj=DrawRadioButton;
  xobj->EvtMouse=EvtMouseRadioButton;
  xobj->EvtKey=EvtKeyRadioButton;
  xobj->ProcessMsg=ProcessMsgRadioButton;
 }
 else if (strcmp(type,"ItemDraw")==0)
 {
  xobj->TypeWidget=ItemDraw;
  xobj->InitObj=InitItemDraw;
  xobj->DestroyObj=DestroyItemDraw;
  xobj->DrawObj=DrawItemDraw;
  xobj->EvtMouse=EvtMouseItemDraw;
  xobj->EvtKey=EvtKeyItemDraw;
  xobj->ProcessMsg=ProcessMsgItemDraw;
 }
 else if (strcmp(type,"CheckBox")==0)
 {
  xobj->TypeWidget=CheckBox;
  xobj->InitObj=InitCheckBox;
  xobj->DestroyObj=DestroyCheckBox;
  xobj->DrawObj=DrawCheckBox;
  xobj->EvtMouse=EvtMouseCheckBox;
  xobj->EvtKey=EvtKeyCheckBox;
  xobj->ProcessMsg=ProcessMsgCheckBox;
 }
 else if (strcmp(type,"TextField")==0)
 {
  xobj->TypeWidget=TextField;
  xobj->InitObj=InitTextField;
  xobj->DestroyObj=DestroyTextField;
  xobj->DrawObj=DrawTextField;
  xobj->EvtMouse=EvtMouseTextField;
  xobj->EvtKey=EvtKeyTextField;
  xobj->ProcessMsg=ProcessMsgTextField;
 }
 else if (strcmp(type,"HScrollBar")==0)
 {
  xobj->TypeWidget=HScrollBar;
  xobj->InitObj=InitHScrollBar;
  xobj->DestroyObj=DestroyHScrollBar;
  xobj->DrawObj=DrawHScrollBar;
  xobj->EvtMouse=EvtMouseHScrollBar;
  xobj->EvtKey=EvtKeyHScrollBar;
  xobj->ProcessMsg=ProcessMsgHScrollBar;
 }
 else if (strcmp(type,"VScrollBar")==0)
 {
  xobj->TypeWidget=VScrollBar;
  xobj->InitObj=InitVScrollBar;
  xobj->DestroyObj=DestroyVScrollBar;
  xobj->DrawObj=DrawVScrollBar;
  xobj->EvtMouse=EvtMouseVScrollBar;
  xobj->EvtKey=EvtKeyVScrollBar;
  xobj->ProcessMsg=ProcessMsgVScrollBar;
 }
 else if (strcmp(type,"PopupMenu")==0)
 {
  xobj->TypeWidget=PopupMenu;
  xobj->InitObj=InitPopupMenu;
  xobj->DestroyObj=DestroyPopupMenu;
  xobj->DrawObj=DrawPopupMenu;
  xobj->EvtMouse=EvtMousePopupMenu;
  xobj->EvtKey=EvtKeyPopupMenu;
  xobj->ProcessMsg=ProcessMsgPopupMenu;
 }
 else if (strcmp(type,"Rectangle")==0)
 {
  xobj->TypeWidget=Rectangle;
  xobj->InitObj=InitRectangle;
  xobj->DestroyObj=DestroyRectangle;
  xobj->DrawObj=DrawRectangle;
  xobj->EvtMouse=EvtMouseRectangle;
  xobj->EvtKey=EvtKeyRectangle;
  xobj->ProcessMsg=ProcessMsgRectangle;
 }
 else if (strcmp(type,"MiniScroll")==0)
 {
  xobj->TypeWidget=MiniScroll;
  xobj->InitObj=InitMiniScroll;
  xobj->DestroyObj=DestroyMiniScroll;
  xobj->DrawObj=DrawMiniScroll;
  xobj->EvtMouse=EvtMouseMiniScroll;
  xobj->EvtKey=EvtKeyMiniScroll;
  xobj->ProcessMsg=ProcessMsgMiniScroll;
 }
 else if (strcmp(type,"SwallowExec")==0)
 {
  xobj->TypeWidget=SwallowExec;
  xobj->InitObj=InitSwallow;
  xobj->DestroyObj=DestroySwallow;
  xobj->DrawObj=DrawSwallow;
  xobj->EvtMouse=EvtMouseSwallow;
  xobj->EvtKey=EvtKeySwallow;
  xobj->ProcessMsg=ProcessMsgSwallow;
 }
 else if (strcmp(type,"HDipstick")==0)
 {
  xobj->TypeWidget=HDipstick;
  xobj->InitObj=InitHDipstick;
  xobj->DestroyObj=DestroyHDipstick;
  xobj->DrawObj=DrawHDipstick;
  xobj->EvtMouse=EvtMouseHDipstick;
  xobj->EvtKey=EvtKeyHDipstick;
  xobj->ProcessMsg=ProcessMsgHDipstick;
 }
 else if (strcmp(type,"VDipstick")==0)
 {
  xobj->TypeWidget=VDipstick;
  xobj->InitObj=InitVDipstick;
  xobj->DestroyObj=DestroyVDipstick;
  xobj->DrawObj=DrawVDipstick;
  xobj->EvtMouse=EvtMouseVDipstick;
  xobj->EvtKey=EvtKeyVDipstick;
  xobj->ProcessMsg=ProcessMsgVDipstick;
 }
 else if (strcmp(type,"List")==0)
 {
  xobj->TypeWidget=List;
  xobj->InitObj=InitList;
  xobj->DestroyObj=DestroyList;
  xobj->DrawObj=DrawList;
  xobj->EvtMouse=EvtMouseList;
  xobj->EvtKey=EvtKeyList;
  xobj->ProcessMsg=ProcessMsgList;
 }
 else if (strcmp(type,"Menu")==0)
 {
  xobj->TypeWidget=Menu;
  xobj->InitObj=InitMenu;
  xobj->DestroyObj=DestroyMenu;
  xobj->DrawObj=DrawMenu;
  xobj->EvtMouse=EvtMouseMenu;
  xobj->EvtKey=EvtKeyMenu;
  xobj->ProcessMsg=ProcessMsgMenu;
 }
 else
 {
  fprintf(stderr,"Item %s unknow\n",type);
  exit(1);
 }
}