ftp://ftp.uni-heidelberg.de/pub/X11/contrib/applications/xscreensaver-1.27.tar.Z
[xscreensaver] / driver / dialogs.c
1 /*    xscreensaver, Copyright (c) 1993-1996 Jamie Zawinski <jwz@netscape.com>
2  *
3  * Permission to use, copy, modify, distribute, and sell this software and its
4  * documentation for any purpose is hereby granted without fee, provided that
5  * the above copyright notice appear in all copies and that both that
6  * copyright notice and this permission notice appear in supporting
7  * documentation.  No representations are made about the suitability of this
8  * software for any purpose.  It is provided "as is" without express or 
9  * implied warranty.
10  */
11
12 /* The code in this file started off its life as the output of XDesigner,
13    but I've since hacked it by hand...  It's a mess, avert your eyes.
14  */
15
16
17 #if !__STDC__
18 # define _NO_PROTO
19 #endif
20
21 #include <X11/Xatom.h>
22 #include <X11/Intrinsic.h>
23 #include <X11/Shell.h>
24
25 #include <Xm/Xm.h>
26 #include <Xm/DialogS.h>
27 #include <Xm/DrawnB.h>
28 #include <Xm/Form.h>
29 #include <Xm/Label.h>
30 #include <Xm/List.h>
31 #include <Xm/PushB.h>
32 #include <Xm/ScrollBar.h>
33 #include <Xm/Separator.h>
34 #include <Xm/TextF.h>
35 #include <Xm/ToggleB.h>
36
37 #include <Xm/SelectioB.h>
38
39 extern Visual *visual;
40 extern int visual_depth;
41 extern Colormap cmap;
42
43
44 Widget passwd_dialog;
45 Widget passwd_form;
46 Widget roger_label;
47 Widget passwd_label1;
48 Widget passwd_label3;
49 Widget passwd_text;
50 Widget passwd_done;
51 Widget passwd_cancel;
52
53 Widget resources_dialog;
54 Widget resources_form;
55 Widget timeout_text;
56 Widget cycle_text;
57 Widget fade_text;
58 Widget ticks_text;
59 Widget lock_time_text;
60 Widget passwd_time_text;
61 Widget verbose_toggle;
62 Widget cmap_toggle;
63 Widget fade_toggle;
64 Widget unfade_toggle;
65 Widget lock_toggle;
66 Widget res_done;
67 Widget res_cancel;
68
69 Widget demo_dialog;
70 Widget demo_form;
71 Widget label1;
72 Widget label2;
73 Widget text_area;
74 Widget demo_list;
75 Widget text_line;
76 Widget vline;
77 Widget next;
78 Widget prev;
79 Widget edit;
80 Widget done;
81 Widget restart;
82 Widget spacer;
83
84
85 void
86 create_passwd_dialog( parent )
87 Widget parent;
88 {
89   Widget shell;
90   Widget  form1;
91   Widget   roger;
92   Widget   dialog;
93   Widget    form2;
94   Widget     label1, label2, label3;
95   Widget    text;
96   Widget    ok, cancel;
97   Widget w;
98
99   shell = XmCreateDialogShell (parent, "passwdDialog", 0, 0);
100
101   form1 = XmCreateForm (shell, "form", 0, 0);
102
103   roger = XmCreateDrawnButton (form1, "rogerLabel", 0, 0);
104
105   dialog = XmCreateSelectionBox (form1, "passwdForm", 0, 0);
106
107   form2 = XmCreateForm ( dialog, "form", 0, 0);
108   label1 = XmCreateLabel ( form2, "passwdLabel1", 0, 0);
109   label2 = XmCreateLabel ( form2, "passwdLabel2", 0, 0);
110   label3 = XmCreateLabel ( form2, "passwdLabel3", 0, 0);
111
112   text = XmSelectionBoxGetChild (dialog, XmDIALOG_TEXT);
113   ok = XmSelectionBoxGetChild (dialog, XmDIALOG_OK_BUTTON);
114   cancel = XmSelectionBoxGetChild (dialog, XmDIALOG_CANCEL_BUTTON);
115
116   w = XmSelectionBoxGetChild (dialog, XmDIALOG_LIST_LABEL);
117   if (w) XtUnmanageChild (w);
118   w = XmSelectionBoxGetChild (dialog, XmDIALOG_LIST);
119   if (w) XtUnmanageChild (XtParent(w));
120   w = XmSelectionBoxGetChild (dialog, XmDIALOG_SELECTION_LABEL);
121   if (w) XtUnmanageChild (w);
122   w = XmSelectionBoxGetChild (dialog, XmDIALOG_SEPARATOR);
123   if (w) XtUnmanageChild (w);
124   w = XmSelectionBoxGetChild (dialog, XmDIALOG_APPLY_BUTTON);
125   if (w) XtUnmanageChild (w);
126   w = XmSelectionBoxGetChild (dialog, XmDIALOG_HELP_BUTTON);
127   if (w) XtUnmanageChild (w);
128
129   XtVaSetValues(label1,
130                 XmNtopAttachment, XmATTACH_FORM,
131                 XmNleftAttachment, XmATTACH_FORM,
132                 XmNrightAttachment, XmATTACH_FORM,
133                 XmNbottomAttachment, XmATTACH_NONE,
134                 0);
135   XtVaSetValues(label2,
136                 XmNtopAttachment, XmATTACH_WIDGET,
137                 XmNtopWidget, label1,
138                 XmNleftAttachment, XmATTACH_FORM,
139                 XmNrightAttachment, XmATTACH_FORM,
140                 XmNbottomAttachment, XmATTACH_NONE,
141                 0);
142   XtVaSetValues(label3,
143                 XmNtopAttachment, XmATTACH_WIDGET,
144                 XmNtopWidget, label2,
145                 XmNleftAttachment, XmATTACH_FORM,
146                 XmNrightAttachment, XmATTACH_FORM,
147                 XmNbottomAttachment, XmATTACH_FORM,
148                 0);
149
150   XtVaSetValues(roger,
151                 XmNsensitive, FALSE,
152                 XmNtopAttachment, XmATTACH_FORM,
153                 XmNleftAttachment, XmATTACH_FORM,
154                 XmNrightAttachment, XmATTACH_NONE,
155                 XmNbottomAttachment, XmATTACH_FORM,
156                 0);
157   XtVaSetValues(dialog,
158                 XmNtopAttachment, XmATTACH_FORM,
159                 XmNleftAttachment, XmATTACH_WIDGET,
160                 XmNleftWidget, roger,
161                 XmNrightAttachment, XmATTACH_FORM,
162                 XmNbottomAttachment, XmATTACH_FORM,
163                 0);
164
165   XtManageChild(label1);
166   XtManageChild(label2);
167   XtManageChild(label3);
168
169   XtManageChild(form2);
170   XtManageChild(text);
171   XtManageChild(ok);
172   XtManageChild(cancel);
173
174   XtManageChild(roger);
175   XtManageChild(dialog);
176
177   {
178     Dimension w = 0, h = 0;
179     XtRealizeWidget(form1);
180     XtVaGetValues(roger, XmNwidth, &w, XmNheight, &h, 0);
181     if (w == h)
182       ;
183     else if (w > h)
184       XtVaSetValues(roger, XmNwidth, w, XmNheight, w, 0);
185     else
186       XtVaSetValues(roger, XmNwidth, h, XmNheight, h, 0);
187   }
188
189   passwd_dialog = shell;
190   passwd_form = form1;
191   roger_label = roger;
192   passwd_label1 = label1;
193   passwd_label3 = label3;
194   passwd_text = text;
195   passwd_done = ok;
196   passwd_cancel = cancel;
197 }
198
199
200
201 void
202 create_resources_dialog( parent )
203 Widget parent;
204 {
205   Widget children[22];      /* Children to manage */
206   Arg al[64];           /* Arg List */
207   register int ac = 0;      /* Arg Count */
208   Widget widget12;
209   Widget widget13;
210   Widget widget14;
211   Widget widget15;
212   Widget widget16;
213   Widget widget17;
214   Widget widget18;
215   Widget widget48;
216   Widget widget29;
217
218   Widget real_dialog;
219   Widget w;
220
221
222   ac = 0;
223   XtSetArg (al[ac], XmNvisual, visual); ac++;
224   XtSetArg (al[ac], XmNcolormap, cmap); ac++;
225   XtSetArg (al[ac], XmNdepth, visual_depth); ac++;
226
227   real_dialog = XmCreatePromptDialog (parent, "resourcesForm", al, ac);
228   resources_dialog = XtParent(real_dialog);
229
230   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SEPARATOR);
231   if (w) XtUnmanageChild (w);
232   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_TEXT);
233   if (w) XtUnmanageChild (w);
234   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SELECTION_LABEL);
235   if (w) XtUnmanageChild (w);
236   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_HELP_BUTTON);
237   if (w) XtUnmanageChild (w);
238
239   ac = 0;
240   XtSetArg (al [ac], XmNtopAttachment, XmATTACH_FORM); ac++;
241   XtSetArg (al [ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
242   XtSetArg (al [ac], XmNleftAttachment, XmATTACH_FORM); ac++;
243   XtSetArg (al [ac], XmNrightAttachment, XmATTACH_FORM); ac++;
244   resources_form = XmCreateForm (real_dialog, "form", al, ac);
245   XtManageChild (resources_form);
246
247   ac = 0;
248
249   widget12 = XmCreateLabel ( resources_form, "resourcesLabel", al, ac );
250   widget13 = XmCreateSeparator ( resources_form, "widget13", al, ac );
251   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
252   widget14 = XmCreateLabel ( resources_form, "timeoutLabel", al, ac );
253   ac = 0;
254   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
255   widget15 = XmCreateLabel ( resources_form, "cycleLabel", al, ac );
256   ac = 0;
257   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
258   widget16 = XmCreateLabel ( resources_form, "fadeSecondsLabel", al, ac );
259   ac = 0;
260   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
261   widget17 = XmCreateLabel ( resources_form, "fadeTicksLabel", al, ac );
262   ac = 0;
263   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
264   widget18 = XmCreateLabel ( resources_form, "lockLabel", al, ac );
265   ac = 0;
266   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_END); ac++;
267   widget48 = XmCreateLabel ( resources_form, "passwdLabel", al, ac );
268   ac = 0;
269   timeout_text = XmCreateTextField ( resources_form, "timeoutText", al, ac );
270   cycle_text = XmCreateTextField ( resources_form, "cycleText", al, ac );
271   fade_text = XmCreateTextField ( resources_form, "fadeSecondsText", al, ac );
272   ticks_text = XmCreateTextField ( resources_form, "fadeTicksText", al, ac );
273   lock_time_text = XmCreateTextField ( resources_form, "passwdText", al, ac );
274   passwd_time_text = XmCreateTextField ( resources_form, "lockText", al, ac );
275   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
276   verbose_toggle = XmCreateToggleButton ( resources_form, "verboseToggle", al, ac );
277   ac = 0;
278   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
279   cmap_toggle = XmCreateToggleButton ( resources_form, "cmapToggle", al, ac );
280   ac = 0;
281   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
282   fade_toggle = XmCreateToggleButton ( resources_form, "fadeToggle", al, ac );
283   ac = 0;
284   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
285   unfade_toggle = XmCreateToggleButton ( resources_form, "unfadeToggle", al, ac );
286   ac = 0;
287   XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
288   lock_toggle = XmCreateToggleButton ( resources_form, "lockToggle", al, ac );
289   ac = 0;
290   widget29 = XmCreateSeparator ( resources_form, "widget29", al, ac );
291
292   res_done = XmSelectionBoxGetChild (real_dialog, XmDIALOG_OK_BUTTON);
293   res_cancel = XmSelectionBoxGetChild (real_dialog, XmDIALOG_CANCEL_BUTTON);
294
295   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
296   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
297   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
298   XtSetArg(al[ac], XmNleftOffset, 4); ac++;
299   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
300   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
301   XtSetValues ( widget12,al, ac );
302   ac = 0;
303
304   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
305   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
306   XtSetArg(al[ac], XmNtopWidget, widget12); ac++;
307   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
308   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
309   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
310   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
311   XtSetArg(al[ac], XmNrightOffset, 0); ac++;
312   XtSetValues ( widget13,al, ac );
313   ac = 0;
314
315   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
316   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
317   XtSetArg(al[ac], XmNtopWidget, widget13); ac++;
318   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
319   XtSetArg(al[ac], XmNbottomWidget, timeout_text); ac++;
320   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
321   XtSetArg(al[ac], XmNleftOffset, 20); ac++;
322   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
323   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
324   XtSetArg(al[ac], XmNrightWidget, timeout_text); ac++;
325   XtSetValues ( widget14,al, ac );
326   ac = 0;
327
328   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
329   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
330   XtSetArg(al[ac], XmNtopWidget, cycle_text); ac++;
331   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
332   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
333   XtSetArg(al[ac], XmNbottomWidget, cycle_text); ac++;
334   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
335   XtSetArg(al[ac], XmNleftOffset, 20); ac++;
336   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
337   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
338   XtSetArg(al[ac], XmNrightWidget, cycle_text); ac++;
339   XtSetValues ( widget15,al, ac );
340   ac = 0;
341
342   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
343   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
344   XtSetArg(al[ac], XmNtopWidget, fade_text); ac++;
345   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
346   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
347   XtSetArg(al[ac], XmNbottomWidget, fade_text); ac++;
348   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
349   XtSetArg(al[ac], XmNleftOffset, 20); ac++;
350   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
351   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
352   XtSetArg(al[ac], XmNrightWidget, fade_text); ac++;
353   XtSetValues ( widget16,al, ac );
354   ac = 0;
355
356   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
357   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
358   XtSetArg(al[ac], XmNtopWidget, ticks_text); ac++;
359   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
360   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
361   XtSetArg(al[ac], XmNbottomWidget, ticks_text); ac++;
362   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
363   XtSetArg(al[ac], XmNleftOffset, 20); ac++;
364   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
365   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
366   XtSetArg(al[ac], XmNrightWidget, ticks_text); ac++;
367   XtSetValues ( widget17,al, ac );
368   ac = 0;
369
370   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
371   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
372   XtSetArg(al[ac], XmNtopWidget, lock_time_text); ac++;
373   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
374   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
375   XtSetArg(al[ac], XmNbottomWidget, lock_time_text); ac++;
376   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
377   XtSetArg(al[ac], XmNleftOffset, 19); ac++;
378   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
379   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
380   XtSetArg(al[ac], XmNrightWidget, lock_time_text); ac++;
381   XtSetValues ( widget18,al, ac );
382   ac = 0;
383
384   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
385   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
386   XtSetArg(al[ac], XmNtopWidget, passwd_time_text); ac++;
387   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
388   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
389   XtSetArg(al[ac], XmNbottomWidget, passwd_time_text); ac++;
390   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
391   XtSetArg(al[ac], XmNleftOffset, 14); ac++;
392   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_WIDGET); ac++;
393   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
394   XtSetArg(al[ac], XmNrightWidget, passwd_time_text); ac++;
395   XtSetValues ( widget48,al, ac );
396   ac = 0;
397
398   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
399   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
400   XtSetArg(al[ac], XmNtopWidget, widget13); ac++;
401   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
402   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
403   XtSetArg(al[ac], XmNleftOffset, 141); ac++;
404   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++;
405   XtSetValues ( timeout_text,al, ac );
406   ac = 0;
407
408   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
409   XtSetArg(al[ac], XmNtopOffset, 2); ac++;
410   XtSetArg(al[ac], XmNtopWidget, timeout_text); ac++;
411   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
412   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
413   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
414   XtSetArg(al[ac], XmNleftWidget, timeout_text); ac++;
415   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++;
416   XtSetValues ( cycle_text,al, ac );
417   ac = 0;
418
419   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
420   XtSetArg(al[ac], XmNtopOffset, 2); ac++;
421   XtSetArg(al[ac], XmNtopWidget, cycle_text); ac++;
422   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
423   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
424   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
425   XtSetArg(al[ac], XmNleftWidget, cycle_text); ac++;
426   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++;
427   XtSetValues ( fade_text,al, ac );
428   ac = 0;
429
430   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
431   XtSetArg(al[ac], XmNtopOffset, 2); ac++;
432   XtSetArg(al[ac], XmNtopWidget, fade_text); ac++;
433   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
434   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
435   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
436   XtSetArg(al[ac], XmNleftWidget, fade_text); ac++;
437   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++;
438   XtSetValues ( ticks_text,al, ac );
439   ac = 0;
440
441   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
442   XtSetArg(al[ac], XmNtopOffset, 2); ac++;
443   XtSetArg(al[ac], XmNtopWidget, ticks_text); ac++;
444   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
445   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
446   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
447   XtSetArg(al[ac], XmNleftWidget, ticks_text); ac++;
448   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++;
449   XtSetValues ( lock_time_text,al, ac );
450   ac = 0;
451
452   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
453   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
454   XtSetArg(al[ac], XmNtopWidget, lock_time_text); ac++;
455   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
456   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
457   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
458   XtSetArg(al[ac], XmNleftWidget, lock_time_text); ac++;
459   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++;
460   XtSetValues ( passwd_time_text,al, ac );
461   ac = 0;
462
463   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
464   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
465   XtSetArg(al[ac], XmNtopWidget, widget13); ac++;
466   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
467   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
468   XtSetArg(al[ac], XmNbottomWidget, timeout_text); ac++;
469   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_WIDGET); ac++;
470   XtSetArg(al[ac], XmNleftOffset, 20); ac++;
471   XtSetArg(al[ac], XmNleftWidget, timeout_text); ac++;
472   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
473   XtSetArg(al[ac], XmNrightOffset, 20); ac++;
474   XtSetValues ( verbose_toggle,al, ac );
475   ac = 0;
476
477   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
478   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
479   XtSetArg(al[ac], XmNtopWidget, cycle_text); ac++;
480   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
481   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
482   XtSetArg(al[ac], XmNbottomWidget, cycle_text); ac++;
483   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
484   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
485   XtSetArg(al[ac], XmNleftWidget, verbose_toggle); ac++;
486   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
487   XtSetArg(al[ac], XmNrightOffset, 20); ac++;
488   XtSetValues ( cmap_toggle,al, ac );
489   ac = 0;
490
491   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
492   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
493   XtSetArg(al[ac], XmNtopWidget, fade_text); ac++;
494   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
495   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
496   XtSetArg(al[ac], XmNbottomWidget, fade_text); ac++;
497   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
498   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
499   XtSetArg(al[ac], XmNleftWidget, cmap_toggle); ac++;
500   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
501   XtSetArg(al[ac], XmNrightOffset, 20); ac++;
502   XtSetValues ( fade_toggle,al, ac );
503   ac = 0;
504
505   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
506   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
507   XtSetArg(al[ac], XmNtopWidget, ticks_text); ac++;
508   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
509   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
510   XtSetArg(al[ac], XmNbottomWidget, ticks_text); ac++;
511   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
512   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
513   XtSetArg(al[ac], XmNleftWidget, fade_toggle); ac++;
514   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
515   XtSetArg(al[ac], XmNrightOffset, 20); ac++;
516   XtSetValues ( unfade_toggle,al, ac );
517   ac = 0;
518
519   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
520   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
521   XtSetArg(al[ac], XmNtopWidget, lock_time_text); ac++;
522   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
523   XtSetArg(al[ac], XmNbottomOffset, 0); ac++;
524   XtSetArg(al[ac], XmNbottomWidget, lock_time_text); ac++;
525   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); ac++;
526   XtSetArg(al[ac], XmNleftOffset, 0); ac++;
527   XtSetArg(al[ac], XmNleftWidget, unfade_toggle); ac++;
528   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
529   XtSetArg(al[ac], XmNrightOffset, 20); ac++;
530   XtSetValues ( lock_toggle,al, ac );
531   ac = 0;
532
533   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
534   XtSetArg(al[ac], XmNtopOffset, 0); ac++;
535   XtSetArg(al[ac], XmNtopWidget, passwd_time_text); ac++;
536
537   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
538   XtSetArg(al[ac], XmNbottomOffset, 4); ac++;
539
540   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
541   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
542   XtSetValues ( widget29,al, ac );
543   ac = 0;
544
545
546
547   ac = 0;
548   children[ac++] = widget12;
549   children[ac++] = widget13;
550   children[ac++] = widget14;
551   children[ac++] = widget15;
552   children[ac++] = widget16;
553   children[ac++] = widget17;
554   children[ac++] = widget18;
555   children[ac++] = widget48;
556   children[ac++] = timeout_text;
557   children[ac++] = cycle_text;
558   children[ac++] = fade_text;
559   children[ac++] = ticks_text;
560   children[ac++] = lock_time_text;
561   children[ac++] = passwd_time_text;
562   children[ac++] = verbose_toggle;
563   children[ac++] = cmap_toggle;
564   children[ac++] = fade_toggle;
565   children[ac++] = unfade_toggle;
566   children[ac++] = lock_toggle;
567   children[ac++] = widget29;
568
569   XtManageChildren(children, ac);
570   ac = 0;
571
572   resources_form = real_dialog;
573 }
574
575
576
577 void
578 create_demo_dialog( parent )
579 Widget parent;
580 {
581   Widget children[11];      /* Children to manage */
582   Arg al[64];           /* Arg List */
583   register int ac = 0;      /* Arg Count */
584   XmString xmstrings[15];    /* temporary storage for XmStrings */
585
586   Widget real_dialog;
587   Widget w;
588
589
590   ac = 0;
591   XtSetArg (al[ac], XmNvisual, visual); ac++;
592   XtSetArg (al[ac], XmNcolormap, cmap); ac++;
593   XtSetArg (al[ac], XmNdepth, visual_depth); ac++;
594
595
596   real_dialog = XmCreatePromptDialog (parent, "demoForm", al, ac);
597   demo_dialog = XtParent(real_dialog);
598
599   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SEPARATOR);
600   if (w) XtUnmanageChild (w);
601   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_TEXT);
602   if (w) XtUnmanageChild (w);
603   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_SELECTION_LABEL);
604   if (w) XtUnmanageChild (w);
605   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_OK_BUTTON);
606   if (w) XtUnmanageChild (w);
607   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_CANCEL_BUTTON);
608   if (w) XtUnmanageChild (w);
609   w = XmSelectionBoxGetChild (real_dialog, XmDIALOG_HELP_BUTTON);
610   if (w) XtUnmanageChild (w);
611
612   ac = 0;
613   XtSetArg (al [ac], XmNtopAttachment, XmATTACH_FORM); ac++;
614   XtSetArg (al [ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
615   XtSetArg (al [ac], XmNleftAttachment, XmATTACH_FORM); ac++;
616   XtSetArg (al [ac], XmNrightAttachment, XmATTACH_FORM); ac++;
617   demo_form = XmCreateForm (real_dialog, "form", al, ac);
618   XtManageChild (demo_form);
619
620   label1 = XmCreateLabel ( demo_form, "label1", al, ac );
621   label2 = XmCreateLabel ( demo_form, "label2", al, ac );
622   demo_list = XmCreateScrolledList ( demo_form, "demoList", al, ac );
623   text_area = XtParent ( demo_list );
624
625   ac = 0;
626   text_line = XmSelectionBoxGetChild (real_dialog, XmDIALOG_TEXT);
627   XtManageChild(text_line);
628
629   next = XmCreatePushButton ( real_dialog, "next", al, ac );
630   prev = XmCreatePushButton ( real_dialog, "prev", al, ac );
631   edit = XmCreatePushButton ( real_dialog, "edit", al, ac );
632   done = XmCreatePushButton ( real_dialog, "done", al, ac );
633   restart = XmCreatePushButton ( real_dialog, "restart", al, ac );
634   XtManageChild(next);
635   XtManageChild(prev);
636   XtManageChild(edit);
637   XtManageChild(done);
638   XtManageChild(restart);
639
640   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
641   XtSetArg(al[ac], XmNtopOffset, 5); ac++;
642   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
643   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
644   XtSetArg(al[ac], XmNleftOffset, 4); ac++;
645   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
646   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
647   XtSetValues ( label1,al, ac );
648   ac = 0;
649
650   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
651   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
652   XtSetArg(al[ac], XmNtopWidget, label1); ac++;
653   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;
654   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
655   XtSetArg(al[ac], XmNleftOffset, 4); ac++;
656   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
657   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
658   XtSetValues ( label2,al, ac );
659   ac = 0;
660
661   XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;
662   XtSetArg(al[ac], XmNtopOffset, 4); ac++;
663   XtSetArg(al[ac], XmNtopWidget, label2); ac++;
664   XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
665   XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
666   XtSetArg(al[ac], XmNleftOffset, 4); ac++;
667   XtSetArg(al[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
668   XtSetArg(al[ac], XmNrightOffset, 4); ac++;
669   XtSetValues ( text_area,al, ac );
670
671   XtManageChild(demo_list);
672   XtManageChild(label1);
673   XtManageChild(label2);
674
675   demo_form = real_dialog;
676 }