1 /* demo-Xm.c --- implements the interactive demo-mode and options dialogs.
2 * xscreensaver, Copyright (c) 1999 Jamie Zawinski <jwz@jwz.org>
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that
7 * copyright notice and this permission notice appear in supporting
8 * documentation. No representations are made about the suitability of this
9 * software for any purpose. It is provided "as is" without express or
17 #include <X11/Xatom.h>
18 #include <X11/Intrinsic.h>
20 #include <X11/IntrinsicP.h> /* just for debug info */
21 #include <X11/ShellP.h>
23 #include <X11/Shell.h>
28 #include <Xm/ScrolledW.h>
31 #include <Xm/PushBG.h>
34 #include <Xm/ToggleBG.h>
35 #include <Xm/CascadeBG.h>
36 #ifdef HAVE_XMCOMBOBOX
37 # include <Xm/ComboBox.h>
39 #include <Xm/RowColumn.h>
40 #include <Xm/LabelG.h>
41 #include <Xm/SeparatoG.h>
42 #include <Xm/SelectioB.h>
47 const char *visual_menu[] = {
48 "Any", "Best", "Default", "Default-N", "GL", "TrueColor", "PseudoColor",
49 "StaticGray", "GrayScale", "DirectColor", "Color", "Gray", "Mono", 0
54 static Widget create_demos_page (Widget parent);
55 static Widget create_options_page (Widget parent);
58 tab_cb (Widget button, XtPointer client_data, XtPointer ignored)
60 Widget parent = XtParent(button);
61 Widget tabber = XtNameToWidget (parent, "*folder");
62 Widget this_tab = (Widget) client_data;
67 XtVaGetValues (tabber, XmNnumChildren, &nkids, XmNchildren, &kids, 0);
70 XtUnmanageChildren (kids, nkids);
72 XtManageChild (this_tab);
77 create_xscreensaver_demo (Widget parent)
90 Widget mainw, form, menubar;
91 Widget demo_tab, options_tab, hr, tabber, demos, options;
95 mainw = XmCreateMainWindow (parent, "demoForm", av, ac);
96 form = XmCreateForm (mainw, "form", av, ac);
97 menubar = XmCreateSimpleMenuBar (form, "menubar", av, ac);
98 XtVaSetValues (menubar,
99 XmNtopAttachment, XmATTACH_FORM,
100 XmNleftAttachment, XmATTACH_FORM,
101 XmNrightAttachment, XmATTACH_FORM,
105 Widget menu = 0, item = 0;
107 "*file", "blank", "lock", "kill", "restart", "-", "exit",
108 "*edit", "cut", "copy", "paste",
109 "*help", "about", "docMenu" };
111 for (i = 0; i < sizeof(menus)/sizeof(*menus); i++)
114 if (menus[i][0] == '-')
115 item = XmCreateSeparatorGadget (menu, "separator", av, ac);
116 else if (menus[i][0] != '*')
117 item = XmCreatePushButtonGadget (menu, menus[i], av, ac);
120 menu = XmCreatePulldownMenu (parent, menus[i]+1, av, ac);
121 XtSetArg (av [ac], XmNsubMenuId, menu); ac++;
122 item = XmCreateCascadeButtonGadget (menubar, menus[i]+1, av, ac);
124 if (!strcmp (menus[i]+1, "help"))
125 XtVaSetValues(menubar, XmNmenuHelpWidget, item, 0);
127 XtManageChild (item);
132 demo_tab = XmCreatePushButtonGadget (form, "demoTab", av, ac);
133 XtVaSetValues (demo_tab,
134 XmNleftAttachment, XmATTACH_FORM,
135 XmNtopAttachment, XmATTACH_WIDGET,
136 XmNtopWidget, menubar,
139 options_tab = XmCreatePushButtonGadget (form, "optionsTab", av, ac);
140 XtVaSetValues (options_tab,
141 XmNleftAttachment, XmATTACH_WIDGET,
142 XmNleftWidget, demo_tab,
143 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
144 XmNtopWidget, demo_tab,
145 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
146 XmNbottomWidget, demo_tab,
149 hr = XmCreateSeparatorGadget (form, "hr", av, ac);
151 XmNleftAttachment, XmATTACH_FORM,
152 XmNrightAttachment, XmATTACH_FORM,
153 XmNtopAttachment, XmATTACH_WIDGET,
154 XmNtopWidget, demo_tab,
157 tabber = XmCreateForm (form, "folder", av, ac);
158 XtVaSetValues (tabber,
159 XmNtopAttachment, XmATTACH_WIDGET,
161 XmNleftAttachment, XmATTACH_FORM,
162 XmNrightAttachment, XmATTACH_FORM,
163 XmNbottomAttachment, XmATTACH_FORM,
166 demos = create_demos_page (tabber);
167 options = create_options_page (tabber);
169 XtAddCallback (demo_tab, XmNactivateCallback, tab_cb, demos);
170 XtAddCallback (options_tab, XmNactivateCallback, tab_cb, options);
172 XtManageChild (demos);
173 XtManageChild (options);
175 XtManageChild (demo_tab);
176 XtManageChild (options_tab);
178 XtManageChild (menubar);
179 XtManageChild (tabber);
180 XtManageChild (form);
183 XtUnmanageChild (options);
184 XtManageChild (demos);
192 create_demos_page (Widget parent)
194 /* Form1 (horizontal)
198 ButtonBox1 (vertical)
206 Text ("Command Line")
212 ButtonBox2 (vertical)
214 Button ("Documentation")
216 Widget form1, form2, form3, form4;
217 Widget scroller, list, buttonbox1, down, up;
218 Widget frame, frame_label, doc, cmd_label, cmd_text, enabled, vis_label;
220 Widget hr, buttonbox2, demo, man;
225 form1 = XmCreateForm (parent, "form1", av, ac);
226 form2 = XmCreateForm (form1, "form2", av, ac);
227 XtVaSetValues (form2,
228 XmNtopAttachment, XmATTACH_FORM,
229 XmNleftAttachment, XmATTACH_FORM,
230 XmNbottomAttachment, XmATTACH_FORM,
233 scroller = XmCreateScrolledWindow (form2, "scroller", av, ac);
234 XtVaSetValues (scroller,
235 XmNtopAttachment, XmATTACH_FORM,
236 XmNleftAttachment, XmATTACH_FORM,
237 XmNrightAttachment, XmATTACH_FORM,
238 XmNbottomAttachment, XmATTACH_WIDGET,
240 list = XmCreateList (scroller, "list", av, ac);
242 buttonbox1 = XmCreateForm (form2, "buttonbox1", av, ac);
243 XtVaSetValues (buttonbox1,
244 XmNleftAttachment, XmATTACH_FORM,
245 XmNrightAttachment, XmATTACH_FORM,
246 XmNbottomAttachment, XmATTACH_FORM,
248 XtVaSetValues (scroller, XmNbottomWidget, buttonbox1, 0);
250 down = XmCreatePushButton (buttonbox1, "down", av, ac);
252 XmNleftAttachment, XmATTACH_FORM,
253 XmNtopAttachment, XmATTACH_FORM,
254 XmNbottomAttachment, XmATTACH_FORM,
256 up = XmCreatePushButton (buttonbox1, "up", av, ac);
258 XmNleftAttachment, XmATTACH_WIDGET,
260 XmNtopAttachment, XmATTACH_FORM,
261 XmNbottomAttachment, XmATTACH_FORM,
264 form3 = XmCreateForm (form1, "form3", av, ac);
265 XtVaSetValues (form3,
266 XmNtopAttachment, XmATTACH_FORM,
267 XmNleftAttachment, XmATTACH_WIDGET,
268 XmNleftWidget, form2,
269 XmNrightAttachment, XmATTACH_FORM,
270 XmNbottomAttachment, XmATTACH_FORM,
272 frame = XmCreateFrame (form3, "frame", av, ac);
275 XtSetArg (av [ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++;
276 frame_label = XmCreateLabelGadget (frame, "frameLabel", av, ac);
279 XtVaSetValues (frame,
280 XmNtopAttachment, XmATTACH_FORM,
281 XmNleftAttachment, XmATTACH_FORM,
282 XmNrightAttachment, XmATTACH_FORM,
283 XmNbottomAttachment, XmATTACH_WIDGET,
287 XtSetArg (av [ac], XmNchildType, XmFRAME_WORKAREA_CHILD); ac++;
288 doc = XmCreateText (frame, "doc", av, ac);
293 XmNcursorPositionVisible, FALSE,
295 XmNeditMode, XmMULTI_LINE_EDIT,
296 XmNshadowThickness, 0,
299 cmd_label = XmCreateLabelGadget (form3, "cmdLabel", av, ac);
300 XtVaSetValues (cmd_label,
301 XmNleftAttachment, XmATTACH_FORM,
302 XmNrightAttachment, XmATTACH_FORM,
303 XmNbottomAttachment, XmATTACH_WIDGET,
305 XtVaSetValues (frame, XmNbottomWidget, cmd_label, 0);
307 cmd_text = XmCreateTextField (form3, "cmdText", av, ac);
308 XtVaSetValues (cmd_text,
309 XmNleftAttachment, XmATTACH_FORM,
310 XmNrightAttachment, XmATTACH_FORM,
311 XmNbottomAttachment, XmATTACH_WIDGET,
313 XtVaSetValues (cmd_label, XmNbottomWidget, cmd_text, 0);
315 form4 = XmCreateForm (form3, "form4", av, ac);
316 XtVaSetValues (form4,
317 XmNleftAttachment, XmATTACH_FORM,
318 XmNrightAttachment, XmATTACH_FORM,
319 XmNbottomAttachment, XmATTACH_WIDGET,
321 XtVaSetValues (cmd_text, XmNbottomWidget, form4, 0);
323 enabled = XmCreateToggleButtonGadget (form4, "enabled", av, ac);
324 XtVaSetValues (enabled,
325 XmNtopAttachment, XmATTACH_FORM,
326 XmNleftAttachment, XmATTACH_FORM,
327 XmNbottomAttachment, XmATTACH_FORM,
329 vis_label = XmCreateLabelGadget (form4, "visLabel", av, ac);
330 XtVaSetValues (vis_label,
331 XmNtopAttachment, XmATTACH_FORM,
332 XmNleftAttachment, XmATTACH_WIDGET,
333 XmNleftWidget, enabled,
334 XmNbottomAttachment, XmATTACH_FORM,
336 #ifdef HAVE_XMCOMBOBOX
340 XtSetArg (av [ac], XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); ac++;
341 combo = XmCreateComboBox (form4, "combo", av, ac);
342 for (i = 0; visual_menu[i]; i++)
344 XmString xs = XmStringCreate ((char *) visual_menu[i],
345 XmSTRING_DEFAULT_CHARSET);
346 XmComboBoxAddItem (combo, xs, 0, False);
349 XtVaGetValues (combo, XmNlist, &list, 0);
350 XtVaSetValues (list, XmNvisibleItemCount, i, 0);
352 #else /* !HAVE_XMCOMBOBOX */
354 Widget popup_menu = XmCreatePulldownMenu (parent, "menu", av, ac);
356 for (i = 0; visual_menu[i]; i++)
358 XmString xs = XmStringCreate ((char *) visual_menu[i],
359 XmSTRING_DEFAULT_CHARSET);
361 XtSetArg (av [ac], XmNlabelString, xs); ac++;
362 kids[i] = XmCreatePushButtonGadget (popup_menu, "button", av, ac);
363 /* XtAddCallback (combo, XmNactivateCallback, visual_popup_cb,
367 XtManageChildren (kids, i);
370 XtSetArg (av [ac], XmNsubMenuId, popup_menu); ac++;
371 combo = XmCreateOptionMenu (form4, "combo", av, ac);
374 #endif /* !HAVE_XMCOMBOBOX */
376 XtVaSetValues (combo,
377 XmNtopAttachment, XmATTACH_FORM,
378 XmNleftAttachment, XmATTACH_WIDGET,
379 XmNleftWidget, vis_label,
380 XmNbottomAttachment, XmATTACH_FORM,
383 hr = XmCreateSeparatorGadget (form3, "hr", av, ac);
385 XmNleftAttachment, XmATTACH_FORM,
386 XmNrightAttachment, XmATTACH_FORM,
387 XmNbottomAttachment, XmATTACH_WIDGET,
389 XtVaSetValues (form4, XmNbottomWidget, hr, 0);
391 buttonbox2 = XmCreateForm (form3, "buttonbox2", av, ac);
392 XtVaSetValues (buttonbox2,
393 XmNleftAttachment, XmATTACH_FORM,
394 XmNrightAttachment, XmATTACH_FORM,
395 XmNbottomAttachment, XmATTACH_FORM,
397 XtVaSetValues (hr, XmNbottomWidget, buttonbox2, 0);
399 demo = XmCreatePushButtonGadget (buttonbox2, "demo", av, ac);
401 XmNleftAttachment, XmATTACH_FORM,
402 XmNtopAttachment, XmATTACH_FORM,
403 XmNbottomAttachment, XmATTACH_FORM,
405 man = XmCreatePushButtonGadget (buttonbox2, "man", av, ac);
407 XmNrightAttachment, XmATTACH_FORM,
408 XmNtopAttachment, XmATTACH_FORM,
409 XmNbottomAttachment, XmATTACH_FORM,
412 XtManageChild (demo);
414 XtManageChild (buttonbox2);
417 XtManageChild (combo);
418 XtManageChild (vis_label);
419 XtManageChild (enabled);
420 XtManageChild (form4);
422 XtManageChild (cmd_text);
423 XtManageChild (cmd_label);
426 XtManageChild (frame_label);
427 XtManageChild (frame);
428 XtManageChild (form3);
431 XtManageChild (down);
432 XtManageChild (buttonbox1);
434 XtManageChild (list);
435 XtManageChild (scroller);
436 XtManageChild (form2);
438 XtManageChild (form1);
440 XtVaSetValues (form1,
441 XmNleftAttachment, XmATTACH_FORM,
442 XmNrightAttachment, XmATTACH_FORM,
443 XmNtopAttachment, XmATTACH_FORM,
444 XmNbottomAttachment, XmATTACH_FORM,
453 create_options_page (Widget parent)
457 Widget children[100];
458 Widget timeout_label, cycle_label, fade_seconds_label, fade_ticks_label;
459 Widget lock_label, passwd_label, hr;
460 Widget preferences_form;
462 Widget timeout_text, cycle_text, fade_text, fade_ticks_text;
463 Widget lock_timeout_text, passwd_timeout_text, verbose_toggle;
464 Widget install_cmap_toggle, fade_toggle, unfade_toggle;
465 Widget lock_toggle, prefs_done, prefs_cancel;
468 XtSetArg (av [ac], XmNdialogType, XmDIALOG_PROMPT); ac++;
471 XtSetArg (av [ac], XmNtopAttachment, XmATTACH_FORM); ac++;
472 XtSetArg (av [ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
473 XtSetArg (av [ac], XmNleftAttachment, XmATTACH_FORM); ac++;
474 XtSetArg (av [ac], XmNrightAttachment, XmATTACH_FORM); ac++;
475 preferences_form = XmCreateForm (parent, "preferencesForm", av, ac);
476 XtManageChild (preferences_form);
480 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
481 timeout_label = XmCreateLabelGadget (preferences_form, "timeoutLabel",
484 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
485 cycle_label = XmCreateLabelGadget (preferences_form, "cycleLabel",
488 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
489 fade_seconds_label = XmCreateLabelGadget (preferences_form,
490 "fadeSecondsLabel", av, ac);
492 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
493 fade_ticks_label = XmCreateLabelGadget (preferences_form, "fadeTicksLabel",
496 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
497 lock_label = XmCreateLabelGadget (preferences_form, "lockLabel", av, ac);
499 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
500 passwd_label = XmCreateLabelGadget (preferences_form, "passwdLabel", av, ac);
502 timeout_text = XmCreateTextField (preferences_form, "timeoutText", av, ac);
503 cycle_text = XmCreateTextField (preferences_form, "cycleText", av, ac);
504 fade_text = XmCreateTextField (preferences_form, "fadeSecondsText", av, ac);
505 fade_ticks_text = XmCreateTextField (preferences_form, "fadeTicksText",
507 lock_timeout_text = XmCreateTextField (preferences_form, "passwdText",
509 passwd_timeout_text = XmCreateTextField (preferences_form, "lockText",
511 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
512 verbose_toggle = XmCreateToggleButtonGadget (preferences_form,
513 "verboseToggle", av, ac);
515 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
516 install_cmap_toggle = XmCreateToggleButtonGadget (preferences_form,
517 "cmapToggle", av, ac);
519 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
520 fade_toggle = XmCreateToggleButtonGadget (preferences_form, "fadeToggle",
523 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
524 unfade_toggle = XmCreateToggleButtonGadget (preferences_form, "unfadeToggle",
527 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
528 lock_toggle = XmCreateToggleButtonGadget (preferences_form, "lockToggle",
531 hr = XmCreateSeparatorGadget (preferences_form, "separator", av, ac);
533 prefs_done = XmCreatePushButtonGadget (preferences_form, "OK", av, ac);
534 prefs_cancel = XmCreatePushButtonGadget (preferences_form, "Cancel", av, ac);
536 XtVaSetValues (timeout_label,
537 XmNtopAttachment, XmATTACH_FORM,
539 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
540 XmNbottomWidget, timeout_text,
541 XmNleftAttachment, XmATTACH_FORM,
543 XmNrightAttachment, XmATTACH_WIDGET,
545 XmNrightWidget, timeout_text,
548 XtVaSetValues (cycle_label,
549 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
551 XmNtopWidget, cycle_text,
552 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
554 XmNbottomWidget, cycle_text,
555 XmNleftAttachment, XmATTACH_FORM,
557 XmNrightAttachment, XmATTACH_WIDGET,
559 XmNrightWidget, cycle_text,
562 XtVaSetValues (fade_seconds_label,
563 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
565 XmNtopWidget, fade_text,
566 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
568 XmNbottomWidget, fade_text,
569 XmNleftAttachment, XmATTACH_FORM,
571 XmNrightAttachment, XmATTACH_WIDGET,
573 XmNrightWidget, fade_text,
576 XtVaSetValues (fade_ticks_label,
577 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
579 XmNtopWidget, fade_ticks_text,
580 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
582 XmNbottomWidget, fade_ticks_text,
583 XmNleftAttachment, XmATTACH_FORM,
585 XmNrightAttachment, XmATTACH_WIDGET,
587 XmNrightWidget, fade_ticks_text,
590 XtVaSetValues (lock_label,
591 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
593 XmNtopWidget, lock_timeout_text,
594 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
596 XmNbottomWidget, lock_timeout_text,
597 XmNleftAttachment, XmATTACH_FORM,
599 XmNrightAttachment, XmATTACH_WIDGET,
601 XmNrightWidget, lock_timeout_text,
604 XtVaSetValues (passwd_label,
605 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
607 XmNtopWidget, passwd_timeout_text,
608 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
610 XmNbottomWidget, passwd_timeout_text,
611 XmNleftAttachment, XmATTACH_FORM,
613 XmNrightAttachment, XmATTACH_WIDGET,
615 XmNrightWidget, passwd_timeout_text,
618 XtVaSetValues (timeout_text,
619 XmNtopAttachment, XmATTACH_FORM,
621 XmNleftAttachment, XmATTACH_FORM,
625 XtVaSetValues (cycle_text,
626 XmNtopAttachment, XmATTACH_WIDGET,
628 XmNtopWidget, timeout_text,
629 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
631 XmNleftWidget, timeout_text,
634 XtVaSetValues (fade_text,
635 XmNtopAttachment, XmATTACH_WIDGET,
637 XmNtopWidget, cycle_text,
638 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
640 XmNleftWidget, cycle_text,
643 XtVaSetValues (fade_ticks_text,
644 XmNtopAttachment, XmATTACH_WIDGET,
646 XmNtopWidget, fade_text,
647 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
649 XmNleftWidget, fade_text,
652 XtVaSetValues (lock_timeout_text,
653 XmNtopAttachment, XmATTACH_WIDGET,
655 XmNtopWidget, fade_ticks_text,
656 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
658 XmNleftWidget, fade_ticks_text,
661 XtVaSetValues (passwd_timeout_text,
662 XmNtopAttachment, XmATTACH_WIDGET,
664 XmNtopWidget, lock_timeout_text,
665 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
667 XmNleftWidget, lock_timeout_text,
670 XtVaSetValues (verbose_toggle,
671 XmNtopAttachment, XmATTACH_FORM,
673 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
675 XmNbottomWidget, timeout_text,
676 XmNleftAttachment, XmATTACH_WIDGET,
678 XmNleftWidget, timeout_text,
679 XmNrightAttachment, XmATTACH_FORM,
683 XtVaSetValues (install_cmap_toggle,
684 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
686 XmNtopWidget, cycle_text,
687 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
689 XmNbottomWidget, cycle_text,
690 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
692 XmNleftWidget, verbose_toggle,
693 XmNrightAttachment, XmATTACH_FORM,
697 XtVaSetValues (fade_toggle,
698 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
700 XmNtopWidget, fade_text,
701 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
703 XmNbottomWidget, fade_text,
704 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
706 XmNleftWidget, install_cmap_toggle,
707 XmNrightAttachment, XmATTACH_FORM,
711 XtVaSetValues (unfade_toggle,
712 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
714 XmNtopWidget, fade_ticks_text,
715 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
717 XmNbottomWidget, fade_ticks_text,
718 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
720 XmNleftWidget, fade_toggle,
721 XmNrightAttachment, XmATTACH_FORM,
725 XtVaSetValues (lock_toggle,
726 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
728 XmNtopWidget, lock_timeout_text,
729 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
731 XmNbottomWidget, lock_timeout_text,
732 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
734 XmNleftWidget, unfade_toggle,
735 XmNrightAttachment, XmATTACH_FORM,
740 XmNtopWidget, passwd_timeout_text,
741 XmNbottomAttachment, XmATTACH_FORM,
743 XmNleftAttachment, XmATTACH_FORM,
744 XmNrightAttachment, XmATTACH_FORM,
747 XtVaSetValues (prefs_done,
748 XmNleftAttachment, XmATTACH_FORM,
749 XmNbottomAttachment, XmATTACH_FORM,
751 XtVaSetValues (prefs_cancel,
752 XmNrightAttachment, XmATTACH_FORM,
753 XmNbottomAttachment, XmATTACH_FORM,
756 XmNbottomAttachment, XmATTACH_WIDGET,
757 XmNbottomWidget, prefs_done,
761 children[ac++] = timeout_label;
762 children[ac++] = cycle_label;
763 children[ac++] = fade_seconds_label;
764 children[ac++] = fade_ticks_label;
765 children[ac++] = lock_label;
766 children[ac++] = passwd_label;
767 children[ac++] = timeout_text;
768 children[ac++] = cycle_text;
769 children[ac++] = fade_text;
770 children[ac++] = fade_ticks_text;
771 children[ac++] = lock_timeout_text;
772 children[ac++] = passwd_timeout_text;
773 children[ac++] = verbose_toggle;
774 children[ac++] = install_cmap_toggle;
775 children[ac++] = fade_toggle;
776 children[ac++] = unfade_toggle;
777 children[ac++] = lock_toggle;
780 XtManageChildren(children, ac);
783 XtManageChild (prefs_done);
784 XtManageChild (prefs_cancel);
786 XtManageChild (preferences_form);
788 XtVaSetValues (preferences_form,
789 XmNleftAttachment, XmATTACH_FORM,
790 XmNrightAttachment, XmATTACH_FORM,
791 XmNtopAttachment, XmATTACH_FORM,
792 XmNbottomAttachment, XmATTACH_FORM,
795 return preferences_form;