1 /* $Header: /cvsroot/lesstif/lesstif/test/Xm-2.0/notebook/test1.c,v 1.10 2002/05/01 15:47:32 amai Exp $ */
2
3 #include <stdio.h>
4 #include <stdlib.h>
5
6 #include <Xm/Xm.h>
7 #include <Xm/Form.h>
8 #include <Xm/Label.h>
9 #include <Xm/List.h>
10 #include <Xm/MenuShell.h>
11 #include <Xm/Notebook.h>
12 #include <Xm/PushB.h>
13 #include <Xm/RowColumn.h>
14 #include <Xm/ScrolledW.h>
15 #include <Xm/Separator.h>
16 #include <Xm/TextF.h>
17
18 #include "../../common/Test.h"
19
20
21 void
check_geometry(Widget w)22 check_geometry(Widget w)
23 {
24 static int result_index = 0;
25
26 static XtWidgetGeometry Expected[] = {
27 /* result test 0 */
28 { CWWidth | CWHeight , 4, 23, 639, 565, 0,0,0 }, /* test1.motif */
29 { CWWidth | CWHeight , 4, 23, 639, 565, 0,0,0 }, /* notebook */
30 { CWWidth | CWHeight | CWX | CWY, 446, 507, 94, 29, 0,0,0 }, /* PageScroller */
31 { CWWidth | CWHeight | CWX | CWY, 20, 2, 54, 25, 0,0,0 }, /* NBTextField */
32 { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MajorTabScrollerNext */
33 { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MajorTabScrollerPrevious */
34 { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MinorTabScrollerNext */
35 { CWWidth | CWHeight | CWX | CWY, -20, -20, 20, 20, 0,0,0 }, /* MinorTabScrollerPrevious */
36 { CWWidth | CWHeight | CWX | CWY, -500, -504, 500, 504, 0,0,0 }, /* configureWindow */
37 { CWWidth | CWHeight | CWX | CWY, 383, 160, 99, 30, 0,0,0 }, /* moveDownButton */
38 { CWWidth | CWHeight | CWX | CWY, 259, 160, 99, 30, 0,0,0 }, /* moveUpButton */
39 { CWWidth | CWHeight | CWX | CWY, 10, 160, 99, 30, 0,0,0 }, /* addDBButton */
40 { CWWidth | CWHeight | CWX | CWY, 10, 200, 482, 20, 0,0,0 }, /* separator2 */
41 { CWWidth | CWHeight | CWX | CWY, 134, 160, 100, 30, 0,0,0 }, /* deleteButton */
42 { CWWidth | CWHeight | CWX | CWY, 10, 426, 480, 20, 0,0,0 }, /* separator1 */
43 { CWWidth | CWHeight | CWX | CWY, 222, 380, 268, 36, 0,0,0 }, /* dbDescFileTf */
44 { CWWidth | CWHeight | CWX | CWY, 222, 332, 268, 36, 0,0,0 }, /* dbFileTf */
45 { CWWidth | CWHeight | CWX | CWY, 10, 383, 200, 43, 0,0,0 }, /* label5 */
46 { CWWidth | CWHeight | CWX | CWY, 10, 331, 202, 42, 0,0,0 }, /* label4 */
47 { CWWidth | CWHeight | CWX | CWY, 10, 280, 202, 41, 0,0,0 }, /* label3 */
48 { CWWidth | CWHeight | CWX | CWY, 222, 280, 268, 35, 0,0,0 }, /* optionMenu1 */
49 { CWWidth | CWHeight | CWX | CWY, 3, 3, 10, 29, 0,0,0 }, /* OptionLabel */
50 { CWWidth | CWHeight | CWX | CWY, 16, 3, 103, 29, 0,0,0 }, /* OptionButton */
51 { CWWidth | CWHeight | CWX | CWY, 222, 230, 268, 36, 0,0,0 }, /* dbNameTf */
52 { CWWidth | CWHeight | CWX | CWY, 10, 230, 202, 40, 0,0,0 }, /* label2 */
53 { CWWidth | CWHeight | CWX | CWY, 10, 50, 481, 100, 0,0,0 }, /* scrolledWindow1 */
54 { CWWidth | CWHeight | CWX | CWY, 0, 0, 15, 104, 0,0,0 }, /* VertScrollBar */
55 { CWWidth | CWHeight | CWX | CWY, 0, 0, 481, 100, 0,0,0 }, /* dbList */
56 { CWWidth | CWHeight | CWX | CWY, 10, 10, 101, 30, 0,0,0 }, /* label1 */
57 { CWWidth | CWHeight | CWX | CWY, 230, 456, 115, 31, 0,0,0 }, /* cancelButton */
58 { CWWidth | CWHeight | CWX | CWY, 20, 456, 115, 31, 0,0,0 }, /* applyButton */
59 { CWWidth | CWHeight | CWX | CWY, 0, 0, 1, 1, 0,0,0 }, /* menuShell */
60 { CWWidth | CWHeight | CWX | CWY, 0, 0, 78, 25, 0,0,0 }, /* pulldownMenu5 */
61 { CWWidth | CWHeight | CWX | CWY, 2, 2, 74, 21, 0,0,0 }, /* pushButton5 */
62 { CWWidth | CWHeight | CWX | CWY, -90, -25, 90, 25, 0,0,0 }, /* ConfigurePage */
63 { CWWidth | CWHeight | CWX | CWY, 40, 3, 500, 504, 0,0,0 }, /* tf */
64 { CWWidth | CWHeight | CWX | CWY, 540, 10, 90, 25, 0,0,0 }, /* Editor */
65 { CWWidth | CWHeight | CWX | CWY, -36, -25, 36, 25, 0,0,0 }, /* quit */
66 { CWWidth | CWHeight | CWX | CWY, 545, 38, 90, 25, 0,0,0 }, /* Quit */
67 };
68
69 #if 0
70 PrintDetails2(w, NULL);
71 #else
72 if (result_index <= 0)
73 {
74 PrintDetails2(w, Expected);
75 fflush(stdout);
76 result_index ++;
77 }
78 #endif
79 }
80
Quit(Widget w,XtPointer client,XtPointer call)81 void Quit(Widget w, XtPointer client, XtPointer call)
82 {
83 exit(0);
84 }
85
86 Widget CreateConfigureWindow(Widget parent);
87 Widget form, toplevel, deleteButton, dbDescFileTf, dbFileTf, DBOptionMenu,
88 dbNameTf, dbList;
89
90 int
main(int argc,char ** argv)91 main(int argc, char **argv)
92 {
93 Widget toplevel, nb, b, tf, cw;
94 XtAppContext app;
95 Arg al[10];
96 int ac;
97
98 XtSetLanguageProc(NULL, NULL, NULL);
99
100 toplevel = XtVaAppInitialize(&app, "Notebook", NULL, 0,
101 &argc, argv, NULL, NULL);
102
103 ac = 0;
104 XtSetArg(al[ac], XmNbindingType, XmSPIRAL); ac++;
105 nb = XmCreateNotebook(toplevel, "notebook", al, ac);
106
107 ac = 0;
108 XtSetArg(al[ac], XmNnotebookChildType, XmPAGE); ac++;
109 XtSetArg(al[ac], XmNpageNumber, 1); ac++;
110 tf = XmCreateTextField(nb, "tf", al, ac);
111 XtManageChild(tf);
112
113 ac = 0;
114 XtSetArg(al[ac], XmNnotebookChildType, XmPAGE); ac++;
115 XtSetArg(al[ac], XmNpageNumber, 2); ac++;
116 b = XmCreatePushButton(nb, "quit", al, ac);
117 XtManageChild(b);
118 XtAddCallback(b, XmNactivateCallback, Quit, NULL);
119
120 cw = CreateConfigureWindow(nb);
121 XtManageChild(cw);
122 ac = 0;
123 XtSetArg(al[ac], XmNpageNumber, 0); ac++;
124 XtSetValues(cw, al, ac);
125
126 ac = 0;
127 XtSetArg(al[ac], XmNpageNumber, 0); ac++;
128 b = XmCreatePushButton(nb, "ConfigurePage", al, ac);
129 XtManageChild(b);
130
131 ac = 0;
132 XtSetArg(al[ac], XmNpageNumber, 1); ac++;
133 b = XmCreatePushButton(nb, "Editor", al, ac);
134 XtManageChild(b);
135
136 ac = 0;
137 XtSetArg(al[ac], XmNpageNumber, 2); ac++;
138 b = XmCreatePushButton(nb, "Quit", al, ac);
139 XtManageChild(b);
140
141 XtManageChild(nb);
142
143 XtRealizeWidget(toplevel);
144
145 check_geometry(toplevel);
146
147 LessTifTestMainLoop(toplevel);
148
149 exit(0);
150 }
151
152 #define LARGE_WIDTH 400
153 #define LARGE_HEIGHT 500
154 #define SMALL_WIDTH 200
155 #define SMALL_HEIGHT 250
156
157 /*
158 * Function:
159 * CONVERT(w, from_string, to_type, to_size, success);
160 * Description:
161 * A converter wrapper for convenience from BuilderXcessory.
162 * Input:
163 * w - Widget : the widget to use for conversion
164 * from_string - char * : the string to convert from
165 * to_type - char * : the type to convert to
166 * to_size - int : the size of the conversion result
167 * success - Boolean* : Set to the result value of the conversion
168 * Output:
169 * None
170 */
CONVERT(Widget w,char * from_string,char * to_type,int to_size,Boolean * success)171 XtPointer CONVERT(Widget w, char *from_string, char * to_type, int to_size, Boolean * success)
172 {
173 XrmValue fromVal, toVal; /* resource holders */
174 Boolean convResult; /* return value */
175 unsigned char oByte; /* one byte result */
176 unsigned short tByte; /* two byte result */
177 XtPointer fByte; /* four byte result */
178 XtPointer aByte; /* allocated result */
179
180 /*
181 * Zero it.
182 */
183 fByte = aByte = NULL;
184 *success = False;
185
186 /*
187 * Sometimes we do not know this at code output.
188 */
189 if (to_size == 0)
190 {
191 if (!strcmp(to_type, XmRXmString) || !strcmp(to_type, XmRXmStringTable))
192 {
193 to_size = sizeof(XtPointer);
194 }
195 else
196 {
197 to_size = strlen(from_string);
198 }
199 }
200
201 /*
202 * Set up the list.
203 */
204 fromVal.size = strlen(from_string) + 1;
205 fromVal.addr = from_string;
206
207 switch( to_size )
208 {
209 case 1:
210 toVal.size = sizeof(unsigned char);
211 toVal.addr = (XtPointer)&oByte;
212 break;
213 case 2:
214 toVal.size = sizeof(unsigned short);
215 toVal.addr = (XtPointer)&tByte;
216 break;
217 default:
218 toVal.size = sizeof(XtPointer);
219 toVal.addr = (XtPointer)&fByte;
220 break;
221 }
222
223 convResult = XtConvertAndStore(w,
224 XmRString,
225 &fromVal,
226 to_type,
227 &toVal);
228
229 if( convResult )
230 {
231 switch( to_size )
232 {
233 case 1:
234 fByte = (XtPointer)((int)oByte);
235 break;
236 case 2:
237 fByte = (XtPointer)((int)tByte);
238 break;
239 default:
240 break;
241 }
242 }
243
244
245 /*
246 * Conversion will fail if we need more than 4 bytes.
247 * For strings it will fail always the first time.
248 */
249 if( !convResult && toVal.size != to_size )
250 {
251 /*
252 * Need to allocate more space for this one.
253 */
254 toVal.addr = (XtPointer)XtMalloc(toVal.size);
255 fByte = aByte = toVal.addr;
256 convResult = XtConvertAndStore(w,
257 XmRString,
258 &fromVal,
259 to_type,
260 &toVal);
261 }
262
263 /*
264 * Free any thing useless we may have allocated.
265 */
266 if( !convResult )
267 {
268 XtFree((char*)aByte);
269 aByte = NULL;
270 }
271
272 /*
273 * Return the result.
274 */
275 *success = convResult;
276 /*SUPPRESS 80*/
277 return(fByte);
278 }
279
280 /*
281 * Function: CreateConfigureWindow()
282 * Create configureWindow hierarchy of widgets.
283 */
284 Widget
CreateConfigureWindow(Widget parent)285 CreateConfigureWindow(Widget parent)
286 {
287 Arg args[512];
288 Cardinal argcnt;
289 Boolean argok;
290 Widget retval;
291 Widget configureWindow;
292 Widget applyButton;
293 Widget cancelButton;
294 Widget label1;
295 Widget scrolledWindow1;
296 Widget label2;
297 Widget menuShell;
298 Widget pulldownMenu5;
299 Widget pushButton5;
300 Widget label3;
301 Widget label4;
302 Widget label5;
303 Widget separator1;
304 Widget separator2;
305 Widget addDBButton;
306 Widget moveUpButton;
307 Widget moveDownButton;
308
309 argok = False;
310
311 argcnt = 0;
312 XtSetArg(args[argcnt], XmNautoUnmanage, False); argcnt++;
313 XtSetArg(args[argcnt], XmNresizePolicy, XmRESIZE_GROW); argcnt++;
314 XtSetArg(args[argcnt], XmNx, 0); argcnt++;
315 XtSetArg(args[argcnt], XmNy, 0); argcnt++;
316 XtSetArg(args[argcnt], XmNwidth, 500); argcnt++;
317 XtSetArg(args[argcnt], XmNheight, 504); argcnt++;
318 configureWindow = XtCreateWidget("configureWindow",
319 xmFormWidgetClass,
320 parent,
321 args,
322 argcnt);
323 retval = configureWindow;
324
325 argcnt = 0;
326 XtSetArg(args[argcnt], XmNlabelString,
327 CONVERT(parent,"Move Down", "XmString", 0, &argok)); if (argok) argcnt++;
328 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
329 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
330 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
331 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
332 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++;
333 XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;
334 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
335 XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++;
336 XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;
337 XtSetArg(args[argcnt], XmNwidth, 99); argcnt++;
338 XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
339 moveDownButton = XtCreateWidget("moveDownButton",
340 xmPushButtonWidgetClass,
341 configureWindow,
342 args,
343 argcnt);
344
345 XtManageChild(moveDownButton);
346
347 argcnt = 0;
348 XtSetArg(args[argcnt], XmNlabelString,
349 CONVERT(parent,"Move Up", "XmString", 0, &argok)); if (argok) argcnt++;
350 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
351 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
352 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
353 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
354 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++;
355 XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;
356 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
357 XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++;
358 XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;
359 XtSetArg(args[argcnt], XmNwidth, 99); argcnt++;
360 XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
361 moveUpButton = XtCreateWidget("moveUpButton",
362 xmPushButtonWidgetClass,
363 configureWindow,
364 args,
365 argcnt);
366
367 XtManageChild(moveUpButton);
368
369 argcnt = 0;
370 XtSetArg(args[argcnt], XmNlabelString,
371 CONVERT(parent,"New", "XmString", 0, &argok)); if (argok) argcnt++;
372 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
373 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
374 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
375 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
376 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
377 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
378 XtSetArg(args[argcnt], XmNwidth, 99); argcnt++;
379 XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
380 addDBButton = XtCreateWidget("addDBButton",
381 xmPushButtonWidgetClass,
382 configureWindow,
383 args,
384 argcnt);
385
386 XtManageChild(addDBButton);
387
388 argcnt = 0;
389 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
390 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
391 XtSetArg(args[argcnt], XmNtopOffset, 50); argcnt++;
392 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
393 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
394 XtSetArg(args[argcnt], XmNwidth, 482); argcnt++;
395 XtSetArg(args[argcnt], XmNheight, 20); argcnt++;
396 separator2 = XtCreateWidget("separator2",
397 xmSeparatorWidgetClass,
398 configureWindow,
399 args,
400 argcnt);
401 XtManageChild(separator2);
402
403 argcnt = 0;
404 XtSetArg(args[argcnt], XmNsensitive, True); argcnt++;
405 XtSetArg(args[argcnt], XmNlabelString,
406 CONVERT(parent,"Delete", "XmString", 0, &argok)); if (argok) argcnt++;
407 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
408 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
409 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
410 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
411 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++;
412 XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;
413 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
414 XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++;
415 XtSetArg(args[argcnt], XmNwidth, 100); argcnt++;
416 XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
417 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
418 XtSetArg(args[argcnt], XmNtopWidget, addDBButton); argcnt++;
419 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
420 XtSetArg(args[argcnt], XmNleftWidget, addDBButton); argcnt++;
421 deleteButton = XtCreateWidget("deleteButton",
422 xmPushButtonWidgetClass,
423 configureWindow,
424 args,
425 argcnt);
426
427 XtManageChild(deleteButton);
428
429 argcnt = 0;
430 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
431 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
432 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
433 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
434 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
435 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
436 XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++;
437 XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++;
438 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
439 XtSetArg(args[argcnt], XmNwidth, 480); argcnt++;
440 XtSetArg(args[argcnt], XmNheight, 20); argcnt++;
441 separator1 = XtCreateWidget("separator1",
442 xmSeparatorWidgetClass,
443 configureWindow,
444 args,
445 argcnt);
446 XtManageChild(separator1);
447
448 argcnt = 0;
449 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
450 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
451 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
452 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
453 XtSetArg(args[argcnt], XmNtopOffset, -3); argcnt++;
454 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
455 XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++;
456 XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++;
457 XtSetArg(args[argcnt], XmNwidth, 268); argcnt++;
458 XtSetArg(args[argcnt], XmNheight, 36); argcnt++;
459 dbDescFileTf = XtCreateWidget("dbDescFileTf",
460 xmTextFieldWidgetClass,
461 configureWindow,
462 args,
463 argcnt);
464
465 XtManageChild(dbDescFileTf);
466
467 argcnt = 0;
468 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
469 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
470 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
471 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
472 XtSetArg(args[argcnt], XmNtopOffset, 1); argcnt++;
473 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
474 XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++;
475 XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++;
476 XtSetArg(args[argcnt], XmNwidth, 268); argcnt++;
477 XtSetArg(args[argcnt], XmNheight, 36); argcnt++;
478 dbFileTf = XtCreateWidget("dbFileTf",
479 xmTextFieldWidgetClass,
480 configureWindow,
481 args,
482 argcnt);
483
484 XtManageChild(dbFileTf);
485
486 argcnt = 0;
487 XtSetArg(args[argcnt], XmNlabelString,
488 CONVERT(parent,"Description File Name :", "XmString", 0, &argok)); if (argok) argcnt++;
489 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
490 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
491 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
492 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
493 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
494 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
495 XtSetArg(args[argcnt], XmNwidth, 200); argcnt++;
496 XtSetArg(args[argcnt], XmNheight, 43); argcnt++;
497 label5 = XtCreateWidget("label5",
498 xmLabelWidgetClass,
499 configureWindow,
500 args,
501 argcnt);
502 XtManageChild(label5);
503
504 argcnt = 0;
505 XtSetArg(args[argcnt], XmNlabelString,
506 CONVERT(parent,"File Name :", "XmString", 0, &argok)); if (argok) argcnt++;
507 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
508 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
509 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
510 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
511 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
512 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
513 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
514 XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++;
515 XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;
516 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
517 XtSetArg(args[argcnt], XmNwidth, 202); argcnt++;
518 XtSetArg(args[argcnt], XmNheight, 42); argcnt++;
519 label4 = XtCreateWidget("label4",
520 xmLabelWidgetClass,
521 configureWindow,
522 args,
523 argcnt);
524 XtManageChild(label4);
525
526 argcnt = 0;
527 XtSetArg(args[argcnt], XmNlabelString,
528 CONVERT(parent,"Database Type :", "XmString", 0, &argok)); if (argok) argcnt++;
529 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
530 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
531 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
532 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
533 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
534 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
535 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
536 XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++;
537 XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;
538 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
539 XtSetArg(args[argcnt], XmNwidth, 202); argcnt++;
540 XtSetArg(args[argcnt], XmNheight, 41); argcnt++;
541 label3 = XtCreateWidget("label3",
542 xmLabelWidgetClass,
543 configureWindow,
544 args,
545 argcnt);
546 XtManageChild(label3);
547
548 argcnt = 0;
549 XtSetArg(args[argcnt], XmNlabelString,
550 CONVERT(parent," ", "XmString", 0, &argok)); if (argok) argcnt++;
551 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
552 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
553 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
554 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
555 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
556 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
557 XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++;
558 XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++;
559 XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_OPTION); argcnt++;
560 XtSetArg(args[argcnt], XmNwidth, 268); argcnt++;
561 XtSetArg(args[argcnt], XmNheight, 31); argcnt++;
562 DBOptionMenu = XtCreateWidget("optionMenu1",
563 xmRowColumnWidgetClass,
564 configureWindow,
565 args,
566 argcnt);
567
568 XtManageChild(DBOptionMenu);
569
570 argcnt = 0;
571 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
572 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
573 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
574 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
575 XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;
576 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
577 XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++;
578 XtSetArg(args[argcnt], XmNrightOffset, 10); argcnt++;
579 XtSetArg(args[argcnt], XmNwidth, 268); argcnt++;
580 XtSetArg(args[argcnt], XmNheight, 36); argcnt++;
581 dbNameTf = XtCreateWidget("dbNameTf",
582 xmTextFieldWidgetClass,
583 configureWindow,
584 args,
585 argcnt);
586
587 XtManageChild(dbNameTf);
588
589 argcnt = 0;
590 XtSetArg(args[argcnt], XmNlabelString,
591 CONVERT(parent,"Database Name", "XmString", 0, &argok)); if (argok) argcnt++;
592 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
593 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
594 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
595 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
596 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
597 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
598 XtSetArg(args[argcnt], XmNwidth, 202); argcnt++;
599 XtSetArg(args[argcnt], XmNheight, 40); argcnt++;
600 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
601 XtSetArg(args[argcnt], XmNtopWidget, separator2); argcnt++;
602 label2 = XtCreateWidget("label2",
603 xmLabelWidgetClass,
604 configureWindow,
605 args,
606 argcnt);
607 XtManageChild(label2);
608
609 argcnt = 0;
610 XtSetArg(args[argcnt], XmNscrollingPolicy, XmAPPLICATION_DEFINED); argcnt++;
611 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
612 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
613 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
614 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
615 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
616 XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;
617 XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++;
618 XtSetArg(args[argcnt], XmNrightOffset, 9); argcnt++;
619 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
620 XtSetArg(args[argcnt], XmNwidth, 481); argcnt++;
621 XtSetArg(args[argcnt], XmNheight, 100); argcnt++;
622 scrolledWindow1 = XtCreateWidget("scrolledWindow1",
623 xmScrolledWindowWidgetClass,
624 configureWindow,
625 args,
626 argcnt);
627 XtManageChild(scrolledWindow1);
628
629 argcnt = 0;
630 XtSetArg(args[argcnt], XmNlabelString,
631 CONVERT(parent,"Database Names :", "XmString", 0, &argok)); if (argok) argcnt++;
632 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
633 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
634 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++;
635 XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++;
636 XtSetArg(args[argcnt], XmNx, 10); argcnt++;
637 XtSetArg(args[argcnt], XmNy, 10); argcnt++;
638 XtSetArg(args[argcnt], XmNwidth, 101); argcnt++;
639 XtSetArg(args[argcnt], XmNheight, 30); argcnt++;
640 label1 = XtCreateWidget("label1",
641 xmLabelWidgetClass,
642 configureWindow,
643 args,
644 argcnt);
645 XtManageChild(label1);
646
647 argcnt = 0;
648 XtSetArg(args[argcnt], XmNlabelString,
649 CONVERT(parent,"Cancel", "XmString", 0, &argok)); if (argok) argcnt++;
650 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
651 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
652 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
653 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
654 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++;
655 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
656 XtSetArg(args[argcnt], XmNleftOffset, 95); argcnt++;
657 XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;
658 XtSetArg(args[argcnt], XmNwidth, 115); argcnt++;
659 XtSetArg(args[argcnt], XmNheight, 31); argcnt++;
660 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
661 XtSetArg(args[argcnt], XmNtopWidget, separator1); argcnt++;
662 cancelButton = XtCreateWidget("cancelButton",
663 xmPushButtonWidgetClass,
664 configureWindow,
665 args,
666 argcnt);
667
668 XtManageChild(cancelButton);
669
670 argcnt = 0;
671 XtSetArg(args[argcnt], XmNlabelString,
672 CONVERT(parent,"Apply", "XmString", 0, &argok)); if (argok) argcnt++;
673 XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
674 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
675 XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;
676 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
677 XtSetArg(args[argcnt], XmNx, 20); argcnt++;
678 XtSetArg(args[argcnt], XmNwidth, 115); argcnt++;
679 XtSetArg(args[argcnt], XmNheight, 31); argcnt++;
680 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
681 XtSetArg(args[argcnt], XmNtopWidget, separator1); argcnt++;
682 applyButton = XtCreateWidget("applyButton",
683 xmPushButtonWidgetClass,
684 configureWindow,
685 args,
686 argcnt);
687
688 XtManageChild(applyButton);
689 XtAddCallback(applyButton, XmNactivateCallback, Quit, 0);
690
691 argcnt = 0;
692 XtSetArg(args[argcnt], XmNleftOffset, 95); argcnt++;
693 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
694 XtSetArg(args[argcnt], XmNleftWidget, applyButton); argcnt++;
695 XtSetValues(cancelButton, args, argcnt);
696
697 argcnt = 0;
698 XtSetArg(args[argcnt], XmNselectionPolicy, XmSINGLE_SELECT); argcnt++;
699 XtSetArg(args[argcnt], XmNwidth, 481); argcnt++;
700 XtSetArg(args[argcnt], XmNheight, 100); argcnt++;
701 dbList = XtCreateWidget("dbList",
702 xmListWidgetClass,
703 scrolledWindow1,
704 args,
705 argcnt);
706
707 XtManageChild(dbList);
708
709 argcnt = 0;
710 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
711 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
712 XtSetArg(args[argcnt], XmNtopWidget, label1); argcnt++;
713 XtSetValues(scrolledWindow1, args, argcnt);
714
715 argcnt = 0;
716 XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;
717 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
718 XtSetArg(args[argcnt], XmNtopWidget, label2); argcnt++;
719 XtSetArg(args[argcnt], XmNleftOffset, 10); argcnt++;
720 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
721 XtSetArg(args[argcnt], XmNleftWidget, label2); argcnt++;
722 XtSetValues(dbNameTf, args, argcnt);
723
724 argcnt = 0;
725 XtSetArg(args[argcnt], XmNwidth, 1); argcnt++;
726 XtSetArg(args[argcnt], XmNheight, 1); argcnt++;
727 menuShell = XtCreatePopupShell("menuShell",
728 xmMenuShellWidgetClass,
729 XtParent(DBOptionMenu),
730 args,
731 argcnt);
732
733 argcnt = 0;
734 XtSetArg(args[argcnt], XmNrowColumnType, XmMENU_PULLDOWN); argcnt++;
735 XtSetArg(args[argcnt], XmNx, 0); argcnt++;
736 XtSetArg(args[argcnt], XmNy, 0); argcnt++;
737 XtSetArg(args[argcnt], XmNwidth, 78); argcnt++;
738 XtSetArg(args[argcnt], XmNheight, 25); argcnt++;
739 pulldownMenu5 = XtCreateWidget("pulldownMenu5",
740 xmRowColumnWidgetClass,
741 menuShell,
742 args,
743 argcnt);
744
745
746 argcnt = 0;
747 pushButton5 = XtCreateWidget("pushButton5",
748 xmPushButtonWidgetClass,
749 pulldownMenu5,
750 args,
751 argcnt);
752
753 XtManageChild(pushButton5);
754
755 argcnt = 0;
756 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
757 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
758 XtSetArg(args[argcnt], XmNtopWidget, label2); argcnt++;
759 XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++;
760 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
761 XtSetArg(args[argcnt], XmNleftWidget, dbNameTf); argcnt++;
762 XtSetArg(args[argcnt], XmNsubMenuId, pulldownMenu5); argcnt++;
763 XtSetValues(DBOptionMenu, args, argcnt);
764
765 argcnt = 0;
766 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
767 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
768 XtSetArg(args[argcnt], XmNtopWidget, label2); argcnt++;
769 XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;
770 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
771 XtSetArg(args[argcnt], XmNrightWidget, label2); argcnt++;
772 XtSetValues(label3, args, argcnt);
773
774 argcnt = 0;
775 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
776 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
777 XtSetArg(args[argcnt], XmNtopWidget, label3); argcnt++;
778 XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;
779 XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
780 XtSetArg(args[argcnt], XmNrightWidget, label3); argcnt++;
781 XtSetValues(label4, args, argcnt);
782
783 argcnt = 0;
784 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
785 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
786 XtSetArg(args[argcnt], XmNtopWidget, label4); argcnt++;
787 XtSetValues(label5, args, argcnt);
788
789 argcnt = 0;
790 XtSetArg(args[argcnt], XmNtopOffset, 1); argcnt++;
791 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
792 XtSetArg(args[argcnt], XmNtopWidget, label4); argcnt++;
793 XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++;
794 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
795 XtSetArg(args[argcnt], XmNleftWidget, dbNameTf); argcnt++;
796 XtSetValues(dbFileTf, args, argcnt);
797
798 argcnt = 0;
799 XtSetArg(args[argcnt], XmNtopOffset, -3); argcnt++;
800 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
801 XtSetArg(args[argcnt], XmNtopWidget, label5); argcnt++;
802 XtSetArg(args[argcnt], XmNleftOffset, 0); argcnt++;
803 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
804 XtSetArg(args[argcnt], XmNleftWidget, dbNameTf); argcnt++;
805 XtSetValues(dbDescFileTf, args, argcnt);
806
807 argcnt = 0;
808 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
809 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
810 XtSetArg(args[argcnt], XmNtopWidget, dbDescFileTf); argcnt++;
811 XtSetValues(separator1, args, argcnt);
812
813 argcnt = 0;
814 XtSetArg(args[argcnt], XmNtopOffset, 50); argcnt++;
815 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
816 XtSetArg(args[argcnt], XmNtopWidget, scrolledWindow1); argcnt++;
817 XtSetValues(separator2, args, argcnt);
818
819 argcnt = 0;
820 XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;
821 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
822 XtSetArg(args[argcnt], XmNtopWidget, scrolledWindow1); argcnt++;
823 XtSetValues(addDBButton, args, argcnt);
824
825 argcnt = 0;
826 XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;
827 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
828 XtSetArg(args[argcnt], XmNtopWidget, addDBButton); argcnt++;
829 XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++;
830 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
831 XtSetArg(args[argcnt], XmNleftWidget, deleteButton); argcnt++;
832 XtSetValues(moveUpButton, args, argcnt);
833
834 argcnt = 0;
835 XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;
836 XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
837 XtSetArg(args[argcnt], XmNtopWidget, moveUpButton); argcnt++;
838 XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++;
839 XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
840 XtSetArg(args[argcnt], XmNleftWidget, moveUpButton); argcnt++;
841 XtSetValues(moveDownButton, args, argcnt);
842
843 return( retval );
844 }
845