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 #include <Xm/RowColumn.h>
37 #include <Xm/LabelG.h>
38 #include <Xm/SeparatoG.h>
39 #include <Xm/SelectioB.h>
41 #ifdef HAVE_XMCOMBOBOX /* a Motif 2.0 widget */
42 # include <Xm/ComboBox.h>
43 # ifndef XmNtextField /* Lesstif 0.89.4 bug */
44 # undef HAVE_XMCOMBOBOX
46 #endif /* HAVE_XMCOMBOBOX */
52 const char *visual_menu[] = {
53 "Any", "Best", "Default", "Default-N", "GL", "TrueColor", "PseudoColor",
54 "StaticGray", "GrayScale", "DirectColor", "Color", "Gray", "Mono", 0
59 static Widget create_demos_page (Widget parent);
60 static Widget create_options_page (Widget parent);
63 tab_cb (Widget button, XtPointer client_data, XtPointer ignored)
65 Widget parent = XtParent(button);
66 Widget tabber = XtNameToWidget (parent, "*folder");
67 Widget this_tab = (Widget) client_data;
72 XtVaGetValues (tabber, XmNnumChildren, &nkids, XmNchildren, &kids, 0);
75 XtUnmanageChildren (kids, nkids);
77 XtManageChild (this_tab);
82 create_xscreensaver_demo (Widget parent)
95 Widget mainw, form, menubar;
96 Widget demo_tab, options_tab, hr, tabber, demos, options;
100 mainw = XmCreateMainWindow (parent, "demoForm", av, ac);
101 form = XmCreateForm (mainw, "form", av, ac);
102 menubar = XmCreateSimpleMenuBar (form, "menubar", av, ac);
103 XtVaSetValues (menubar,
104 XmNtopAttachment, XmATTACH_FORM,
105 XmNleftAttachment, XmATTACH_FORM,
106 XmNrightAttachment, XmATTACH_FORM,
110 Widget menu = 0, item = 0;
112 "*file", "blank", "lock", "kill", "restart", "-", "exit",
113 "*edit", "cut", "copy", "paste",
114 "*help", "about", "docMenu" };
116 for (i = 0; i < sizeof(menus)/sizeof(*menus); i++)
119 if (menus[i][0] == '-')
120 item = XmCreateSeparatorGadget (menu, "separator", av, ac);
121 else if (menus[i][0] != '*')
122 item = XmCreatePushButtonGadget (menu, menus[i], av, ac);
125 menu = XmCreatePulldownMenu (parent, menus[i]+1, av, ac);
126 XtSetArg (av [ac], XmNsubMenuId, menu); ac++;
127 item = XmCreateCascadeButtonGadget (menubar, menus[i]+1, av, ac);
129 if (!strcmp (menus[i]+1, "help"))
130 XtVaSetValues(menubar, XmNmenuHelpWidget, item, 0);
132 XtManageChild (item);
137 demo_tab = XmCreatePushButtonGadget (form, "demoTab", av, ac);
138 XtVaSetValues (demo_tab,
139 XmNleftAttachment, XmATTACH_FORM,
140 XmNtopAttachment, XmATTACH_WIDGET,
141 XmNtopWidget, menubar,
144 options_tab = XmCreatePushButtonGadget (form, "optionsTab", av, ac);
145 XtVaSetValues (options_tab,
146 XmNleftAttachment, XmATTACH_WIDGET,
147 XmNleftWidget, demo_tab,
148 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
149 XmNtopWidget, demo_tab,
150 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
151 XmNbottomWidget, demo_tab,
154 hr = XmCreateSeparatorGadget (form, "hr", av, ac);
156 XmNleftAttachment, XmATTACH_FORM,
157 XmNrightAttachment, XmATTACH_FORM,
158 XmNtopAttachment, XmATTACH_WIDGET,
159 XmNtopWidget, demo_tab,
162 tabber = XmCreateForm (form, "folder", av, ac);
163 XtVaSetValues (tabber,
164 XmNtopAttachment, XmATTACH_WIDGET,
166 XmNleftAttachment, XmATTACH_FORM,
167 XmNrightAttachment, XmATTACH_FORM,
168 XmNbottomAttachment, XmATTACH_FORM,
171 demos = create_demos_page (tabber);
172 options = create_options_page (tabber);
174 XtAddCallback (demo_tab, XmNactivateCallback, tab_cb, demos);
175 XtAddCallback (options_tab, XmNactivateCallback, tab_cb, options);
177 XtManageChild (demos);
178 XtManageChild (options);
180 XtManageChild (demo_tab);
181 XtManageChild (options_tab);
183 XtManageChild (menubar);
184 XtManageChild (tabber);
185 XtManageChild (form);
188 XtUnmanageChild (options);
189 XtManageChild (demos);
197 create_demos_page (Widget parent)
199 /* Form1 (horizontal)
203 ButtonBox1 (vertical)
211 Text ("Command Line")
217 ButtonBox2 (vertical)
219 Button ("Documentation")
221 Widget form1, form2, form3, form4;
222 Widget scroller, list, buttonbox1, down, up;
223 Widget frame, frame_label, doc, cmd_label, cmd_text, enabled, vis_label;
225 Widget hr, buttonbox2, demo, man;
230 form1 = XmCreateForm (parent, "form1", av, ac);
231 form2 = XmCreateForm (form1, "form2", av, ac);
232 XtVaSetValues (form2,
233 XmNtopAttachment, XmATTACH_FORM,
234 XmNleftAttachment, XmATTACH_FORM,
235 XmNbottomAttachment, XmATTACH_FORM,
238 scroller = XmCreateScrolledWindow (form2, "scroller", av, ac);
239 XtVaSetValues (scroller,
240 XmNtopAttachment, XmATTACH_FORM,
241 XmNleftAttachment, XmATTACH_FORM,
242 XmNrightAttachment, XmATTACH_FORM,
243 XmNbottomAttachment, XmATTACH_WIDGET,
245 list = XmCreateList (scroller, "list", av, ac);
247 buttonbox1 = XmCreateForm (form2, "buttonbox1", av, ac);
248 XtVaSetValues (buttonbox1,
249 XmNleftAttachment, XmATTACH_FORM,
250 XmNrightAttachment, XmATTACH_FORM,
251 XmNbottomAttachment, XmATTACH_FORM,
253 XtVaSetValues (scroller, XmNbottomWidget, buttonbox1, 0);
255 down = XmCreatePushButton (buttonbox1, "down", av, ac);
257 XmNleftAttachment, XmATTACH_FORM,
258 XmNtopAttachment, XmATTACH_FORM,
259 XmNbottomAttachment, XmATTACH_FORM,
261 up = XmCreatePushButton (buttonbox1, "up", av, ac);
263 XmNleftAttachment, XmATTACH_WIDGET,
265 XmNtopAttachment, XmATTACH_FORM,
266 XmNbottomAttachment, XmATTACH_FORM,
269 form3 = XmCreateForm (form1, "form3", av, ac);
270 XtVaSetValues (form3,
271 XmNtopAttachment, XmATTACH_FORM,
272 XmNleftAttachment, XmATTACH_WIDGET,
273 XmNleftWidget, form2,
274 XmNrightAttachment, XmATTACH_FORM,
275 XmNbottomAttachment, XmATTACH_FORM,
277 frame = XmCreateFrame (form3, "frame", av, ac);
280 XtSetArg (av [ac], XmNchildType, XmFRAME_TITLE_CHILD); ac++;
281 frame_label = XmCreateLabelGadget (frame, "frameLabel", av, ac);
284 XtVaSetValues (frame,
285 XmNtopAttachment, XmATTACH_FORM,
286 XmNleftAttachment, XmATTACH_FORM,
287 XmNrightAttachment, XmATTACH_FORM,
288 XmNbottomAttachment, XmATTACH_WIDGET,
292 XtSetArg (av [ac], XmNchildType, XmFRAME_WORKAREA_CHILD); ac++;
293 doc = XmCreateText (frame, "doc", av, ac);
298 XmNcursorPositionVisible, FALSE,
300 XmNeditMode, XmMULTI_LINE_EDIT,
301 XmNshadowThickness, 0,
304 cmd_label = XmCreateLabelGadget (form3, "cmdLabel", av, ac);
305 XtVaSetValues (cmd_label,
306 XmNleftAttachment, XmATTACH_FORM,
307 XmNrightAttachment, XmATTACH_FORM,
308 XmNbottomAttachment, XmATTACH_WIDGET,
310 XtVaSetValues (frame, XmNbottomWidget, cmd_label, 0);
312 cmd_text = XmCreateTextField (form3, "cmdText", av, ac);
313 XtVaSetValues (cmd_text,
314 XmNleftAttachment, XmATTACH_FORM,
315 XmNrightAttachment, XmATTACH_FORM,
316 XmNbottomAttachment, XmATTACH_WIDGET,
318 XtVaSetValues (cmd_label, XmNbottomWidget, cmd_text, 0);
320 form4 = XmCreateForm (form3, "form4", av, ac);
321 XtVaSetValues (form4,
322 XmNleftAttachment, XmATTACH_FORM,
323 XmNrightAttachment, XmATTACH_FORM,
324 XmNbottomAttachment, XmATTACH_WIDGET,
326 XtVaSetValues (cmd_text, XmNbottomWidget, form4, 0);
328 enabled = XmCreateToggleButtonGadget (form4, "enabled", av, ac);
329 XtVaSetValues (enabled,
330 XmNtopAttachment, XmATTACH_FORM,
331 XmNleftAttachment, XmATTACH_FORM,
332 XmNbottomAttachment, XmATTACH_FORM,
334 vis_label = XmCreateLabelGadget (form4, "visLabel", av, ac);
335 XtVaSetValues (vis_label,
336 XmNtopAttachment, XmATTACH_FORM,
337 XmNleftAttachment, XmATTACH_WIDGET,
338 XmNleftWidget, enabled,
339 XmNbottomAttachment, XmATTACH_FORM,
341 #ifdef HAVE_XMCOMBOBOX
345 XtSetArg (av [ac], XmNcomboBoxType, XmDROP_DOWN_COMBO_BOX); ac++;
346 combo = XmCreateComboBox (form4, "combo", av, ac);
347 for (i = 0; visual_menu[i]; i++)
349 XmString xs = XmStringCreate ((char *) visual_menu[i],
350 XmSTRING_DEFAULT_CHARSET);
351 XmComboBoxAddItem (combo, xs, 0, False);
354 XtVaGetValues (combo, XmNlist, &list, 0);
355 XtVaSetValues (list, XmNvisibleItemCount, i, 0);
357 #else /* !HAVE_XMCOMBOBOX */
359 Widget popup_menu = XmCreatePulldownMenu (parent, "menu", av, ac);
361 for (i = 0; visual_menu[i]; i++)
363 XmString xs = XmStringCreate ((char *) visual_menu[i],
364 XmSTRING_DEFAULT_CHARSET);
366 XtSetArg (av [ac], XmNlabelString, xs); ac++;
367 kids[i] = XmCreatePushButtonGadget (popup_menu, "button", av, ac);
368 /* XtAddCallback (combo, XmNactivateCallback, visual_popup_cb,
372 XtManageChildren (kids, i);
375 XtSetArg (av [ac], XmNsubMenuId, popup_menu); ac++;
376 combo = XmCreateOptionMenu (form4, "combo", av, ac);
379 #endif /* !HAVE_XMCOMBOBOX */
381 XtVaSetValues (combo,
382 XmNtopAttachment, XmATTACH_FORM,
383 XmNleftAttachment, XmATTACH_WIDGET,
384 XmNleftWidget, vis_label,
385 XmNbottomAttachment, XmATTACH_FORM,
388 hr = XmCreateSeparatorGadget (form3, "hr", av, ac);
390 XmNleftAttachment, XmATTACH_FORM,
391 XmNrightAttachment, XmATTACH_FORM,
392 XmNbottomAttachment, XmATTACH_WIDGET,
394 XtVaSetValues (form4, XmNbottomWidget, hr, 0);
396 buttonbox2 = XmCreateForm (form3, "buttonbox2", av, ac);
397 XtVaSetValues (buttonbox2,
398 XmNleftAttachment, XmATTACH_FORM,
399 XmNrightAttachment, XmATTACH_FORM,
400 XmNbottomAttachment, XmATTACH_FORM,
402 XtVaSetValues (hr, XmNbottomWidget, buttonbox2, 0);
404 demo = XmCreatePushButtonGadget (buttonbox2, "demo", av, ac);
406 XmNleftAttachment, XmATTACH_FORM,
407 XmNtopAttachment, XmATTACH_FORM,
408 XmNbottomAttachment, XmATTACH_FORM,
410 man = XmCreatePushButtonGadget (buttonbox2, "man", av, ac);
412 XmNrightAttachment, XmATTACH_FORM,
413 XmNtopAttachment, XmATTACH_FORM,
414 XmNbottomAttachment, XmATTACH_FORM,
417 XtManageChild (demo);
419 XtManageChild (buttonbox2);
422 XtManageChild (combo);
423 XtManageChild (vis_label);
424 XtManageChild (enabled);
425 XtManageChild (form4);
427 XtManageChild (cmd_text);
428 XtManageChild (cmd_label);
431 XtManageChild (frame_label);
432 XtManageChild (frame);
433 XtManageChild (form3);
436 XtManageChild (down);
437 XtManageChild (buttonbox1);
439 XtManageChild (list);
440 XtManageChild (scroller);
441 XtManageChild (form2);
443 XtManageChild (form1);
445 XtVaSetValues (form1,
446 XmNleftAttachment, XmATTACH_FORM,
447 XmNrightAttachment, XmATTACH_FORM,
448 XmNtopAttachment, XmATTACH_FORM,
449 XmNbottomAttachment, XmATTACH_FORM,
458 create_options_page (Widget parent)
462 Widget children[100];
463 Widget timeout_label, cycle_label, fade_seconds_label, fade_ticks_label;
464 Widget lock_label, passwd_label, hr;
465 Widget preferences_form;
467 Widget timeout_text, cycle_text, fade_text, fade_ticks_text;
468 Widget lock_timeout_text, passwd_timeout_text, verbose_toggle;
469 Widget install_cmap_toggle, fade_toggle, unfade_toggle;
470 Widget lock_toggle, prefs_done, prefs_cancel;
473 XtSetArg (av [ac], XmNdialogType, XmDIALOG_PROMPT); ac++;
476 XtSetArg (av [ac], XmNtopAttachment, XmATTACH_FORM); ac++;
477 XtSetArg (av [ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
478 XtSetArg (av [ac], XmNleftAttachment, XmATTACH_FORM); ac++;
479 XtSetArg (av [ac], XmNrightAttachment, XmATTACH_FORM); ac++;
480 preferences_form = XmCreateForm (parent, "preferencesForm", av, ac);
481 XtManageChild (preferences_form);
485 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
486 timeout_label = XmCreateLabelGadget (preferences_form, "timeoutLabel",
489 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
490 cycle_label = XmCreateLabelGadget (preferences_form, "cycleLabel",
493 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
494 fade_seconds_label = XmCreateLabelGadget (preferences_form,
495 "fadeSecondsLabel", av, ac);
497 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
498 fade_ticks_label = XmCreateLabelGadget (preferences_form, "fadeTicksLabel",
501 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
502 lock_label = XmCreateLabelGadget (preferences_form, "lockLabel", av, ac);
504 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_END); ac++;
505 passwd_label = XmCreateLabelGadget (preferences_form, "passwdLabel", av, ac);
507 timeout_text = XmCreateTextField (preferences_form, "timeoutText", av, ac);
508 cycle_text = XmCreateTextField (preferences_form, "cycleText", av, ac);
509 fade_text = XmCreateTextField (preferences_form, "fadeSecondsText", av, ac);
510 fade_ticks_text = XmCreateTextField (preferences_form, "fadeTicksText",
512 lock_timeout_text = XmCreateTextField (preferences_form, "lockText",
514 passwd_timeout_text = XmCreateTextField (preferences_form, "passwdText",
516 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
517 verbose_toggle = XmCreateToggleButtonGadget (preferences_form,
518 "verboseToggle", av, ac);
520 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
521 install_cmap_toggle = XmCreateToggleButtonGadget (preferences_form,
522 "cmapToggle", av, ac);
524 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
525 fade_toggle = XmCreateToggleButtonGadget (preferences_form, "fadeToggle",
528 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
529 unfade_toggle = XmCreateToggleButtonGadget (preferences_form, "unfadeToggle",
532 XtSetArg(av[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
533 lock_toggle = XmCreateToggleButtonGadget (preferences_form, "lockToggle",
536 hr = XmCreateSeparatorGadget (preferences_form, "separator", av, ac);
538 prefs_done = XmCreatePushButtonGadget (preferences_form, "OK", av, ac);
539 prefs_cancel = XmCreatePushButtonGadget (preferences_form, "Cancel", av, ac);
541 XtVaSetValues (timeout_label,
542 XmNtopAttachment, XmATTACH_FORM,
544 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
545 XmNbottomWidget, timeout_text,
546 XmNleftAttachment, XmATTACH_FORM,
548 XmNrightAttachment, XmATTACH_WIDGET,
550 XmNrightWidget, timeout_text,
553 XtVaSetValues (cycle_label,
554 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
556 XmNtopWidget, cycle_text,
557 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
559 XmNbottomWidget, cycle_text,
560 XmNleftAttachment, XmATTACH_FORM,
562 XmNrightAttachment, XmATTACH_WIDGET,
564 XmNrightWidget, cycle_text,
567 XtVaSetValues (fade_seconds_label,
568 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
570 XmNtopWidget, fade_text,
571 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
573 XmNbottomWidget, fade_text,
574 XmNleftAttachment, XmATTACH_FORM,
576 XmNrightAttachment, XmATTACH_WIDGET,
578 XmNrightWidget, fade_text,
581 XtVaSetValues (fade_ticks_label,
582 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
584 XmNtopWidget, fade_ticks_text,
585 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
587 XmNbottomWidget, fade_ticks_text,
588 XmNleftAttachment, XmATTACH_FORM,
590 XmNrightAttachment, XmATTACH_WIDGET,
592 XmNrightWidget, fade_ticks_text,
595 XtVaSetValues (lock_label,
596 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
598 XmNtopWidget, lock_timeout_text,
599 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
601 XmNbottomWidget, lock_timeout_text,
602 XmNleftAttachment, XmATTACH_FORM,
604 XmNrightAttachment, XmATTACH_WIDGET,
606 XmNrightWidget, lock_timeout_text,
609 XtVaSetValues (passwd_label,
610 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
612 XmNtopWidget, passwd_timeout_text,
613 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
615 XmNbottomWidget, passwd_timeout_text,
616 XmNleftAttachment, XmATTACH_FORM,
618 XmNrightAttachment, XmATTACH_WIDGET,
620 XmNrightWidget, passwd_timeout_text,
623 XtVaSetValues (timeout_text,
624 XmNtopAttachment, XmATTACH_FORM,
626 XmNleftAttachment, XmATTACH_FORM,
630 XtVaSetValues (cycle_text,
631 XmNtopAttachment, XmATTACH_WIDGET,
633 XmNtopWidget, timeout_text,
634 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
636 XmNleftWidget, timeout_text,
639 XtVaSetValues (fade_text,
640 XmNtopAttachment, XmATTACH_WIDGET,
642 XmNtopWidget, cycle_text,
643 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
645 XmNleftWidget, cycle_text,
648 XtVaSetValues (fade_ticks_text,
649 XmNtopAttachment, XmATTACH_WIDGET,
651 XmNtopWidget, fade_text,
652 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
654 XmNleftWidget, fade_text,
657 XtVaSetValues (lock_timeout_text,
658 XmNtopAttachment, XmATTACH_WIDGET,
660 XmNtopWidget, fade_ticks_text,
661 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
663 XmNleftWidget, fade_ticks_text,
666 XtVaSetValues (passwd_timeout_text,
667 XmNtopAttachment, XmATTACH_WIDGET,
669 XmNtopWidget, lock_timeout_text,
670 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
672 XmNleftWidget, lock_timeout_text,
675 XtVaSetValues (verbose_toggle,
676 XmNtopAttachment, XmATTACH_FORM,
678 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
680 XmNbottomWidget, timeout_text,
681 XmNleftAttachment, XmATTACH_WIDGET,
683 XmNleftWidget, timeout_text,
684 XmNrightAttachment, XmATTACH_FORM,
688 XtVaSetValues (install_cmap_toggle,
689 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
691 XmNtopWidget, cycle_text,
692 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
694 XmNbottomWidget, cycle_text,
695 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
697 XmNleftWidget, verbose_toggle,
698 XmNrightAttachment, XmATTACH_FORM,
702 XtVaSetValues (fade_toggle,
703 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
705 XmNtopWidget, fade_text,
706 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
708 XmNbottomWidget, fade_text,
709 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
711 XmNleftWidget, install_cmap_toggle,
712 XmNrightAttachment, XmATTACH_FORM,
716 XtVaSetValues (unfade_toggle,
717 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
719 XmNtopWidget, fade_ticks_text,
720 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
722 XmNbottomWidget, fade_ticks_text,
723 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
725 XmNleftWidget, fade_toggle,
726 XmNrightAttachment, XmATTACH_FORM,
730 XtVaSetValues (lock_toggle,
731 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
733 XmNtopWidget, lock_timeout_text,
734 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
736 XmNbottomWidget, lock_timeout_text,
737 XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
739 XmNleftWidget, unfade_toggle,
740 XmNrightAttachment, XmATTACH_FORM,
745 XmNtopWidget, passwd_timeout_text,
746 XmNbottomAttachment, XmATTACH_FORM,
748 XmNleftAttachment, XmATTACH_FORM,
749 XmNrightAttachment, XmATTACH_FORM,
752 XtVaSetValues (prefs_done,
753 XmNleftAttachment, XmATTACH_FORM,
754 XmNbottomAttachment, XmATTACH_FORM,
756 XtVaSetValues (prefs_cancel,
757 XmNrightAttachment, XmATTACH_FORM,
758 XmNbottomAttachment, XmATTACH_FORM,
761 XmNbottomAttachment, XmATTACH_WIDGET,
762 XmNbottomWidget, prefs_done,
766 children[ac++] = timeout_label;
767 children[ac++] = cycle_label;
768 children[ac++] = fade_seconds_label;
769 children[ac++] = fade_ticks_label;
770 children[ac++] = lock_label;
771 children[ac++] = passwd_label;
772 children[ac++] = timeout_text;
773 children[ac++] = cycle_text;
774 children[ac++] = fade_text;
775 children[ac++] = fade_ticks_text;
776 children[ac++] = lock_timeout_text;
777 children[ac++] = passwd_timeout_text;
778 children[ac++] = verbose_toggle;
779 children[ac++] = install_cmap_toggle;
780 children[ac++] = fade_toggle;
781 children[ac++] = unfade_toggle;
782 children[ac++] = lock_toggle;
785 XtManageChildren(children, ac);
788 XtManageChild (prefs_done);
789 XtManageChild (prefs_cancel);
791 XtManageChild (preferences_form);
793 XtVaSetValues (preferences_form,
794 XmNleftAttachment, XmATTACH_FORM,
795 XmNrightAttachment, XmATTACH_FORM,
796 XmNtopAttachment, XmATTACH_FORM,
797 XmNbottomAttachment, XmATTACH_FORM,
800 return preferences_form;