2 * DO NOT EDIT THIS FILE - it is generated by Glade.
14 #include <gdk/gdkkeysyms.h>
17 #include "demo-Gtk-stubs.h"
18 #include "demo-Gtk-widgets.h"
21 create_xscreensaver_demo (void)
23 GtkWidget *xscreensaver_demo;
24 GtkWidget *outer_vbox;
29 GtkAccelGroup *file_menu_accels;
30 GtkWidget *activate_menu;
34 GtkWidget *separator1;
38 GtkAccelGroup *edit_menu_accels;
41 GtkWidget *paste_menu;
44 GtkAccelGroup *help_menu_accels;
45 GtkWidget *about_menu;
48 GtkWidget *demos_hbox;
53 GtkWidget *centering_hbox;
54 GtkWidget *next_prev_hbox;
60 GtkWidget *opts_vbox2;
63 GtkWidget *opts_hbox3;
66 GtkWidget *visual_combo;
67 GList *visual_combo_items = NULL;
68 GtkWidget *combo_entry1;
69 GtkWidget *demo_hline;
70 GtkWidget *demo_manual_hbox;
74 GtkWidget *options_vbox;
75 GtkWidget *options_table;
76 GtkWidget *blanking_frame;
77 GtkWidget *blanking_table;
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;
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;
123 tooltips = gtk_tooltips_new ();
125 accel_group = gtk_accel_group_new ();
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");
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);
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);
151 file = gtk_menu_item_new_with_label ("");
152 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (file)->child),
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);
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));
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,
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);
184 lock_menu = gtk_menu_item_new_with_label ("");
185 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (lock_menu)->child),
187 gtk_widget_add_accelerator (lock_menu, "activate_item", file_menu_accels,
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);
197 kill_menu = gtk_menu_item_new_with_label ("");
198 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (kill_menu)->child),
200 gtk_widget_add_accelerator (kill_menu, "activate_item", file_menu_accels,
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);
210 restart = gtk_menu_item_new_with_label ("");
211 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (restart)->child),
213 gtk_widget_add_accelerator (restart, "activate_item", file_menu_accels,
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);
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);
232 exit_menu = gtk_menu_item_new_with_label ("");
233 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (exit_menu)->child),
235 gtk_widget_add_accelerator (exit_menu, "activate_item", file_menu_accels,
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);
245 edit = gtk_menu_item_new_with_label ("");
246 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (edit)->child),
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);
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));
265 cut_menu = gtk_menu_item_new_with_label ("");
266 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (cut_menu)->child),
268 gtk_widget_add_accelerator (cut_menu, "activate_item", edit_menu_accels,
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);
277 copy_menu = gtk_menu_item_new_with_label ("");
278 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (copy_menu)->child),
280 gtk_widget_add_accelerator (copy_menu, "activate_item", edit_menu_accels,
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);
289 paste_menu = gtk_menu_item_new_with_label ("");
290 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (paste_menu)->child),
292 gtk_widget_add_accelerator (paste_menu, "activate_item", edit_menu_accels,
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);
301 help = gtk_menu_item_new_with_label ("");
302 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (help)->child),
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);
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));
321 about_menu = gtk_menu_item_new_with_label ("");
322 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (about_menu)->child),
324 gtk_widget_add_accelerator (about_menu, "activate_item", help_menu_accels,
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);
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,
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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");
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
1077 gtk_signal_connect (GTK_OBJECT (activate_menu), "activate",
1078 GTK_SIGNAL_FUNC (activate_menu_cb),
1080 gtk_signal_connect (GTK_OBJECT (lock_menu), "activate",
1081 GTK_SIGNAL_FUNC (lock_menu_cb),
1083 gtk_signal_connect (GTK_OBJECT (kill_menu), "activate",
1084 GTK_SIGNAL_FUNC (kill_menu_cb),
1086 gtk_signal_connect (GTK_OBJECT (restart), "activate",
1087 GTK_SIGNAL_FUNC (restart_menu_cb),
1089 gtk_signal_connect (GTK_OBJECT (exit_menu), "activate",
1090 GTK_SIGNAL_FUNC (exit_menu_cb),
1092 gtk_signal_connect (GTK_OBJECT (cut_menu), "activate",
1093 GTK_SIGNAL_FUNC (cut_menu_cb),
1095 gtk_signal_connect (GTK_OBJECT (copy_menu), "activate",
1096 GTK_SIGNAL_FUNC (copy_menu_cb),
1098 gtk_signal_connect (GTK_OBJECT (paste_menu), "activate",
1099 GTK_SIGNAL_FUNC (paste_menu_cb),
1101 gtk_signal_connect (GTK_OBJECT (about_menu), "activate",
1102 GTK_SIGNAL_FUNC (about_menu_cb),
1104 gtk_signal_connect (GTK_OBJECT (doc_menu), "activate",
1105 GTK_SIGNAL_FUNC (doc_menu_cb),
1107 gtk_signal_connect (GTK_OBJECT (notebook), "switch_page",
1108 GTK_SIGNAL_FUNC (pref_changed_cb),
1110 gtk_signal_connect (GTK_OBJECT (next), "clicked",
1111 GTK_SIGNAL_FUNC (run_next_cb),
1113 gtk_signal_connect (GTK_OBJECT (prev), "clicked",
1114 GTK_SIGNAL_FUNC (run_prev_cb),
1116 gtk_signal_connect (GTK_OBJECT (enabled), "toggled",
1117 GTK_SIGNAL_FUNC (enabled_cb),
1119 gtk_signal_connect (GTK_OBJECT (demo), "clicked",
1120 GTK_SIGNAL_FUNC (run_this_cb),
1122 gtk_signal_connect (GTK_OBJECT (manual), "clicked",
1123 GTK_SIGNAL_FUNC (manual_cb),
1125 gtk_signal_connect (GTK_OBJECT (lock_text), "activate",
1126 GTK_SIGNAL_FUNC (pref_changed_cb),
1128 gtk_signal_connect (GTK_OBJECT (lock_text), "focus_out_event",
1129 GTK_SIGNAL_FUNC (pref_changed_cb),
1131 gtk_signal_connect (GTK_OBJECT (cycle_text), "activate",
1132 GTK_SIGNAL_FUNC (pref_changed_cb),
1134 gtk_signal_connect (GTK_OBJECT (cycle_text), "focus_out_event",
1135 GTK_SIGNAL_FUNC (pref_changed_cb),
1137 gtk_signal_connect (GTK_OBJECT (timeout_text), "activate",
1138 GTK_SIGNAL_FUNC (pref_changed_cb),
1140 gtk_signal_connect (GTK_OBJECT (timeout_text), "focus_out_event",
1141 GTK_SIGNAL_FUNC (pref_changed_cb),
1143 gtk_signal_connect (GTK_OBJECT (lock_button), "toggled",
1144 GTK_SIGNAL_FUNC (pref_changed_cb),
1146 gtk_signal_connect (GTK_OBJECT (dpms_off_text), "activate",
1147 GTK_SIGNAL_FUNC (pref_changed_cb),
1149 gtk_signal_connect (GTK_OBJECT (dpms_off_text), "focus_out_event",
1150 GTK_SIGNAL_FUNC (pref_changed_cb),
1152 gtk_signal_connect (GTK_OBJECT (dpms_suspend_text), "activate",
1153 GTK_SIGNAL_FUNC (pref_changed_cb),
1155 gtk_signal_connect (GTK_OBJECT (dpms_suspend_text), "focus_out_event",
1156 GTK_SIGNAL_FUNC (pref_changed_cb),
1158 gtk_signal_connect (GTK_OBJECT (dpms_standby_text), "activate",
1159 GTK_SIGNAL_FUNC (pref_changed_cb),
1161 gtk_signal_connect (GTK_OBJECT (dpms_standby_text), "focus_out_event",
1162 GTK_SIGNAL_FUNC (pref_changed_cb),
1164 gtk_signal_connect (GTK_OBJECT (dpms_button), "toggled",
1165 GTK_SIGNAL_FUNC (pref_changed_cb),
1167 gtk_signal_connect (GTK_OBJECT (verbose_button), "toggled",
1168 GTK_SIGNAL_FUNC (pref_changed_cb),
1170 gtk_signal_connect (GTK_OBJECT (capture_button), "toggled",
1171 GTK_SIGNAL_FUNC (pref_changed_cb),
1173 gtk_signal_connect (GTK_OBJECT (splash_button), "toggled",
1174 GTK_SIGNAL_FUNC (pref_changed_cb),
1176 gtk_signal_connect (GTK_OBJECT (fade_text), "activate",
1177 GTK_SIGNAL_FUNC (pref_changed_cb),
1179 gtk_signal_connect (GTK_OBJECT (fade_text), "focus_out_event",
1180 GTK_SIGNAL_FUNC (pref_changed_cb),
1182 gtk_signal_connect (GTK_OBJECT (install_button), "toggled",
1183 GTK_SIGNAL_FUNC (pref_changed_cb),
1185 gtk_signal_connect (GTK_OBJECT (fade_button), "toggled",
1186 GTK_SIGNAL_FUNC (pref_changed_cb),
1188 gtk_signal_connect (GTK_OBJECT (unfade_button), "toggled",
1189 GTK_SIGNAL_FUNC (pref_changed_cb),
1192 gtk_widget_grab_default (next);
1193 gtk_object_set_data (GTK_OBJECT (xscreensaver_demo), "tooltips", tooltips);
1195 gtk_window_add_accel_group (GTK_WINDOW (xscreensaver_demo), accel_group);
1197 return xscreensaver_demo;