http://packetstormsecurity.org/UNIX/admin/xscreensaver-3.28.tar.gz
[xscreensaver] / driver / demo-Gtk-widgets.c
1 /*
2  * DO NOT EDIT THIS FILE - it is generated by Glade.
3  */
4
5 #ifdef HAVE_CONFIG_H
6 #  include <config.h>
7 #endif
8
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <string.h>
13
14 #include <gdk/gdkkeysyms.h>
15 #include <gtk/gtk.h>
16
17 #include "demo-Gtk-stubs.h"
18 #include "demo-Gtk-widgets.h"
19
20 GtkWidget*
21 create_xscreensaver_demo (void)
22 {
23   GtkWidget *xscreensaver_demo;
24   GtkWidget *outer_vbox;
25   GtkWidget *menubar;
26   guint tmp_key;
27   GtkWidget *file;
28   GtkWidget *file_menu;
29   GtkAccelGroup *file_menu_accels;
30   GtkWidget *activate_menu;
31   GtkWidget *lock_menu;
32   GtkWidget *kill_menu;
33   GtkWidget *restart;
34   GtkWidget *separator1;
35   GtkWidget *exit_menu;
36   GtkWidget *edit;
37   GtkWidget *edit_menu;
38   GtkAccelGroup *edit_menu_accels;
39   GtkWidget *cut_menu;
40   GtkWidget *copy_menu;
41   GtkWidget *paste_menu;
42   GtkWidget *help;
43   GtkWidget *help_menu;
44   GtkAccelGroup *help_menu_accels;
45   GtkWidget *about_menu;
46   GtkWidget *doc_menu;
47   GtkWidget *notebook;
48   GtkWidget *demos_hbox;
49   GtkWidget *list_vbox;
50   GtkWidget *scroller;
51   GtkWidget *viewport;
52   GtkWidget *list;
53   GtkWidget *centering_hbox;
54   GtkWidget *next_prev_hbox;
55   GtkWidget *next;
56   GtkWidget *prev;
57   GtkWidget *opts_vbox;
58   GtkWidget *frame;
59   GtkWidget *doc;
60   GtkWidget *opts_vbox2;
61   GtkWidget *cmd_label;
62   GtkWidget *cmd_text;
63   GtkWidget *opts_hbox3;
64   GtkWidget *enabled;
65   GtkWidget *visual;
66   GtkWidget *visual_combo;
67   GList *visual_combo_items = NULL;
68   GtkWidget *combo_entry1;
69   GtkWidget *demo_hline;
70   GtkWidget *demo_manual_hbox;
71   GtkWidget *demo;
72   GtkWidget *manual;
73   GtkWidget *demo_tab;
74   GtkWidget *options_vbox;
75   GtkWidget *options_table;
76   GtkWidget *blanking_frame;
77   GtkWidget *blanking_table;
78   GtkWidget *lock_text;
79   GtkWidget *cycle_text;
80   GtkWidget *timeout_text;
81   GtkWidget *timeout_label;
82   GtkWidget *cycle_label;
83   GtkWidget *lock_label;
84   GtkWidget *blanking_dummy;
85   GtkWidget *blanking_hr;
86   GtkWidget *lock_button_eventbox;
87   GtkWidget *lock_button;
88   GtkWidget *dpms_frame;
89   GtkWidget *dpms_table;
90   GtkWidget *dpms_off_text;
91   GtkWidget *dpms_suspend_text;
92   GtkWidget *dpms_standby_text;
93   GtkWidget *dpms_standby_label;
94   GtkWidget *dpms_off_label;
95   GtkWidget *dpms_suspend_label;
96   GtkWidget *dpms_dummy;
97   GtkWidget *dpms_button_eventbox;
98   GtkWidget *dpms_button;
99   GtkWidget *diag_frame;
100   GtkWidget *diag_table;
101   GtkWidget *verbose_button_eventbox;
102   GtkWidget *verbose_button;
103   GtkWidget *capture_button_eventbox;
104   GtkWidget *capture_button;
105   GtkWidget *splash_button_eventbox;
106   GtkWidget *splash_button;
107   GtkWidget *cmap_frame;
108   GtkWidget *cmap_table;
109   GtkWidget *fade_text;
110   GtkWidget *cmap_dummy;
111   GtkWidget *fade_label;
112   GtkWidget *cmap_hr;
113   GtkWidget *install_button_eventbox;
114   GtkWidget *install_button;
115   GtkWidget *fade_button_eventbox;
116   GtkWidget *fade_button;
117   GtkWidget *unfade_button_eventbox;
118   GtkWidget *unfade_button;
119   GtkWidget *options_tab;
120   GtkAccelGroup *accel_group;
121   GtkTooltips *tooltips;
122
123   tooltips = gtk_tooltips_new ();
124
125   accel_group = gtk_accel_group_new ();
126
127   xscreensaver_demo = gtk_window_new (GTK_WINDOW_TOPLEVEL);
128   gtk_widget_set_name (xscreensaver_demo, "xscreensaver_demo");
129   gtk_object_set_data (GTK_OBJECT (xscreensaver_demo), "xscreensaver_demo", xscreensaver_demo);
130   gtk_window_set_title (GTK_WINDOW (xscreensaver_demo), "XScreenSaver");
131   gtk_window_set_default_size (GTK_WINDOW (xscreensaver_demo), 600, 400);
132   gtk_window_set_policy (GTK_WINDOW (xscreensaver_demo), TRUE, TRUE, FALSE);
133   gtk_window_set_wmclass (GTK_WINDOW (xscreensaver_demo), "xscreensaver", "XScreenSaver");
134
135   outer_vbox = gtk_vbox_new (FALSE, 5);
136   gtk_widget_set_name (outer_vbox, "outer_vbox");
137   gtk_widget_ref (outer_vbox);
138   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "outer_vbox", outer_vbox,
139                             (GtkDestroyNotify) gtk_widget_unref);
140   gtk_widget_show (outer_vbox);
141   gtk_container_add (GTK_CONTAINER (xscreensaver_demo), outer_vbox);
142
143   menubar = gtk_menu_bar_new ();
144   gtk_widget_set_name (menubar, "menubar");
145   gtk_widget_ref (menubar);
146   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "menubar", menubar,
147                             (GtkDestroyNotify) gtk_widget_unref);
148   gtk_widget_show (menubar);
149   gtk_box_pack_start (GTK_BOX (outer_vbox), menubar, FALSE, FALSE, 0);
150
151   file = gtk_menu_item_new_with_label ("");
152   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (file)->child),
153                                    "_File");
154   gtk_widget_add_accelerator (file, "activate_item", accel_group,
155                               tmp_key, GDK_MOD1_MASK, 0);
156   gtk_widget_set_name (file, "file");
157   gtk_widget_ref (file);
158   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "file", file,
159                             (GtkDestroyNotify) gtk_widget_unref);
160   gtk_widget_show (file);
161   gtk_container_add (GTK_CONTAINER (menubar), file);
162
163   file_menu = gtk_menu_new ();
164   gtk_widget_set_name (file_menu, "file_menu");
165   gtk_widget_ref (file_menu);
166   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "file_menu", file_menu,
167                             (GtkDestroyNotify) gtk_widget_unref);
168   gtk_menu_item_set_submenu (GTK_MENU_ITEM (file), file_menu);
169   file_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (file_menu));
170
171   activate_menu = gtk_menu_item_new_with_label ("");
172   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (activate_menu)->child),
173                                    "_Blank Screen Now");
174   gtk_widget_add_accelerator (activate_menu, "activate_item", file_menu_accels,
175                               tmp_key, 0, 0);
176   gtk_widget_set_name (activate_menu, "activate_menu");
177   gtk_widget_ref (activate_menu);
178   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "activate_menu", activate_menu,
179                             (GtkDestroyNotify) gtk_widget_unref);
180   gtk_widget_show (activate_menu);
181   gtk_container_add (GTK_CONTAINER (file_menu), activate_menu);
182   gtk_tooltips_set_tip (tooltips, activate_menu, "Activate the XScreenSaver daemon now (locking the screen if so configured.)", NULL);
183
184   lock_menu = gtk_menu_item_new_with_label ("");
185   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (lock_menu)->child),
186                                    "_Lock Screen Now");
187   gtk_widget_add_accelerator (lock_menu, "activate_item", file_menu_accels,
188                               tmp_key, 0, 0);
189   gtk_widget_set_name (lock_menu, "lock_menu");
190   gtk_widget_ref (lock_menu);
191   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_menu", lock_menu,
192                             (GtkDestroyNotify) gtk_widget_unref);
193   gtk_widget_show (lock_menu);
194   gtk_container_add (GTK_CONTAINER (file_menu), lock_menu);
195   gtk_tooltips_set_tip (tooltips, lock_menu, "Lock the screen now (even if \"Require Password\" is unchecked.)", NULL);
196
197   kill_menu = gtk_menu_item_new_with_label ("");
198   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (kill_menu)->child),
199                                    "_Kill Daemon");
200   gtk_widget_add_accelerator (kill_menu, "activate_item", file_menu_accels,
201                               tmp_key, 0, 0);
202   gtk_widget_set_name (kill_menu, "kill_menu");
203   gtk_widget_ref (kill_menu);
204   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "kill_menu", kill_menu,
205                             (GtkDestroyNotify) gtk_widget_unref);
206   gtk_widget_show (kill_menu);
207   gtk_container_add (GTK_CONTAINER (file_menu), kill_menu);
208   gtk_tooltips_set_tip (tooltips, kill_menu, "Tell the running XScreenSaver daemon to exit.", NULL);
209
210   restart = gtk_menu_item_new_with_label ("");
211   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (restart)->child),
212                                    "_Restart Daemon");
213   gtk_widget_add_accelerator (restart, "activate_item", file_menu_accels,
214                               tmp_key, 0, 0);
215   gtk_widget_set_name (restart, "restart");
216   gtk_widget_ref (restart);
217   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "restart", restart,
218                             (GtkDestroyNotify) gtk_widget_unref);
219   gtk_widget_show (restart);
220   gtk_container_add (GTK_CONTAINER (file_menu), restart);
221   gtk_tooltips_set_tip (tooltips, restart, "Kill and re-launch the XScreenSaver daemon.", NULL);
222
223   separator1 = gtk_menu_item_new ();
224   gtk_widget_set_name (separator1, "separator1");
225   gtk_widget_ref (separator1);
226   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "separator1", separator1,
227                             (GtkDestroyNotify) gtk_widget_unref);
228   gtk_widget_show (separator1);
229   gtk_container_add (GTK_CONTAINER (file_menu), separator1);
230   gtk_widget_set_sensitive (separator1, FALSE);
231
232   exit_menu = gtk_menu_item_new_with_label ("");
233   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (exit_menu)->child),
234                                    "_Exit");
235   gtk_widget_add_accelerator (exit_menu, "activate_item", file_menu_accels,
236                               tmp_key, 0, 0);
237   gtk_widget_set_name (exit_menu, "exit_menu");
238   gtk_widget_ref (exit_menu);
239   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "exit_menu", exit_menu,
240                             (GtkDestroyNotify) gtk_widget_unref);
241   gtk_widget_show (exit_menu);
242   gtk_container_add (GTK_CONTAINER (file_menu), exit_menu);
243   gtk_tooltips_set_tip (tooltips, exit_menu, "Exit the xscreensaver-demo program (but leave the XScreenSaver daemon running in the background.)", NULL);
244
245   edit = gtk_menu_item_new_with_label ("");
246   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (edit)->child),
247                                    "_Edit");
248   gtk_widget_add_accelerator (edit, "activate_item", accel_group,
249                               tmp_key, GDK_MOD1_MASK, 0);
250   gtk_widget_set_name (edit, "edit");
251   gtk_widget_ref (edit);
252   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "edit", edit,
253                             (GtkDestroyNotify) gtk_widget_unref);
254   gtk_widget_show (edit);
255   gtk_container_add (GTK_CONTAINER (menubar), edit);
256
257   edit_menu = gtk_menu_new ();
258   gtk_widget_set_name (edit_menu, "edit_menu");
259   gtk_widget_ref (edit_menu);
260   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "edit_menu", edit_menu,
261                             (GtkDestroyNotify) gtk_widget_unref);
262   gtk_menu_item_set_submenu (GTK_MENU_ITEM (edit), edit_menu);
263   edit_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (edit_menu));
264
265   cut_menu = gtk_menu_item_new_with_label ("");
266   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (cut_menu)->child),
267                                    "C_ut");
268   gtk_widget_add_accelerator (cut_menu, "activate_item", edit_menu_accels,
269                               tmp_key, 0, 0);
270   gtk_widget_set_name (cut_menu, "cut_menu");
271   gtk_widget_ref (cut_menu);
272   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cut_menu", cut_menu,
273                             (GtkDestroyNotify) gtk_widget_unref);
274   gtk_widget_show (cut_menu);
275   gtk_container_add (GTK_CONTAINER (edit_menu), cut_menu);
276
277   copy_menu = gtk_menu_item_new_with_label ("");
278   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (copy_menu)->child),
279                                    "_Copy");
280   gtk_widget_add_accelerator (copy_menu, "activate_item", edit_menu_accels,
281                               tmp_key, 0, 0);
282   gtk_widget_set_name (copy_menu, "copy_menu");
283   gtk_widget_ref (copy_menu);
284   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "copy_menu", copy_menu,
285                             (GtkDestroyNotify) gtk_widget_unref);
286   gtk_widget_show (copy_menu);
287   gtk_container_add (GTK_CONTAINER (edit_menu), copy_menu);
288
289   paste_menu = gtk_menu_item_new_with_label ("");
290   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (paste_menu)->child),
291                                    "_Paste");
292   gtk_widget_add_accelerator (paste_menu, "activate_item", edit_menu_accels,
293                               tmp_key, 0, 0);
294   gtk_widget_set_name (paste_menu, "paste_menu");
295   gtk_widget_ref (paste_menu);
296   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "paste_menu", paste_menu,
297                             (GtkDestroyNotify) gtk_widget_unref);
298   gtk_widget_show (paste_menu);
299   gtk_container_add (GTK_CONTAINER (edit_menu), paste_menu);
300
301   help = gtk_menu_item_new_with_label ("");
302   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (help)->child),
303                                    "_Help");
304   gtk_widget_add_accelerator (help, "activate_item", accel_group,
305                               tmp_key, GDK_MOD1_MASK, 0);
306   gtk_widget_set_name (help, "help");
307   gtk_widget_ref (help);
308   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "help", help,
309                             (GtkDestroyNotify) gtk_widget_unref);
310   gtk_widget_show (help);
311   gtk_container_add (GTK_CONTAINER (menubar), help);
312
313   help_menu = gtk_menu_new ();
314   gtk_widget_set_name (help_menu, "help_menu");
315   gtk_widget_ref (help_menu);
316   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "help_menu", help_menu,
317                             (GtkDestroyNotify) gtk_widget_unref);
318   gtk_menu_item_set_submenu (GTK_MENU_ITEM (help), help_menu);
319   help_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (help_menu));
320
321   about_menu = gtk_menu_item_new_with_label ("");
322   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (about_menu)->child),
323                                    "_About...");
324   gtk_widget_add_accelerator (about_menu, "activate_item", help_menu_accels,
325                               tmp_key, 0, 0);
326   gtk_widget_set_name (about_menu, "about_menu");
327   gtk_widget_ref (about_menu);
328   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "about_menu", about_menu,
329                             (GtkDestroyNotify) gtk_widget_unref);
330   gtk_widget_show (about_menu);
331   gtk_container_add (GTK_CONTAINER (help_menu), about_menu);
332   gtk_tooltips_set_tip (tooltips, about_menu, "Display version information.", NULL);
333
334   doc_menu = gtk_menu_item_new_with_label ("");
335   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (doc_menu)->child),
336                                    "_Documentation...");
337   gtk_widget_add_accelerator (doc_menu, "activate_item", help_menu_accels,
338                               tmp_key, 0, 0);
339   gtk_widget_set_name (doc_menu, "doc_menu");
340   gtk_widget_ref (doc_menu);
341   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "doc_menu", doc_menu,
342                             (GtkDestroyNotify) gtk_widget_unref);
343   gtk_widget_show (doc_menu);
344   gtk_container_add (GTK_CONTAINER (help_menu), doc_menu);
345   gtk_tooltips_set_tip (tooltips, doc_menu, "Go to the documentation on the XScreenSaver web page.", NULL);
346
347   notebook = gtk_notebook_new ();
348   gtk_widget_set_name (notebook, "notebook");
349   gtk_widget_ref (notebook);
350   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "notebook", notebook,
351                             (GtkDestroyNotify) gtk_widget_unref);
352   gtk_widget_show (notebook);
353   gtk_box_pack_start (GTK_BOX (outer_vbox), notebook, TRUE, TRUE, 0);
354
355   demos_hbox = gtk_hbox_new (FALSE, 5);
356   gtk_widget_set_name (demos_hbox, "demos_hbox");
357   gtk_widget_ref (demos_hbox);
358   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demos_hbox", demos_hbox,
359                             (GtkDestroyNotify) gtk_widget_unref);
360   gtk_widget_show (demos_hbox);
361   gtk_container_add (GTK_CONTAINER (notebook), demos_hbox);
362
363   list_vbox = gtk_vbox_new (FALSE, 5);
364   gtk_widget_set_name (list_vbox, "list_vbox");
365   gtk_widget_ref (list_vbox);
366   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "list_vbox", list_vbox,
367                             (GtkDestroyNotify) gtk_widget_unref);
368   gtk_widget_show (list_vbox);
369   gtk_box_pack_start (GTK_BOX (demos_hbox), list_vbox, FALSE, FALSE, 0);
370   gtk_container_set_border_width (GTK_CONTAINER (list_vbox), 10);
371
372   scroller = gtk_scrolled_window_new (NULL, NULL);
373   gtk_widget_set_name (scroller, "scroller");
374   gtk_widget_ref (scroller);
375   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "scroller", scroller,
376                             (GtkDestroyNotify) gtk_widget_unref);
377   gtk_widget_show (scroller);
378   gtk_box_pack_start (GTK_BOX (list_vbox), scroller, TRUE, TRUE, 0);
379   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroller), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
380
381   viewport = gtk_viewport_new (NULL, NULL);
382   gtk_widget_set_name (viewport, "viewport");
383   gtk_widget_ref (viewport);
384   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "viewport", viewport,
385                             (GtkDestroyNotify) gtk_widget_unref);
386   gtk_widget_show (viewport);
387   gtk_container_add (GTK_CONTAINER (scroller), viewport);
388   gtk_container_set_border_width (GTK_CONTAINER (viewport), 1);
389
390   list = gtk_list_new ();
391   gtk_widget_set_name (list, "list");
392   gtk_widget_ref (list);
393   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "list", list,
394                             (GtkDestroyNotify) gtk_widget_unref);
395   gtk_widget_show (list);
396   gtk_container_add (GTK_CONTAINER (viewport), list);
397
398   centering_hbox = gtk_hbox_new (TRUE, 0);
399   gtk_widget_set_name (centering_hbox, "centering_hbox");
400   gtk_widget_ref (centering_hbox);
401   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "centering_hbox", centering_hbox,
402                             (GtkDestroyNotify) gtk_widget_unref);
403   gtk_widget_show (centering_hbox);
404   gtk_box_pack_start (GTK_BOX (list_vbox), centering_hbox, FALSE, TRUE, 0);
405
406   next_prev_hbox = gtk_hbox_new (FALSE, 0);
407   gtk_widget_set_name (next_prev_hbox, "next_prev_hbox");
408   gtk_widget_ref (next_prev_hbox);
409   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "next_prev_hbox", next_prev_hbox,
410                             (GtkDestroyNotify) gtk_widget_unref);
411   gtk_widget_show (next_prev_hbox);
412   gtk_box_pack_start (GTK_BOX (centering_hbox), next_prev_hbox, FALSE, FALSE, 0);
413
414   next = gtk_button_new_with_label ("\\/");
415   gtk_widget_set_name (next, "next");
416   gtk_widget_ref (next);
417   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "next", next,
418                             (GtkDestroyNotify) gtk_widget_unref);
419   gtk_widget_show (next);
420   gtk_box_pack_start (GTK_BOX (next_prev_hbox), next, FALSE, FALSE, 0);
421   GTK_WIDGET_SET_FLAGS (next, GTK_CAN_DEFAULT);
422   gtk_tooltips_set_tip (tooltips, next, "Run the next demo in this list in full-screen mode (click the mouse to return.)", NULL);
423
424   prev = gtk_button_new_with_label ("/\\");
425   gtk_widget_set_name (prev, "prev");
426   gtk_widget_ref (prev);
427   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "prev", prev,
428                             (GtkDestroyNotify) gtk_widget_unref);
429   gtk_widget_show (prev);
430   gtk_box_pack_start (GTK_BOX (next_prev_hbox), prev, FALSE, FALSE, 0);
431   GTK_WIDGET_SET_FLAGS (prev, GTK_CAN_DEFAULT);
432   gtk_tooltips_set_tip (tooltips, prev, "Run the previous demo in this list in full-screen mode (click the mouse to return.)", NULL);
433
434   opts_vbox = gtk_vbox_new (FALSE, 0);
435   gtk_widget_set_name (opts_vbox, "opts_vbox");
436   gtk_widget_ref (opts_vbox);
437   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "opts_vbox", opts_vbox,
438                             (GtkDestroyNotify) gtk_widget_unref);
439   gtk_widget_show (opts_vbox);
440   gtk_box_pack_start (GTK_BOX (demos_hbox), opts_vbox, TRUE, TRUE, 0);
441   gtk_container_set_border_width (GTK_CONTAINER (opts_vbox), 10);
442
443   frame = gtk_frame_new (NULL);
444   gtk_widget_set_name (frame, "frame");
445   gtk_widget_ref (frame);
446   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "frame", frame,
447                             (GtkDestroyNotify) gtk_widget_unref);
448   gtk_widget_show (frame);
449   gtk_box_pack_start (GTK_BOX (opts_vbox), frame, TRUE, TRUE, 0);
450
451   doc = gtk_label_new ("");
452   gtk_widget_set_name (doc, "doc");
453   gtk_widget_ref (doc);
454   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "doc", doc,
455                             (GtkDestroyNotify) gtk_widget_unref);
456   gtk_widget_show (doc);
457   gtk_container_add (GTK_CONTAINER (frame), doc);
458   gtk_label_set_justify (GTK_LABEL (doc), GTK_JUSTIFY_LEFT);
459   gtk_label_set_line_wrap (GTK_LABEL (doc), TRUE);
460   gtk_misc_set_alignment (GTK_MISC (doc), 0, 0);
461   gtk_misc_set_padding (GTK_MISC (doc), 10, 10);
462
463   opts_vbox2 = gtk_vbox_new (FALSE, 2);
464   gtk_widget_set_name (opts_vbox2, "opts_vbox2");
465   gtk_widget_ref (opts_vbox2);
466   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "opts_vbox2", opts_vbox2,
467                             (GtkDestroyNotify) gtk_widget_unref);
468   gtk_widget_show (opts_vbox2);
469   gtk_box_pack_start (GTK_BOX (opts_vbox), opts_vbox2, FALSE, TRUE, 0);
470
471   cmd_label = gtk_label_new ("Command Line:");
472   gtk_widget_set_name (cmd_label, "cmd_label");
473   gtk_widget_ref (cmd_label);
474   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmd_label", cmd_label,
475                             (GtkDestroyNotify) gtk_widget_unref);
476   gtk_widget_show (cmd_label);
477   gtk_box_pack_start (GTK_BOX (opts_vbox2), cmd_label, FALSE, FALSE, 0);
478   gtk_label_set_justify (GTK_LABEL (cmd_label), GTK_JUSTIFY_LEFT);
479   gtk_misc_set_alignment (GTK_MISC (cmd_label), 0, 1);
480   gtk_misc_set_padding (GTK_MISC (cmd_label), 0, 2);
481
482   cmd_text = gtk_entry_new ();
483   gtk_widget_set_name (cmd_text, "cmd_text");
484   gtk_widget_ref (cmd_text);
485   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmd_text", cmd_text,
486                             (GtkDestroyNotify) gtk_widget_unref);
487   gtk_widget_show (cmd_text);
488   gtk_box_pack_start (GTK_BOX (opts_vbox2), cmd_text, FALSE, TRUE, 0);
489
490   opts_hbox3 = gtk_hbox_new (FALSE, 0);
491   gtk_widget_set_name (opts_hbox3, "opts_hbox3");
492   gtk_widget_ref (opts_hbox3);
493   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "opts_hbox3", opts_hbox3,
494                             (GtkDestroyNotify) gtk_widget_unref);
495   gtk_widget_show (opts_hbox3);
496   gtk_box_pack_start (GTK_BOX (opts_vbox2), opts_hbox3, FALSE, TRUE, 4);
497   gtk_container_set_border_width (GTK_CONTAINER (opts_hbox3), 4);
498
499   enabled = gtk_check_button_new_with_label ("Enabled");
500   gtk_widget_set_name (enabled, "enabled");
501   gtk_widget_ref (enabled);
502   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "enabled", enabled,
503                             (GtkDestroyNotify) gtk_widget_unref);
504   gtk_widget_show (enabled);
505   gtk_box_pack_start (GTK_BOX (opts_hbox3), enabled, FALSE, FALSE, 0);
506   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enabled), TRUE);
507
508   visual = gtk_label_new ("Visual:");
509   gtk_widget_set_name (visual, "visual");
510   gtk_widget_ref (visual);
511   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "visual", visual,
512                             (GtkDestroyNotify) gtk_widget_unref);
513   gtk_widget_show (visual);
514   gtk_box_pack_start (GTK_BOX (opts_hbox3), visual, FALSE, FALSE, 0);
515   gtk_label_set_justify (GTK_LABEL (visual), GTK_JUSTIFY_RIGHT);
516   gtk_misc_set_alignment (GTK_MISC (visual), 1, 0.5);
517   gtk_misc_set_padding (GTK_MISC (visual), 10, 0);
518
519   visual_combo = gtk_combo_new ();
520   gtk_widget_set_name (visual_combo, "visual_combo");
521   gtk_widget_ref (visual_combo);
522   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "visual_combo", visual_combo,
523                             (GtkDestroyNotify) gtk_widget_unref);
524   gtk_widget_show (visual_combo);
525   gtk_box_pack_start (GTK_BOX (opts_hbox3), visual_combo, FALSE, FALSE, 0);
526   visual_combo_items = g_list_append (visual_combo_items, "Any");
527   visual_combo_items = g_list_append (visual_combo_items, "Best");
528   visual_combo_items = g_list_append (visual_combo_items, "Default");
529   visual_combo_items = g_list_append (visual_combo_items, "Default-N");
530   visual_combo_items = g_list_append (visual_combo_items, "GL");
531   visual_combo_items = g_list_append (visual_combo_items, "TrueColor");
532   visual_combo_items = g_list_append (visual_combo_items, "PseudoColor");
533   visual_combo_items = g_list_append (visual_combo_items, "StaticGray");
534   visual_combo_items = g_list_append (visual_combo_items, "GrayScale");
535   visual_combo_items = g_list_append (visual_combo_items, "DirectColor");
536   visual_combo_items = g_list_append (visual_combo_items, "Color");
537   visual_combo_items = g_list_append (visual_combo_items, "Gray");
538   visual_combo_items = g_list_append (visual_combo_items, "Mono");
539   gtk_combo_set_popdown_strings (GTK_COMBO (visual_combo), visual_combo_items);
540   g_list_free (visual_combo_items);
541
542   combo_entry1 = GTK_COMBO (visual_combo)->entry;
543   gtk_widget_set_name (combo_entry1, "combo_entry1");
544   gtk_widget_ref (combo_entry1);
545   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "combo_entry1", combo_entry1,
546                             (GtkDestroyNotify) gtk_widget_unref);
547   gtk_widget_show (combo_entry1);
548   gtk_tooltips_set_tip (tooltips, combo_entry1, "The X visual type that this demo will require.  If that visual is available it will be used, otherwise, this demo will not be run.", NULL);
549   gtk_entry_set_text (GTK_ENTRY (combo_entry1), "Any");
550
551   demo_hline = gtk_hseparator_new ();
552   gtk_widget_set_name (demo_hline, "demo_hline");
553   gtk_widget_ref (demo_hline);
554   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_hline", demo_hline,
555                             (GtkDestroyNotify) gtk_widget_unref);
556   gtk_widget_show (demo_hline);
557   gtk_box_pack_start (GTK_BOX (opts_vbox), demo_hline, FALSE, FALSE, 5);
558
559   demo_manual_hbox = gtk_hbutton_box_new ();
560   gtk_widget_set_name (demo_manual_hbox, "demo_manual_hbox");
561   gtk_widget_ref (demo_manual_hbox);
562   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_manual_hbox", demo_manual_hbox,
563                             (GtkDestroyNotify) gtk_widget_unref);
564   gtk_widget_show (demo_manual_hbox);
565   gtk_box_pack_start (GTK_BOX (opts_vbox), demo_manual_hbox, FALSE, TRUE, 0);
566
567   demo = gtk_button_new_with_label ("Demo");
568   gtk_widget_set_name (demo, "demo");
569   gtk_widget_ref (demo);
570   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo", demo,
571                             (GtkDestroyNotify) gtk_widget_unref);
572   gtk_widget_show (demo);
573   gtk_container_add (GTK_CONTAINER (demo_manual_hbox), demo);
574   GTK_WIDGET_SET_FLAGS (demo, GTK_CAN_DEFAULT);
575   gtk_tooltips_set_tip (tooltips, demo, "Run this one in full-screen mode (click the mouse to return.)", NULL);
576
577   manual = gtk_button_new_with_label ("Documentation...");
578   gtk_widget_set_name (manual, "manual");
579   gtk_widget_ref (manual);
580   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "manual", manual,
581                             (GtkDestroyNotify) gtk_widget_unref);
582   gtk_widget_show (manual);
583   gtk_container_add (GTK_CONTAINER (demo_manual_hbox), manual);
584   GTK_WIDGET_SET_FLAGS (manual, GTK_CAN_DEFAULT);
585   gtk_tooltips_set_tip (tooltips, manual, "Click here to read the manual for this display mode, if it has one.", NULL);
586
587   demo_tab = gtk_label_new ("Graphics Demos");
588   gtk_widget_set_name (demo_tab, "demo_tab");
589   gtk_widget_ref (demo_tab);
590   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_tab", demo_tab,
591                             (GtkDestroyNotify) gtk_widget_unref);
592   gtk_widget_show (demo_tab);
593   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 0), demo_tab);
594
595   options_vbox = gtk_vbox_new (FALSE, 0);
596   gtk_widget_set_name (options_vbox, "options_vbox");
597   gtk_widget_ref (options_vbox);
598   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "options_vbox", options_vbox,
599                             (GtkDestroyNotify) gtk_widget_unref);
600   gtk_widget_show (options_vbox);
601   gtk_container_add (GTK_CONTAINER (notebook), options_vbox);
602
603   options_table = gtk_table_new (2, 2, TRUE);
604   gtk_widget_set_name (options_table, "options_table");
605   gtk_widget_ref (options_table);
606   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "options_table", options_table,
607                             (GtkDestroyNotify) gtk_widget_unref);
608   gtk_widget_show (options_table);
609   gtk_box_pack_start (GTK_BOX (options_vbox), options_table, FALSE, FALSE, 0);
610   gtk_container_set_border_width (GTK_CONTAINER (options_table), 10);
611   gtk_table_set_row_spacings (GTK_TABLE (options_table), 2);
612
613   blanking_frame = gtk_frame_new ("Blanking and Locking:");
614   gtk_widget_set_name (blanking_frame, "blanking_frame");
615   gtk_widget_ref (blanking_frame);
616   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "blanking_frame", blanking_frame,
617                             (GtkDestroyNotify) gtk_widget_unref);
618   gtk_widget_show (blanking_frame);
619   gtk_table_attach (GTK_TABLE (options_table), blanking_frame, 0, 1, 0, 1,
620                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
621                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
622   gtk_container_set_border_width (GTK_CONTAINER (blanking_frame), 10);
623
624   blanking_table = gtk_table_new (5, 3, FALSE);
625   gtk_widget_set_name (blanking_table, "blanking_table");
626   gtk_widget_ref (blanking_table);
627   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "blanking_table", blanking_table,
628                             (GtkDestroyNotify) gtk_widget_unref);
629   gtk_widget_show (blanking_table);
630   gtk_container_add (GTK_CONTAINER (blanking_frame), blanking_table);
631   gtk_container_set_border_width (GTK_CONTAINER (blanking_table), 10);
632   gtk_table_set_row_spacings (GTK_TABLE (blanking_table), 2);
633   gtk_table_set_col_spacings (GTK_TABLE (blanking_table), 10);
634
635   lock_text = gtk_entry_new_with_max_length (8);
636   gtk_widget_set_name (lock_text, "lock_text");
637   gtk_widget_ref (lock_text);
638   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_text", lock_text,
639                             (GtkDestroyNotify) gtk_widget_unref);
640   gtk_widget_show (lock_text);
641   gtk_table_attach (GTK_TABLE (blanking_table), lock_text, 1, 2, 4, 5,
642                     (GtkAttachOptions) (0),
643                     (GtkAttachOptions) (0), 0, 0);
644   gtk_tooltips_set_tip (tooltips, lock_text, "How long after the screen saver has activated until a password will be required (if  `Require Password' is also set.)", NULL);
645
646   cycle_text = gtk_entry_new_with_max_length (8);
647   gtk_widget_set_name (cycle_text, "cycle_text");
648   gtk_widget_ref (cycle_text);
649   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_text", cycle_text,
650                             (GtkDestroyNotify) gtk_widget_unref);
651   gtk_widget_show (cycle_text);
652   gtk_table_attach (GTK_TABLE (blanking_table), cycle_text, 1, 2, 1, 2,
653                     (GtkAttachOptions) (0),
654                     (GtkAttachOptions) (0), 0, 0);
655   gtk_tooltips_set_tip (tooltips, cycle_text, "How long each demo will be run before moving on to another.", NULL);
656
657   timeout_text = gtk_entry_new_with_max_length (8);
658   gtk_widget_set_name (timeout_text, "timeout_text");
659   gtk_widget_ref (timeout_text);
660   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_text", timeout_text,
661                             (GtkDestroyNotify) gtk_widget_unref);
662   gtk_widget_show (timeout_text);
663   gtk_table_attach (GTK_TABLE (blanking_table), timeout_text, 1, 2, 0, 1,
664                     (GtkAttachOptions) (0),
665                     (GtkAttachOptions) (0), 0, 0);
666   gtk_tooltips_set_tip (tooltips, timeout_text, "How long until the screen saver activates and begins running demos.", NULL);
667
668   timeout_label = gtk_label_new ("Blank After:");
669   gtk_widget_set_name (timeout_label, "timeout_label");
670   gtk_widget_ref (timeout_label);
671   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_label", timeout_label,
672                             (GtkDestroyNotify) gtk_widget_unref);
673   gtk_widget_show (timeout_label);
674   gtk_table_attach (GTK_TABLE (blanking_table), timeout_label, 0, 1, 0, 1,
675                     (GtkAttachOptions) (GTK_FILL),
676                     (GtkAttachOptions) (0), 0, 0);
677   gtk_label_set_justify (GTK_LABEL (timeout_label), GTK_JUSTIFY_RIGHT);
678   gtk_misc_set_alignment (GTK_MISC (timeout_label), 1, 0.5);
679
680   cycle_label = gtk_label_new ("Cycle After:");
681   gtk_widget_set_name (cycle_label, "cycle_label");
682   gtk_widget_ref (cycle_label);
683   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_label", cycle_label,
684                             (GtkDestroyNotify) gtk_widget_unref);
685   gtk_widget_show (cycle_label);
686   gtk_table_attach (GTK_TABLE (blanking_table), cycle_label, 0, 1, 1, 2,
687                     (GtkAttachOptions) (GTK_FILL),
688                     (GtkAttachOptions) (0), 0, 0);
689   gtk_label_set_justify (GTK_LABEL (cycle_label), GTK_JUSTIFY_RIGHT);
690   gtk_misc_set_alignment (GTK_MISC (cycle_label), 1, 0.5);
691
692   lock_label = gtk_label_new ("Lock After:");
693   gtk_widget_set_name (lock_label, "lock_label");
694   gtk_widget_ref (lock_label);
695   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_label", lock_label,
696                             (GtkDestroyNotify) gtk_widget_unref);
697   gtk_widget_show (lock_label);
698   gtk_table_attach (GTK_TABLE (blanking_table), lock_label, 0, 1, 4, 5,
699                     (GtkAttachOptions) (GTK_FILL),
700                     (GtkAttachOptions) (0), 0, 0);
701   gtk_label_set_justify (GTK_LABEL (lock_label), GTK_JUSTIFY_RIGHT);
702   gtk_misc_set_alignment (GTK_MISC (lock_label), 1, 0.5);
703
704   blanking_dummy = gtk_label_new ("");
705   gtk_widget_set_name (blanking_dummy, "blanking_dummy");
706   gtk_widget_ref (blanking_dummy);
707   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "blanking_dummy", blanking_dummy,
708                             (GtkDestroyNotify) gtk_widget_unref);
709   gtk_widget_show (blanking_dummy);
710   gtk_table_attach (GTK_TABLE (blanking_table), blanking_dummy, 2, 3, 4, 5,
711                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
712                     (GtkAttachOptions) (0), 0, 0);
713   gtk_label_set_justify (GTK_LABEL (blanking_dummy), GTK_JUSTIFY_LEFT);
714
715   blanking_hr = gtk_hseparator_new ();
716   gtk_widget_set_name (blanking_hr, "blanking_hr");
717   gtk_widget_ref (blanking_hr);
718   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "blanking_hr", blanking_hr,
719                             (GtkDestroyNotify) gtk_widget_unref);
720   gtk_widget_show (blanking_hr);
721   gtk_table_attach (GTK_TABLE (blanking_table), blanking_hr, 0, 3, 2, 3,
722                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
723                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
724
725   lock_button_eventbox = gtk_event_box_new ();
726   gtk_widget_set_name (lock_button_eventbox, "lock_button_eventbox");
727   gtk_widget_ref (lock_button_eventbox);
728   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_button_eventbox", lock_button_eventbox,
729                             (GtkDestroyNotify) gtk_widget_unref);
730   gtk_widget_show (lock_button_eventbox);
731   gtk_table_attach (GTK_TABLE (blanking_table), lock_button_eventbox, 0, 3, 3, 4,
732                     (GtkAttachOptions) (GTK_FILL),
733                     (GtkAttachOptions) (GTK_FILL), 0, 0);
734   gtk_tooltips_set_tip (tooltips, lock_button_eventbox, "Whether a password should be required to unblank the screen.", NULL);
735
736   lock_button = gtk_check_button_new_with_label ("Require Password");
737   gtk_widget_set_name (lock_button, "lock_button");
738   gtk_widget_ref (lock_button);
739   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_button", lock_button,
740                             (GtkDestroyNotify) gtk_widget_unref);
741   gtk_widget_show (lock_button);
742   gtk_container_add (GTK_CONTAINER (lock_button_eventbox), lock_button);
743
744   dpms_frame = gtk_frame_new ("Display Power Management:");
745   gtk_widget_set_name (dpms_frame, "dpms_frame");
746   gtk_widget_ref (dpms_frame);
747   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_frame", dpms_frame,
748                             (GtkDestroyNotify) gtk_widget_unref);
749   gtk_widget_show (dpms_frame);
750   gtk_table_attach (GTK_TABLE (options_table), dpms_frame, 1, 2, 0, 1,
751                     (GtkAttachOptions) (GTK_FILL),
752                     (GtkAttachOptions) (GTK_FILL), 0, 0);
753   gtk_container_set_border_width (GTK_CONTAINER (dpms_frame), 10);
754
755   dpms_table = gtk_table_new (4, 3, FALSE);
756   gtk_widget_set_name (dpms_table, "dpms_table");
757   gtk_widget_ref (dpms_table);
758   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_table", dpms_table,
759                             (GtkDestroyNotify) gtk_widget_unref);
760   gtk_widget_show (dpms_table);
761   gtk_container_add (GTK_CONTAINER (dpms_frame), dpms_table);
762   gtk_container_set_border_width (GTK_CONTAINER (dpms_table), 10);
763   gtk_table_set_row_spacings (GTK_TABLE (dpms_table), 2);
764   gtk_table_set_col_spacings (GTK_TABLE (dpms_table), 10);
765
766   dpms_off_text = gtk_entry_new_with_max_length (8);
767   gtk_widget_set_name (dpms_off_text, "dpms_off_text");
768   gtk_widget_ref (dpms_off_text);
769   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_text", dpms_off_text,
770                             (GtkDestroyNotify) gtk_widget_unref);
771   gtk_widget_show (dpms_off_text);
772   gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_text, 1, 2, 3, 4,
773                     (GtkAttachOptions) (0),
774                     (GtkAttachOptions) (0), 0, 0);
775   gtk_tooltips_set_tip (tooltips, dpms_off_text, "How long until the monitor powers down (if Power Management is enabled).", NULL);
776
777   dpms_suspend_text = gtk_entry_new_with_max_length (8);
778   gtk_widget_set_name (dpms_suspend_text, "dpms_suspend_text");
779   gtk_widget_ref (dpms_suspend_text);
780   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_text", dpms_suspend_text,
781                             (GtkDestroyNotify) gtk_widget_unref);
782   gtk_widget_show (dpms_suspend_text);
783   gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_text, 1, 2, 2, 3,
784                     (GtkAttachOptions) (0),
785                     (GtkAttachOptions) (0), 0, 0);
786   gtk_tooltips_set_tip (tooltips, dpms_suspend_text, "How long until the monitor goes into power-saving mode (if Power Management is enabled).", NULL);
787
788   dpms_standby_text = gtk_entry_new_with_max_length (8);
789   gtk_widget_set_name (dpms_standby_text, "dpms_standby_text");
790   gtk_widget_ref (dpms_standby_text);
791   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_text", dpms_standby_text,
792                             (GtkDestroyNotify) gtk_widget_unref);
793   gtk_widget_show (dpms_standby_text);
794   gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_text, 1, 2, 1, 2,
795                     (GtkAttachOptions) (0),
796                     (GtkAttachOptions) (0), 0, 0);
797   gtk_tooltips_set_tip (tooltips, dpms_standby_text, "How long before the monitor goes completely black (if Power Management is enabled).", NULL);
798
799   dpms_standby_label = gtk_label_new ("Standby After:");
800   gtk_widget_set_name (dpms_standby_label, "dpms_standby_label");
801   gtk_widget_ref (dpms_standby_label);
802   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_label", dpms_standby_label,
803                             (GtkDestroyNotify) gtk_widget_unref);
804   gtk_widget_show (dpms_standby_label);
805   gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_label, 0, 1, 1, 2,
806                     (GtkAttachOptions) (GTK_FILL),
807                     (GtkAttachOptions) (0), 0, 0);
808   gtk_label_set_justify (GTK_LABEL (dpms_standby_label), GTK_JUSTIFY_RIGHT);
809   gtk_misc_set_alignment (GTK_MISC (dpms_standby_label), 1, 0.5);
810
811   dpms_off_label = gtk_label_new ("Off After:");
812   gtk_widget_set_name (dpms_off_label, "dpms_off_label");
813   gtk_widget_ref (dpms_off_label);
814   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_label", dpms_off_label,
815                             (GtkDestroyNotify) gtk_widget_unref);
816   gtk_widget_show (dpms_off_label);
817   gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_label, 0, 1, 3, 4,
818                     (GtkAttachOptions) (GTK_FILL),
819                     (GtkAttachOptions) (0), 0, 0);
820   gtk_label_set_justify (GTK_LABEL (dpms_off_label), GTK_JUSTIFY_RIGHT);
821   gtk_misc_set_alignment (GTK_MISC (dpms_off_label), 1, 0.5);
822
823   dpms_suspend_label = gtk_label_new ("Suspend After:");
824   gtk_widget_set_name (dpms_suspend_label, "dpms_suspend_label");
825   gtk_widget_ref (dpms_suspend_label);
826   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_label", dpms_suspend_label,
827                             (GtkDestroyNotify) gtk_widget_unref);
828   gtk_widget_show (dpms_suspend_label);
829   gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_label, 0, 1, 2, 3,
830                     (GtkAttachOptions) (GTK_FILL),
831                     (GtkAttachOptions) (0), 0, 0);
832   gtk_label_set_justify (GTK_LABEL (dpms_suspend_label), GTK_JUSTIFY_RIGHT);
833   gtk_misc_set_alignment (GTK_MISC (dpms_suspend_label), 1, 0.5);
834
835   dpms_dummy = gtk_label_new ("");
836   gtk_widget_set_name (dpms_dummy, "dpms_dummy");
837   gtk_widget_ref (dpms_dummy);
838   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_dummy", dpms_dummy,
839                             (GtkDestroyNotify) gtk_widget_unref);
840   gtk_widget_show (dpms_dummy);
841   gtk_table_attach (GTK_TABLE (dpms_table), dpms_dummy, 2, 3, 3, 4,
842                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
843                     (GtkAttachOptions) (0), 0, 0);
844   gtk_label_set_justify (GTK_LABEL (dpms_dummy), GTK_JUSTIFY_LEFT);
845
846   dpms_button_eventbox = gtk_event_box_new ();
847   gtk_widget_set_name (dpms_button_eventbox, "dpms_button_eventbox");
848   gtk_widget_ref (dpms_button_eventbox);
849   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_button_eventbox", dpms_button_eventbox,
850                             (GtkDestroyNotify) gtk_widget_unref);
851   gtk_widget_show (dpms_button_eventbox);
852   gtk_table_attach (GTK_TABLE (dpms_table), dpms_button_eventbox, 0, 3, 0, 1,
853                     (GtkAttachOptions) (GTK_FILL),
854                     (GtkAttachOptions) (GTK_FILL), 0, 0);
855   gtk_tooltips_set_tip (tooltips, dpms_button_eventbox, "Whether the monitor should be powered down after a while.", NULL);
856
857   dpms_button = gtk_check_button_new_with_label ("Power Management Enabled");
858   gtk_widget_set_name (dpms_button, "dpms_button");
859   gtk_widget_ref (dpms_button);
860   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_button", dpms_button,
861                             (GtkDestroyNotify) gtk_widget_unref);
862   gtk_widget_show (dpms_button);
863   gtk_container_add (GTK_CONTAINER (dpms_button_eventbox), dpms_button);
864   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dpms_button), TRUE);
865
866   diag_frame = gtk_frame_new ("Diagnostics:");
867   gtk_widget_set_name (diag_frame, "diag_frame");
868   gtk_widget_ref (diag_frame);
869   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_frame", diag_frame,
870                             (GtkDestroyNotify) gtk_widget_unref);
871   gtk_widget_show (diag_frame);
872   gtk_table_attach (GTK_TABLE (options_table), diag_frame, 0, 1, 1, 2,
873                     (GtkAttachOptions) (GTK_FILL),
874                     (GtkAttachOptions) (GTK_FILL), 0, 0);
875   gtk_container_set_border_width (GTK_CONTAINER (diag_frame), 10);
876
877   diag_table = gtk_table_new (3, 1, FALSE);
878   gtk_widget_set_name (diag_table, "diag_table");
879   gtk_widget_ref (diag_table);
880   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_table", diag_table,
881                             (GtkDestroyNotify) gtk_widget_unref);
882   gtk_widget_show (diag_table);
883   gtk_container_add (GTK_CONTAINER (diag_frame), diag_table);
884   gtk_container_set_border_width (GTK_CONTAINER (diag_table), 10);
885   gtk_table_set_row_spacings (GTK_TABLE (diag_table), 2);
886   gtk_table_set_col_spacings (GTK_TABLE (diag_table), 10);
887
888   verbose_button_eventbox = gtk_event_box_new ();
889   gtk_widget_set_name (verbose_button_eventbox, "verbose_button_eventbox");
890   gtk_widget_ref (verbose_button_eventbox);
891   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "verbose_button_eventbox", verbose_button_eventbox,
892                             (GtkDestroyNotify) gtk_widget_unref);
893   gtk_widget_show (verbose_button_eventbox);
894   gtk_table_attach (GTK_TABLE (diag_table), verbose_button_eventbox, 0, 1, 0, 1,
895                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
896                     (GtkAttachOptions) (GTK_FILL), 0, 0);
897   gtk_tooltips_set_tip (tooltips, verbose_button_eventbox, "Whether the daemon should print lots of debugging information.", NULL);
898
899   verbose_button = gtk_check_button_new_with_label ("Verbose Diagnostics");
900   gtk_widget_set_name (verbose_button, "verbose_button");
901   gtk_widget_ref (verbose_button);
902   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "verbose_button", verbose_button,
903                             (GtkDestroyNotify) gtk_widget_unref);
904   gtk_widget_show (verbose_button);
905   gtk_container_add (GTK_CONTAINER (verbose_button_eventbox), verbose_button);
906
907   capture_button_eventbox = gtk_event_box_new ();
908   gtk_widget_set_name (capture_button_eventbox, "capture_button_eventbox");
909   gtk_widget_ref (capture_button_eventbox);
910   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "capture_button_eventbox", capture_button_eventbox,
911                             (GtkDestroyNotify) gtk_widget_unref);
912   gtk_widget_show (capture_button_eventbox);
913   gtk_table_attach (GTK_TABLE (diag_table), capture_button_eventbox, 0, 1, 1, 2,
914                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
915                     (GtkAttachOptions) (GTK_FILL), 0, 0);
916   gtk_tooltips_set_tip (tooltips, capture_button_eventbox, "Whether the stdout and stderr streams of graphics demos should be displayed on the xscreensaver window.", NULL);
917
918   capture_button = gtk_check_button_new_with_label ("Display Subprocess Errors");
919   gtk_widget_set_name (capture_button, "capture_button");
920   gtk_widget_ref (capture_button);
921   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "capture_button", capture_button,
922                             (GtkDestroyNotify) gtk_widget_unref);
923   gtk_widget_show (capture_button);
924   gtk_container_add (GTK_CONTAINER (capture_button_eventbox), capture_button);
925
926   splash_button_eventbox = gtk_event_box_new ();
927   gtk_widget_set_name (splash_button_eventbox, "splash_button_eventbox");
928   gtk_widget_ref (splash_button_eventbox);
929   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "splash_button_eventbox", splash_button_eventbox,
930                             (GtkDestroyNotify) gtk_widget_unref);
931   gtk_widget_show (splash_button_eventbox);
932   gtk_table_attach (GTK_TABLE (diag_table), splash_button_eventbox, 0, 1, 2, 3,
933                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
934                     (GtkAttachOptions) (0), 0, 0);
935   gtk_tooltips_set_tip (tooltips, splash_button_eventbox, "Whether the splash screen (with the version number and `Help' button) should be momentarily displayed when the daemon first starts up.", NULL);
936
937   splash_button = gtk_check_button_new_with_label ("Display Splash Screen at Startup");
938   gtk_widget_set_name (splash_button, "splash_button");
939   gtk_widget_ref (splash_button);
940   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "splash_button", splash_button,
941                             (GtkDestroyNotify) gtk_widget_unref);
942   gtk_widget_show (splash_button);
943   gtk_container_add (GTK_CONTAINER (splash_button_eventbox), splash_button);
944   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (splash_button), TRUE);
945
946   cmap_frame = gtk_frame_new ("Colormaps: (8-bit displays only)");
947   gtk_widget_set_name (cmap_frame, "cmap_frame");
948   gtk_widget_ref (cmap_frame);
949   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_frame", cmap_frame,
950                             (GtkDestroyNotify) gtk_widget_unref);
951   gtk_widget_show (cmap_frame);
952   gtk_table_attach (GTK_TABLE (options_table), cmap_frame, 1, 2, 1, 2,
953                     (GtkAttachOptions) (GTK_FILL),
954                     (GtkAttachOptions) (GTK_FILL), 0, 0);
955   gtk_container_set_border_width (GTK_CONTAINER (cmap_frame), 10);
956
957   cmap_table = gtk_table_new (5, 3, FALSE);
958   gtk_widget_set_name (cmap_table, "cmap_table");
959   gtk_widget_ref (cmap_table);
960   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_table", cmap_table,
961                             (GtkDestroyNotify) gtk_widget_unref);
962   gtk_widget_show (cmap_table);
963   gtk_container_add (GTK_CONTAINER (cmap_frame), cmap_table);
964   gtk_container_set_border_width (GTK_CONTAINER (cmap_table), 10);
965   gtk_table_set_row_spacings (GTK_TABLE (cmap_table), 2);
966   gtk_table_set_col_spacings (GTK_TABLE (cmap_table), 10);
967
968   fade_text = gtk_entry_new_with_max_length (8);
969   gtk_widget_set_name (fade_text, "fade_text");
970   gtk_widget_ref (fade_text);
971   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_text", fade_text,
972                             (GtkDestroyNotify) gtk_widget_unref);
973   gtk_widget_show (fade_text);
974   gtk_table_attach (GTK_TABLE (cmap_table), fade_text, 1, 2, 4, 5,
975                     (GtkAttachOptions) (0),
976                     (GtkAttachOptions) (0), 0, 0);
977   gtk_tooltips_set_tip (tooltips, fade_text, "How long it should take for the screen to fade in and out.", NULL);
978
979   cmap_dummy = gtk_label_new ("");
980   gtk_widget_set_name (cmap_dummy, "cmap_dummy");
981   gtk_widget_ref (cmap_dummy);
982   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_dummy", cmap_dummy,
983                             (GtkDestroyNotify) gtk_widget_unref);
984   gtk_widget_show (cmap_dummy);
985   gtk_table_attach (GTK_TABLE (cmap_table), cmap_dummy, 2, 3, 4, 5,
986                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
987                     (GtkAttachOptions) (0), 0, 0);
988   gtk_label_set_justify (GTK_LABEL (cmap_dummy), GTK_JUSTIFY_LEFT);
989
990   fade_label = gtk_label_new ("Fade Duration:");
991   gtk_widget_set_name (fade_label, "fade_label");
992   gtk_widget_ref (fade_label);
993   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_label", fade_label,
994                             (GtkDestroyNotify) gtk_widget_unref);
995   gtk_widget_show (fade_label);
996   gtk_table_attach (GTK_TABLE (cmap_table), fade_label, 0, 1, 4, 5,
997                     (GtkAttachOptions) (GTK_FILL),
998                     (GtkAttachOptions) (0), 0, 0);
999   gtk_label_set_justify (GTK_LABEL (fade_label), GTK_JUSTIFY_RIGHT);
1000   gtk_misc_set_alignment (GTK_MISC (fade_label), 1, 0.5);
1001
1002   cmap_hr = gtk_hseparator_new ();
1003   gtk_widget_set_name (cmap_hr, "cmap_hr");
1004   gtk_widget_ref (cmap_hr);
1005   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_hr", cmap_hr,
1006                             (GtkDestroyNotify) gtk_widget_unref);
1007   gtk_widget_show (cmap_hr);
1008   gtk_table_attach (GTK_TABLE (cmap_table), cmap_hr, 0, 3, 1, 2,
1009                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1010                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
1011
1012   install_button_eventbox = gtk_event_box_new ();
1013   gtk_widget_set_name (install_button_eventbox, "install_button_eventbox");
1014   gtk_widget_ref (install_button_eventbox);
1015   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "install_button_eventbox", install_button_eventbox,
1016                             (GtkDestroyNotify) gtk_widget_unref);
1017   gtk_widget_show (install_button_eventbox);
1018   gtk_table_attach (GTK_TABLE (cmap_table), install_button_eventbox, 0, 3, 0, 1,
1019                     (GtkAttachOptions) (GTK_FILL),
1020                     (GtkAttachOptions) (GTK_FILL), 0, 0);
1021   gtk_tooltips_set_tip (tooltips, install_button_eventbox, "Whether to install a private colormap when running in 8-bit mode on the default Visual.", NULL);
1022
1023   install_button = gtk_check_button_new_with_label ("Install Colormap");
1024   gtk_widget_set_name (install_button, "install_button");
1025   gtk_widget_ref (install_button);
1026   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "install_button", install_button,
1027                             (GtkDestroyNotify) gtk_widget_unref);
1028   gtk_widget_show (install_button);
1029   gtk_container_add (GTK_CONTAINER (install_button_eventbox), install_button);
1030
1031   fade_button_eventbox = gtk_event_box_new ();
1032   gtk_widget_set_name (fade_button_eventbox, "fade_button_eventbox");
1033   gtk_widget_ref (fade_button_eventbox);
1034   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_button_eventbox", fade_button_eventbox,
1035                             (GtkDestroyNotify) gtk_widget_unref);
1036   gtk_widget_show (fade_button_eventbox);
1037   gtk_table_attach (GTK_TABLE (cmap_table), fade_button_eventbox, 0, 3, 2, 3,
1038                     (GtkAttachOptions) (GTK_FILL),
1039                     (GtkAttachOptions) (GTK_FILL), 0, 0);
1040   gtk_tooltips_set_tip (tooltips, fade_button_eventbox, "Whether the screen should slowly fade to black when the screen saver activates.", NULL);
1041
1042   fade_button = gtk_check_button_new_with_label ("Fade To Black When Blanking");
1043   gtk_widget_set_name (fade_button, "fade_button");
1044   gtk_widget_ref (fade_button);
1045   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_button", fade_button,
1046                             (GtkDestroyNotify) gtk_widget_unref);
1047   gtk_widget_show (fade_button);
1048   gtk_container_add (GTK_CONTAINER (fade_button_eventbox), fade_button);
1049
1050   unfade_button_eventbox = gtk_event_box_new ();
1051   gtk_widget_set_name (unfade_button_eventbox, "unfade_button_eventbox");
1052   gtk_widget_ref (unfade_button_eventbox);
1053   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "unfade_button_eventbox", unfade_button_eventbox,
1054                             (GtkDestroyNotify) gtk_widget_unref);
1055   gtk_widget_show (unfade_button_eventbox);
1056   gtk_table_attach (GTK_TABLE (cmap_table), unfade_button_eventbox, 0, 3, 3, 4,
1057                     (GtkAttachOptions) (GTK_FILL),
1058                     (GtkAttachOptions) (GTK_FILL), 0, 0);
1059   gtk_tooltips_set_tip (tooltips, unfade_button_eventbox, "Whether the screen should slowly fade in from black when the screen saver deactivates.", NULL);
1060
1061   unfade_button = gtk_check_button_new_with_label ("Fade From Black When Unblanking");
1062   gtk_widget_set_name (unfade_button, "unfade_button");
1063   gtk_widget_ref (unfade_button);
1064   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "unfade_button", unfade_button,
1065                             (GtkDestroyNotify) gtk_widget_unref);
1066   gtk_widget_show (unfade_button);
1067   gtk_container_add (GTK_CONTAINER (unfade_button_eventbox), unfade_button);
1068
1069   options_tab = gtk_label_new ("Screensaver Options");
1070   gtk_widget_set_name (options_tab, "options_tab");
1071   gtk_widget_ref (options_tab);
1072   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "options_tab", options_tab,
1073                             (GtkDestroyNotify) gtk_widget_unref);
1074   gtk_widget_show (options_tab);
1075   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1), options_tab);
1076
1077   gtk_signal_connect (GTK_OBJECT (activate_menu), "activate",
1078                       GTK_SIGNAL_FUNC (activate_menu_cb),
1079                       NULL);
1080   gtk_signal_connect (GTK_OBJECT (lock_menu), "activate",
1081                       GTK_SIGNAL_FUNC (lock_menu_cb),
1082                       NULL);
1083   gtk_signal_connect (GTK_OBJECT (kill_menu), "activate",
1084                       GTK_SIGNAL_FUNC (kill_menu_cb),
1085                       NULL);
1086   gtk_signal_connect (GTK_OBJECT (restart), "activate",
1087                       GTK_SIGNAL_FUNC (restart_menu_cb),
1088                       NULL);
1089   gtk_signal_connect (GTK_OBJECT (exit_menu), "activate",
1090                       GTK_SIGNAL_FUNC (exit_menu_cb),
1091                       NULL);
1092   gtk_signal_connect (GTK_OBJECT (cut_menu), "activate",
1093                       GTK_SIGNAL_FUNC (cut_menu_cb),
1094                       NULL);
1095   gtk_signal_connect (GTK_OBJECT (copy_menu), "activate",
1096                       GTK_SIGNAL_FUNC (copy_menu_cb),
1097                       NULL);
1098   gtk_signal_connect (GTK_OBJECT (paste_menu), "activate",
1099                       GTK_SIGNAL_FUNC (paste_menu_cb),
1100                       NULL);
1101   gtk_signal_connect (GTK_OBJECT (about_menu), "activate",
1102                       GTK_SIGNAL_FUNC (about_menu_cb),
1103                       NULL);
1104   gtk_signal_connect (GTK_OBJECT (doc_menu), "activate",
1105                       GTK_SIGNAL_FUNC (doc_menu_cb),
1106                       NULL);
1107   gtk_signal_connect (GTK_OBJECT (notebook), "switch_page",
1108                       GTK_SIGNAL_FUNC (pref_changed_cb),
1109                       NULL);
1110   gtk_signal_connect (GTK_OBJECT (next), "clicked",
1111                       GTK_SIGNAL_FUNC (run_next_cb),
1112                       NULL);
1113   gtk_signal_connect (GTK_OBJECT (prev), "clicked",
1114                       GTK_SIGNAL_FUNC (run_prev_cb),
1115                       NULL);
1116   gtk_signal_connect (GTK_OBJECT (enabled), "toggled",
1117                       GTK_SIGNAL_FUNC (enabled_cb),
1118                       NULL);
1119   gtk_signal_connect (GTK_OBJECT (demo), "clicked",
1120                       GTK_SIGNAL_FUNC (run_this_cb),
1121                       NULL);
1122   gtk_signal_connect (GTK_OBJECT (manual), "clicked",
1123                       GTK_SIGNAL_FUNC (manual_cb),
1124                       NULL);
1125   gtk_signal_connect (GTK_OBJECT (lock_text), "activate",
1126                       GTK_SIGNAL_FUNC (pref_changed_cb),
1127                       NULL);
1128   gtk_signal_connect (GTK_OBJECT (lock_text), "focus_out_event",
1129                       GTK_SIGNAL_FUNC (pref_changed_cb),
1130                       NULL);
1131   gtk_signal_connect (GTK_OBJECT (cycle_text), "activate",
1132                       GTK_SIGNAL_FUNC (pref_changed_cb),
1133                       NULL);
1134   gtk_signal_connect (GTK_OBJECT (cycle_text), "focus_out_event",
1135                       GTK_SIGNAL_FUNC (pref_changed_cb),
1136                       NULL);
1137   gtk_signal_connect (GTK_OBJECT (timeout_text), "activate",
1138                       GTK_SIGNAL_FUNC (pref_changed_cb),
1139                       NULL);
1140   gtk_signal_connect (GTK_OBJECT (timeout_text), "focus_out_event",
1141                       GTK_SIGNAL_FUNC (pref_changed_cb),
1142                       NULL);
1143   gtk_signal_connect (GTK_OBJECT (lock_button), "toggled",
1144                       GTK_SIGNAL_FUNC (pref_changed_cb),
1145                       NULL);
1146   gtk_signal_connect (GTK_OBJECT (dpms_off_text), "activate",
1147                       GTK_SIGNAL_FUNC (pref_changed_cb),
1148                       NULL);
1149   gtk_signal_connect (GTK_OBJECT (dpms_off_text), "focus_out_event",
1150                       GTK_SIGNAL_FUNC (pref_changed_cb),
1151                       NULL);
1152   gtk_signal_connect (GTK_OBJECT (dpms_suspend_text), "activate",
1153                       GTK_SIGNAL_FUNC (pref_changed_cb),
1154                       NULL);
1155   gtk_signal_connect (GTK_OBJECT (dpms_suspend_text), "focus_out_event",
1156                       GTK_SIGNAL_FUNC (pref_changed_cb),
1157                       NULL);
1158   gtk_signal_connect (GTK_OBJECT (dpms_standby_text), "activate",
1159                       GTK_SIGNAL_FUNC (pref_changed_cb),
1160                       NULL);
1161   gtk_signal_connect (GTK_OBJECT (dpms_standby_text), "focus_out_event",
1162                       GTK_SIGNAL_FUNC (pref_changed_cb),
1163                       NULL);
1164   gtk_signal_connect (GTK_OBJECT (dpms_button), "toggled",
1165                       GTK_SIGNAL_FUNC (pref_changed_cb),
1166                       NULL);
1167   gtk_signal_connect (GTK_OBJECT (verbose_button), "toggled",
1168                       GTK_SIGNAL_FUNC (pref_changed_cb),
1169                       NULL);
1170   gtk_signal_connect (GTK_OBJECT (capture_button), "toggled",
1171                       GTK_SIGNAL_FUNC (pref_changed_cb),
1172                       NULL);
1173   gtk_signal_connect (GTK_OBJECT (splash_button), "toggled",
1174                       GTK_SIGNAL_FUNC (pref_changed_cb),
1175                       NULL);
1176   gtk_signal_connect (GTK_OBJECT (fade_text), "activate",
1177                       GTK_SIGNAL_FUNC (pref_changed_cb),
1178                       NULL);
1179   gtk_signal_connect (GTK_OBJECT (fade_text), "focus_out_event",
1180                       GTK_SIGNAL_FUNC (pref_changed_cb),
1181                       NULL);
1182   gtk_signal_connect (GTK_OBJECT (install_button), "toggled",
1183                       GTK_SIGNAL_FUNC (pref_changed_cb),
1184                       NULL);
1185   gtk_signal_connect (GTK_OBJECT (fade_button), "toggled",
1186                       GTK_SIGNAL_FUNC (pref_changed_cb),
1187                       NULL);
1188   gtk_signal_connect (GTK_OBJECT (unfade_button), "toggled",
1189                       GTK_SIGNAL_FUNC (pref_changed_cb),
1190                       NULL);
1191
1192   gtk_widget_grab_default (next);
1193   gtk_object_set_data (GTK_OBJECT (xscreensaver_demo), "tooltips", tooltips);
1194
1195   gtk_window_add_accel_group (GTK_WINDOW (xscreensaver_demo), accel_group);
1196
1197   return xscreensaver_demo;
1198 }
1199