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"
19 #include "demo-Gtk-support.h"
22 create_xscreensaver_demo (void)
24 GtkWidget *xscreensaver_demo;
25 GtkWidget *outer_vbox;
30 GtkAccelGroup *file_menu_accels;
31 GtkWidget *activate_menu;
35 GtkWidget *separator1;
39 GtkAccelGroup *help_menu_accels;
40 GtkWidget *about_menu;
43 GtkWidget *demos_table;
44 GtkWidget *blanking_table;
45 GtkWidget *cycle_label;
46 GtkWidget *lock_button_eventbox;
47 GtkWidget *lock_button;
48 GtkWidget *timeout_label;
49 GtkObject *timeout_spinbutton_adj;
50 GtkWidget *timeout_spinbutton;
51 GtkWidget *timeout_mlabel;
52 GtkWidget *cycle_mlabel;
53 GtkWidget *lock_mlabel;
54 GtkObject *lock_spinbutton_adj;
55 GtkWidget *lock_spinbutton;
56 GtkObject *cycle_spinbutton_adj;
57 GtkWidget *cycle_spinbutton;
58 GtkWidget *demo_manual_hbbox;
63 GtkWidget *mode_label;
65 GtkWidget *mode_menu_menu;
66 GtkWidget *glade_menuitem;
67 GtkWidget *col_head_hbox;
68 GtkWidget *use_col_frame;
70 GtkWidget *saver_col_frame;
71 GtkWidget *saver_label;
75 GtkWidget *centering_hbox;
76 GtkWidget *next_prev_hbox;
79 GtkWidget *preview_frame;
80 GtkWidget *preview_aspectframe;
83 GtkWidget *options_table;
84 GtkWidget *diag_frame;
88 GtkWidget *verbose_button_eventbox;
89 GtkWidget *verbose_button;
90 GtkWidget *capture_button_eventbox;
91 GtkWidget *capture_button;
92 GtkWidget *splash_button_eventbox;
93 GtkWidget *splash_button;
94 GtkWidget *cmap_frame;
98 GtkWidget *install_button_eventbox;
99 GtkWidget *install_button;
101 GtkWidget *fade_button_eventbox;
102 GtkWidget *fade_button;
103 GtkWidget *unfade_button_eventbox;
104 GtkWidget *unfade_button;
105 GtkWidget *fade_hbox;
106 GtkWidget *fade_dummy;
107 GtkWidget *fade_label;
108 GtkObject *fade_spinbutton_adj;
109 GtkWidget *fade_spinbutton;
110 GtkWidget *fade_sec_label;
111 GtkWidget *dpms_frame;
112 GtkWidget *dpms_hbox;
113 GtkWidget *dpms_logo;
114 GtkWidget *dpms_vbox;
115 GtkWidget *dpms_button_eventbox;
116 GtkWidget *dpms_button;
117 GtkWidget *dpms_table;
118 GtkObject *dpms_standby_spinbutton_adj;
119 GtkWidget *dpms_standby_spinbutton;
120 GtkWidget *dpms_standby_mlabel;
121 GtkWidget *dpms_suspend_mlabel;
122 GtkWidget *dpms_off_mlabel;
123 GtkWidget *dpms_off_label;
124 GtkWidget *dpms_suspend_label;
125 GtkWidget *dpms_standby_label;
126 GtkObject *dpms_suspend_spinbutton_adj;
127 GtkWidget *dpms_suspend_spinbutton;
128 GtkObject *dpms_off_spinbutton_adj;
129 GtkWidget *dpms_off_spinbutton;
130 GtkWidget *grab_frame;
131 GtkWidget *grab_hbox;
133 GtkWidget *grab_vbox;
134 GtkWidget *grab_desk_eventbox;
135 GtkWidget *grab_desk_button;
136 GtkWidget *grab_video_eventbox;
137 GtkWidget *grab_video_button;
138 GtkWidget *grab_image_eventbox;
139 GtkWidget *grab_image_button;
140 GtkWidget *image_hbox;
141 GtkWidget *grab_dummy;
142 GtkWidget *image_text;
143 GtkWidget *image_browse_button;
144 GtkWidget *options_tab;
145 GtkAccelGroup *accel_group;
146 GtkTooltips *tooltips;
148 tooltips = gtk_tooltips_new ();
150 accel_group = gtk_accel_group_new ();
152 xscreensaver_demo = gtk_window_new (GTK_WINDOW_TOPLEVEL);
153 gtk_widget_set_name (xscreensaver_demo, "xscreensaver_demo");
154 gtk_object_set_data (GTK_OBJECT (xscreensaver_demo), "xscreensaver_demo", xscreensaver_demo);
155 gtk_window_set_title (GTK_WINDOW (xscreensaver_demo), "XScreenSaver");
156 gtk_window_set_wmclass (GTK_WINDOW (xscreensaver_demo), "xscreensaver", "XScreenSaver");
158 outer_vbox = gtk_vbox_new (FALSE, 5);
159 gtk_widget_set_name (outer_vbox, "outer_vbox");
160 gtk_widget_ref (outer_vbox);
161 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "outer_vbox", outer_vbox,
162 (GtkDestroyNotify) gtk_widget_unref);
163 gtk_widget_show (outer_vbox);
164 gtk_container_add (GTK_CONTAINER (xscreensaver_demo), outer_vbox);
166 menubar = gtk_menu_bar_new ();
167 gtk_widget_set_name (menubar, "menubar");
168 gtk_widget_ref (menubar);
169 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "menubar", menubar,
170 (GtkDestroyNotify) gtk_widget_unref);
171 gtk_widget_show (menubar);
172 gtk_box_pack_start (GTK_BOX (outer_vbox), menubar, FALSE, FALSE, 0);
174 file = gtk_menu_item_new_with_label ("");
175 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (file)->child),
177 gtk_widget_add_accelerator (file, "activate_item", accel_group,
178 tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0);
179 gtk_widget_set_name (file, "file");
180 gtk_widget_ref (file);
181 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "file", file,
182 (GtkDestroyNotify) gtk_widget_unref);
183 gtk_widget_show (file);
184 gtk_container_add (GTK_CONTAINER (menubar), file);
186 file_menu = gtk_menu_new ();
187 gtk_widget_set_name (file_menu, "file_menu");
188 gtk_widget_ref (file_menu);
189 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "file_menu", file_menu,
190 (GtkDestroyNotify) gtk_widget_unref);
191 gtk_menu_item_set_submenu (GTK_MENU_ITEM (file), file_menu);
192 file_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (file_menu));
194 activate_menu = gtk_menu_item_new_with_label ("");
195 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (activate_menu)->child),
196 "_Blank Screen Now");
197 gtk_widget_add_accelerator (activate_menu, "activate_item", file_menu_accels,
199 gtk_widget_set_name (activate_menu, "activate_menu");
200 gtk_widget_ref (activate_menu);
201 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "activate_menu", activate_menu,
202 (GtkDestroyNotify) gtk_widget_unref);
203 gtk_widget_show (activate_menu);
204 gtk_container_add (GTK_CONTAINER (file_menu), activate_menu);
205 gtk_tooltips_set_tip (tooltips, activate_menu, "Activate the XScreenSaver daemon now (locking the screen if so configured.)", NULL);
207 lock_menu = gtk_menu_item_new_with_label ("");
208 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (lock_menu)->child),
210 gtk_widget_add_accelerator (lock_menu, "activate_item", file_menu_accels,
212 gtk_widget_set_name (lock_menu, "lock_menu");
213 gtk_widget_ref (lock_menu);
214 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_menu", lock_menu,
215 (GtkDestroyNotify) gtk_widget_unref);
216 gtk_widget_show (lock_menu);
217 gtk_container_add (GTK_CONTAINER (file_menu), lock_menu);
218 gtk_tooltips_set_tip (tooltips, lock_menu, "Lock the screen now (even if \"Lock Screen\" is unchecked.)", NULL);
220 kill_menu = gtk_menu_item_new_with_label ("");
221 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (kill_menu)->child),
223 gtk_widget_add_accelerator (kill_menu, "activate_item", file_menu_accels,
225 gtk_widget_set_name (kill_menu, "kill_menu");
226 gtk_widget_ref (kill_menu);
227 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "kill_menu", kill_menu,
228 (GtkDestroyNotify) gtk_widget_unref);
229 gtk_widget_show (kill_menu);
230 gtk_container_add (GTK_CONTAINER (file_menu), kill_menu);
231 gtk_tooltips_set_tip (tooltips, kill_menu, "Tell the running XScreenSaver daemon to exit.", NULL);
233 restart = gtk_menu_item_new_with_label ("");
234 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (restart)->child),
236 gtk_widget_add_accelerator (restart, "activate_item", file_menu_accels,
238 gtk_widget_set_name (restart, "restart");
239 gtk_widget_ref (restart);
240 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "restart", restart,
241 (GtkDestroyNotify) gtk_widget_unref);
242 gtk_widget_show (restart);
243 gtk_container_add (GTK_CONTAINER (file_menu), restart);
244 gtk_tooltips_set_tip (tooltips, restart, "Kill and re-launch the XScreenSaver daemon.", NULL);
246 separator1 = gtk_menu_item_new ();
247 gtk_widget_set_name (separator1, "separator1");
248 gtk_widget_ref (separator1);
249 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "separator1", separator1,
250 (GtkDestroyNotify) gtk_widget_unref);
251 gtk_widget_show (separator1);
252 gtk_container_add (GTK_CONTAINER (file_menu), separator1);
253 gtk_widget_set_sensitive (separator1, FALSE);
255 exit_menu = gtk_menu_item_new_with_label ("");
256 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (exit_menu)->child),
258 gtk_widget_add_accelerator (exit_menu, "activate_item", file_menu_accels,
260 gtk_widget_set_name (exit_menu, "exit_menu");
261 gtk_widget_ref (exit_menu);
262 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "exit_menu", exit_menu,
263 (GtkDestroyNotify) gtk_widget_unref);
264 gtk_widget_show (exit_menu);
265 gtk_container_add (GTK_CONTAINER (file_menu), exit_menu);
266 gtk_tooltips_set_tip (tooltips, exit_menu, "Exit the xscreensaver-demo program (but leave the XScreenSaver daemon running in the background.)", NULL);
268 help = gtk_menu_item_new_with_label ("");
269 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (help)->child),
271 gtk_widget_add_accelerator (help, "activate_item", accel_group,
272 tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0);
273 gtk_widget_set_name (help, "help");
274 gtk_widget_ref (help);
275 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "help", help,
276 (GtkDestroyNotify) gtk_widget_unref);
277 gtk_widget_show (help);
278 gtk_container_add (GTK_CONTAINER (menubar), help);
280 help_menu = gtk_menu_new ();
281 gtk_widget_set_name (help_menu, "help_menu");
282 gtk_widget_ref (help_menu);
283 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "help_menu", help_menu,
284 (GtkDestroyNotify) gtk_widget_unref);
285 gtk_menu_item_set_submenu (GTK_MENU_ITEM (help), help_menu);
286 help_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (help_menu));
288 about_menu = gtk_menu_item_new_with_label ("");
289 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (about_menu)->child),
291 gtk_widget_add_accelerator (about_menu, "activate_item", help_menu_accels,
293 gtk_widget_set_name (about_menu, "about_menu");
294 gtk_widget_ref (about_menu);
295 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "about_menu", about_menu,
296 (GtkDestroyNotify) gtk_widget_unref);
297 gtk_widget_show (about_menu);
298 gtk_container_add (GTK_CONTAINER (help_menu), about_menu);
299 gtk_tooltips_set_tip (tooltips, about_menu, "Display version information.", NULL);
301 doc_menu = gtk_menu_item_new_with_label ("");
302 tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (doc_menu)->child),
303 "_Documentation...");
304 gtk_widget_add_accelerator (doc_menu, "activate_item", help_menu_accels,
306 gtk_widget_set_name (doc_menu, "doc_menu");
307 gtk_widget_ref (doc_menu);
308 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "doc_menu", doc_menu,
309 (GtkDestroyNotify) gtk_widget_unref);
310 gtk_widget_show (doc_menu);
311 gtk_container_add (GTK_CONTAINER (help_menu), doc_menu);
312 gtk_tooltips_set_tip (tooltips, doc_menu, "Go to the documentation on the XScreenSaver web page.", NULL);
314 notebook = gtk_notebook_new ();
315 gtk_widget_set_name (notebook, "notebook");
316 gtk_widget_ref (notebook);
317 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "notebook", notebook,
318 (GtkDestroyNotify) gtk_widget_unref);
319 gtk_widget_show (notebook);
320 gtk_box_pack_start (GTK_BOX (outer_vbox), notebook, TRUE, TRUE, 0);
322 demos_table = gtk_table_new (2, 2, FALSE);
323 gtk_widget_set_name (demos_table, "demos_table");
324 gtk_widget_ref (demos_table);
325 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demos_table", demos_table,
326 (GtkDestroyNotify) gtk_widget_unref);
327 gtk_widget_show (demos_table);
328 gtk_container_add (GTK_CONTAINER (notebook), demos_table);
329 gtk_container_set_border_width (GTK_CONTAINER (demos_table), 10);
331 blanking_table = gtk_table_new (3, 4, FALSE);
332 gtk_widget_set_name (blanking_table, "blanking_table");
333 gtk_widget_ref (blanking_table);
334 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "blanking_table", blanking_table,
335 (GtkDestroyNotify) gtk_widget_unref);
336 gtk_widget_show (blanking_table);
337 gtk_table_attach (GTK_TABLE (demos_table), blanking_table, 0, 1, 1, 2,
338 (GtkAttachOptions) (GTK_FILL),
339 (GtkAttachOptions) (GTK_FILL), 0, 0);
340 gtk_table_set_row_spacings (GTK_TABLE (blanking_table), 2);
342 cycle_label = gtk_label_new ("Cycle After");
343 gtk_widget_set_name (cycle_label, "cycle_label");
344 gtk_widget_ref (cycle_label);
345 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_label", cycle_label,
346 (GtkDestroyNotify) gtk_widget_unref);
347 gtk_widget_show (cycle_label);
348 gtk_table_attach (GTK_TABLE (blanking_table), cycle_label, 1, 2, 1, 2,
349 (GtkAttachOptions) (GTK_FILL),
350 (GtkAttachOptions) (0), 0, 0);
351 gtk_label_set_justify (GTK_LABEL (cycle_label), GTK_JUSTIFY_RIGHT);
352 gtk_misc_set_alignment (GTK_MISC (cycle_label), 1, 0.5);
353 gtk_misc_set_padding (GTK_MISC (cycle_label), 8, 0);
355 lock_button_eventbox = gtk_event_box_new ();
356 gtk_widget_set_name (lock_button_eventbox, "lock_button_eventbox");
357 gtk_widget_ref (lock_button_eventbox);
358 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_button_eventbox", lock_button_eventbox,
359 (GtkDestroyNotify) gtk_widget_unref);
360 gtk_widget_show (lock_button_eventbox);
361 gtk_table_attach (GTK_TABLE (blanking_table), lock_button_eventbox, 0, 2, 2, 3,
362 (GtkAttachOptions) (GTK_FILL),
363 (GtkAttachOptions) (0), 0, 0);
364 gtk_tooltips_set_tip (tooltips, lock_button_eventbox, "Whether a password should be required to un-blank the screen.", NULL);
366 lock_button = gtk_check_button_new_with_label ("Lock Screen After");
367 gtk_widget_set_name (lock_button, "lock_button");
368 gtk_widget_ref (lock_button);
369 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_button", lock_button,
370 (GtkDestroyNotify) gtk_widget_unref);
371 gtk_widget_show (lock_button);
372 gtk_container_add (GTK_CONTAINER (lock_button_eventbox), lock_button);
374 timeout_label = gtk_label_new ("Blank After");
375 gtk_widget_set_name (timeout_label, "timeout_label");
376 gtk_widget_ref (timeout_label);
377 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_label", timeout_label,
378 (GtkDestroyNotify) gtk_widget_unref);
379 gtk_widget_show (timeout_label);
380 gtk_table_attach (GTK_TABLE (blanking_table), timeout_label, 1, 2, 0, 1,
381 (GtkAttachOptions) (GTK_FILL),
382 (GtkAttachOptions) (0), 0, 0);
383 gtk_label_set_justify (GTK_LABEL (timeout_label), GTK_JUSTIFY_RIGHT);
384 gtk_misc_set_alignment (GTK_MISC (timeout_label), 1, 0.5);
385 gtk_misc_set_padding (GTK_MISC (timeout_label), 8, 0);
387 timeout_spinbutton_adj = gtk_adjustment_new (0, 1, 720, 1, 30, 30);
388 timeout_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (timeout_spinbutton_adj), 15, 0);
389 gtk_widget_set_name (timeout_spinbutton, "timeout_spinbutton");
390 gtk_widget_ref (timeout_spinbutton);
391 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_spinbutton", timeout_spinbutton,
392 (GtkDestroyNotify) gtk_widget_unref);
393 gtk_widget_show (timeout_spinbutton);
394 gtk_table_attach (GTK_TABLE (blanking_table), timeout_spinbutton, 2, 3, 0, 1,
395 (GtkAttachOptions) (GTK_FILL),
396 (GtkAttachOptions) (0), 0, 0);
397 gtk_tooltips_set_tip (tooltips, timeout_spinbutton, "How long before the monitor goes completely black.", NULL);
398 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (timeout_spinbutton), TRUE);
399 gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (timeout_spinbutton), TRUE);
401 timeout_mlabel = gtk_label_new ("minutes");
402 gtk_widget_set_name (timeout_mlabel, "timeout_mlabel");
403 gtk_widget_ref (timeout_mlabel);
404 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "timeout_mlabel", timeout_mlabel,
405 (GtkDestroyNotify) gtk_widget_unref);
406 gtk_widget_show (timeout_mlabel);
407 gtk_table_attach (GTK_TABLE (blanking_table), timeout_mlabel, 3, 4, 0, 1,
408 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
409 (GtkAttachOptions) (0), 0, 0);
410 gtk_label_set_justify (GTK_LABEL (timeout_mlabel), GTK_JUSTIFY_LEFT);
411 gtk_misc_set_alignment (GTK_MISC (timeout_mlabel), 0, 0.5);
413 cycle_mlabel = gtk_label_new ("minutes");
414 gtk_widget_set_name (cycle_mlabel, "cycle_mlabel");
415 gtk_widget_ref (cycle_mlabel);
416 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_mlabel", cycle_mlabel,
417 (GtkDestroyNotify) gtk_widget_unref);
418 gtk_widget_show (cycle_mlabel);
419 gtk_table_attach (GTK_TABLE (blanking_table), cycle_mlabel, 3, 4, 1, 2,
420 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
421 (GtkAttachOptions) (0), 0, 0);
422 gtk_label_set_justify (GTK_LABEL (cycle_mlabel), GTK_JUSTIFY_LEFT);
423 gtk_misc_set_alignment (GTK_MISC (cycle_mlabel), 0, 0.5);
425 lock_mlabel = gtk_label_new ("minutes");
426 gtk_widget_set_name (lock_mlabel, "lock_mlabel");
427 gtk_widget_ref (lock_mlabel);
428 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_mlabel", lock_mlabel,
429 (GtkDestroyNotify) gtk_widget_unref);
430 gtk_widget_show (lock_mlabel);
431 gtk_table_attach (GTK_TABLE (blanking_table), lock_mlabel, 3, 4, 2, 3,
432 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
433 (GtkAttachOptions) (0), 0, 0);
434 gtk_label_set_justify (GTK_LABEL (lock_mlabel), GTK_JUSTIFY_LEFT);
435 gtk_misc_set_alignment (GTK_MISC (lock_mlabel), 0, 0.5);
437 lock_spinbutton_adj = gtk_adjustment_new (0, 0, 720, 1, 30, 30);
438 lock_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (lock_spinbutton_adj), 15, 0);
439 gtk_widget_set_name (lock_spinbutton, "lock_spinbutton");
440 gtk_widget_ref (lock_spinbutton);
441 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "lock_spinbutton", lock_spinbutton,
442 (GtkDestroyNotify) gtk_widget_unref);
443 gtk_widget_show (lock_spinbutton);
444 gtk_table_attach (GTK_TABLE (blanking_table), lock_spinbutton, 2, 3, 2, 3,
445 (GtkAttachOptions) (GTK_FILL),
446 (GtkAttachOptions) (0), 0, 10);
447 gtk_tooltips_set_tip (tooltips, lock_spinbutton, "How long before the monitor goes completely black.", NULL);
448 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (lock_spinbutton), TRUE);
449 gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (lock_spinbutton), TRUE);
451 cycle_spinbutton_adj = gtk_adjustment_new (0, 1, 720, 1, 30, 30);
452 cycle_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (cycle_spinbutton_adj), 15, 0);
453 gtk_widget_set_name (cycle_spinbutton, "cycle_spinbutton");
454 gtk_widget_ref (cycle_spinbutton);
455 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cycle_spinbutton", cycle_spinbutton,
456 (GtkDestroyNotify) gtk_widget_unref);
457 gtk_widget_show (cycle_spinbutton);
458 gtk_table_attach (GTK_TABLE (blanking_table), cycle_spinbutton, 2, 3, 1, 2,
459 (GtkAttachOptions) (GTK_FILL),
460 (GtkAttachOptions) (0), 0, 0);
461 gtk_tooltips_set_tip (tooltips, cycle_spinbutton, "How long before the monitor goes completely black.", NULL);
462 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (cycle_spinbutton), TRUE);
463 gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (cycle_spinbutton), TRUE);
465 demo_manual_hbbox = gtk_hbutton_box_new ();
466 gtk_widget_set_name (demo_manual_hbbox, "demo_manual_hbbox");
467 gtk_widget_ref (demo_manual_hbbox);
468 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_manual_hbbox", demo_manual_hbbox,
469 (GtkDestroyNotify) gtk_widget_unref);
470 gtk_widget_show (demo_manual_hbbox);
471 gtk_table_attach (GTK_TABLE (demos_table), demo_manual_hbbox, 1, 2, 1, 2,
472 (GtkAttachOptions) (GTK_FILL),
473 (GtkAttachOptions) (GTK_FILL), 0, 0);
474 gtk_button_box_set_layout (GTK_BUTTON_BOX (demo_manual_hbbox), GTK_BUTTONBOX_SPREAD);
476 demo = gtk_button_new_with_label ("Preview");
477 gtk_widget_set_name (demo, "demo");
478 gtk_widget_ref (demo);
479 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo", demo,
480 (GtkDestroyNotify) gtk_widget_unref);
481 gtk_widget_show (demo);
482 gtk_container_add (GTK_CONTAINER (demo_manual_hbbox), demo);
483 GTK_WIDGET_SET_FLAGS (demo, GTK_CAN_DEFAULT);
484 gtk_tooltips_set_tip (tooltips, demo, "Demo the selected screen saver in full-screen mode (click the mouse to return.)", NULL);
486 settings = gtk_button_new_with_label ("Settings...");
487 gtk_widget_set_name (settings, "settings");
488 gtk_widget_ref (settings);
489 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "settings", settings,
490 (GtkDestroyNotify) gtk_widget_unref);
491 gtk_widget_show (settings);
492 gtk_container_add (GTK_CONTAINER (demo_manual_hbbox), settings);
493 GTK_WIDGET_SET_FLAGS (settings, GTK_CAN_DEFAULT);
494 gtk_tooltips_set_tip (tooltips, settings, "Customization and explanation of the selected screen saver.", NULL);
496 list_vbox = gtk_vbox_new (FALSE, 0);
497 gtk_widget_set_name (list_vbox, "list_vbox");
498 gtk_widget_ref (list_vbox);
499 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "list_vbox", list_vbox,
500 (GtkDestroyNotify) gtk_widget_unref);
501 gtk_widget_show (list_vbox);
502 gtk_table_attach (GTK_TABLE (demos_table), list_vbox, 0, 1, 0, 1,
503 (GtkAttachOptions) (GTK_FILL),
504 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
505 gtk_container_set_border_width (GTK_CONTAINER (list_vbox), 10);
507 mode_hbox = gtk_hbox_new (FALSE, 0);
508 gtk_widget_set_name (mode_hbox, "mode_hbox");
509 gtk_widget_ref (mode_hbox);
510 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "mode_hbox", mode_hbox,
511 (GtkDestroyNotify) gtk_widget_unref);
512 gtk_widget_show (mode_hbox);
513 gtk_box_pack_start (GTK_BOX (list_vbox), mode_hbox, FALSE, TRUE, 10);
515 mode_label = gtk_label_new ("Mode:");
516 gtk_widget_set_name (mode_label, "mode_label");
517 gtk_widget_ref (mode_label);
518 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "mode_label", mode_label,
519 (GtkDestroyNotify) gtk_widget_unref);
520 gtk_widget_show (mode_label);
521 gtk_box_pack_start (GTK_BOX (mode_hbox), mode_label, FALSE, FALSE, 0);
522 gtk_label_set_justify (GTK_LABEL (mode_label), GTK_JUSTIFY_LEFT);
523 gtk_misc_set_alignment (GTK_MISC (mode_label), 0, 0.5);
525 mode_menu = gtk_option_menu_new ();
526 gtk_widget_set_name (mode_menu, "mode_menu");
527 gtk_widget_ref (mode_menu);
528 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "mode_menu", mode_menu,
529 (GtkDestroyNotify) gtk_widget_unref);
530 gtk_widget_show (mode_menu);
531 gtk_box_pack_start (GTK_BOX (mode_hbox), mode_menu, FALSE, FALSE, 4);
532 mode_menu_menu = gtk_menu_new ();
533 glade_menuitem = gtk_menu_item_new_with_label ("Disable Screen Saver");
534 gtk_widget_show (glade_menuitem);
535 gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem);
536 glade_menuitem = gtk_menu_item_new_with_label ("Blank Screen Only");
537 gtk_widget_show (glade_menuitem);
538 gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem);
539 glade_menuitem = gtk_menu_item_new_with_label ("Only One Screen Saver");
540 gtk_widget_show (glade_menuitem);
541 gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem);
542 glade_menuitem = gtk_menu_item_new_with_label ("Random Screen Saver");
543 gtk_widget_show (glade_menuitem);
544 gtk_menu_append (GTK_MENU (mode_menu_menu), glade_menuitem);
545 gtk_option_menu_set_menu (GTK_OPTION_MENU (mode_menu), mode_menu_menu);
546 gtk_option_menu_set_history (GTK_OPTION_MENU (mode_menu), 3);
548 col_head_hbox = gtk_hbox_new (FALSE, 0);
549 gtk_widget_set_name (col_head_hbox, "col_head_hbox");
550 gtk_widget_ref (col_head_hbox);
551 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "col_head_hbox", col_head_hbox,
552 (GtkDestroyNotify) gtk_widget_unref);
553 gtk_widget_show (col_head_hbox);
554 gtk_box_pack_start (GTK_BOX (list_vbox), col_head_hbox, FALSE, TRUE, 0);
556 use_col_frame = gtk_frame_new (NULL);
557 gtk_widget_set_name (use_col_frame, "use_col_frame");
558 gtk_widget_ref (use_col_frame);
559 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "use_col_frame", use_col_frame,
560 (GtkDestroyNotify) gtk_widget_unref);
561 gtk_widget_show (use_col_frame);
562 gtk_box_pack_start (GTK_BOX (col_head_hbox), use_col_frame, FALSE, FALSE, 0);
563 gtk_frame_set_shadow_type (GTK_FRAME (use_col_frame), GTK_SHADOW_OUT);
565 use_label = gtk_label_new ("Use");
566 gtk_widget_set_name (use_label, "use_label");
567 gtk_widget_ref (use_label);
568 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "use_label", use_label,
569 (GtkDestroyNotify) gtk_widget_unref);
570 gtk_widget_show (use_label);
571 gtk_container_add (GTK_CONTAINER (use_col_frame), use_label);
572 gtk_label_set_justify (GTK_LABEL (use_label), GTK_JUSTIFY_LEFT);
573 gtk_misc_set_alignment (GTK_MISC (use_label), 0, 0.5);
574 gtk_misc_set_padding (GTK_MISC (use_label), 3, 0);
576 saver_col_frame = gtk_frame_new (NULL);
577 gtk_widget_set_name (saver_col_frame, "saver_col_frame");
578 gtk_widget_ref (saver_col_frame);
579 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "saver_col_frame", saver_col_frame,
580 (GtkDestroyNotify) gtk_widget_unref);
581 gtk_widget_show (saver_col_frame);
582 gtk_box_pack_start (GTK_BOX (col_head_hbox), saver_col_frame, TRUE, TRUE, 0);
583 gtk_frame_set_shadow_type (GTK_FRAME (saver_col_frame), GTK_SHADOW_OUT);
585 saver_label = gtk_label_new ("Screen Saver");
586 gtk_widget_set_name (saver_label, "saver_label");
587 gtk_widget_ref (saver_label);
588 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "saver_label", saver_label,
589 (GtkDestroyNotify) gtk_widget_unref);
590 gtk_widget_show (saver_label);
591 gtk_container_add (GTK_CONTAINER (saver_col_frame), saver_label);
592 gtk_label_set_justify (GTK_LABEL (saver_label), GTK_JUSTIFY_LEFT);
593 gtk_misc_set_alignment (GTK_MISC (saver_label), 0, 0.5);
594 gtk_misc_set_padding (GTK_MISC (saver_label), 6, 0);
596 scroller = gtk_scrolled_window_new (NULL, NULL);
597 gtk_widget_set_name (scroller, "scroller");
598 gtk_widget_ref (scroller);
599 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "scroller", scroller,
600 (GtkDestroyNotify) gtk_widget_unref);
601 gtk_widget_show (scroller);
602 gtk_box_pack_start (GTK_BOX (list_vbox), scroller, TRUE, TRUE, 0);
603 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroller), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
605 viewport = gtk_viewport_new (NULL, NULL);
606 gtk_widget_set_name (viewport, "viewport");
607 gtk_widget_ref (viewport);
608 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "viewport", viewport,
609 (GtkDestroyNotify) gtk_widget_unref);
610 gtk_widget_show (viewport);
611 gtk_container_add (GTK_CONTAINER (scroller), viewport);
612 gtk_container_set_border_width (GTK_CONTAINER (viewport), 1);
614 list = gtk_list_new ();
615 gtk_widget_set_name (list, "list");
616 gtk_widget_ref (list);
617 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "list", list,
618 (GtkDestroyNotify) gtk_widget_unref);
619 gtk_widget_show (list);
620 gtk_container_add (GTK_CONTAINER (viewport), list);
622 centering_hbox = gtk_hbox_new (TRUE, 0);
623 gtk_widget_set_name (centering_hbox, "centering_hbox");
624 gtk_widget_ref (centering_hbox);
625 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "centering_hbox", centering_hbox,
626 (GtkDestroyNotify) gtk_widget_unref);
627 gtk_widget_show (centering_hbox);
628 gtk_box_pack_end (GTK_BOX (list_vbox), centering_hbox, FALSE, TRUE, 0);
630 next_prev_hbox = gtk_hbox_new (FALSE, 0);
631 gtk_widget_set_name (next_prev_hbox, "next_prev_hbox");
632 gtk_widget_ref (next_prev_hbox);
633 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "next_prev_hbox", next_prev_hbox,
634 (GtkDestroyNotify) gtk_widget_unref);
635 gtk_widget_show (next_prev_hbox);
636 gtk_box_pack_start (GTK_BOX (centering_hbox), next_prev_hbox, FALSE, FALSE, 0);
638 next = gtk_button_new_with_label ("\\/");
639 gtk_widget_set_name (next, "next");
640 gtk_widget_ref (next);
641 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "next", next,
642 (GtkDestroyNotify) gtk_widget_unref);
643 gtk_widget_show (next);
644 gtk_box_pack_start (GTK_BOX (next_prev_hbox), next, FALSE, FALSE, 0);
645 GTK_WIDGET_SET_FLAGS (next, GTK_CAN_DEFAULT);
646 gtk_tooltips_set_tip (tooltips, next, "Run the next screen saver in the list in full-screen mode (click the mouse to return.)", NULL);
648 prev = gtk_button_new_with_label ("/\\");
649 gtk_widget_set_name (prev, "prev");
650 gtk_widget_ref (prev);
651 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "prev", prev,
652 (GtkDestroyNotify) gtk_widget_unref);
653 gtk_widget_show (prev);
654 gtk_box_pack_start (GTK_BOX (next_prev_hbox), prev, FALSE, FALSE, 0);
655 GTK_WIDGET_SET_FLAGS (prev, GTK_CAN_DEFAULT);
656 gtk_tooltips_set_tip (tooltips, prev, "Run the previous screen saver in the list in full-screen mode (click the mouse to return.)", NULL);
658 preview_frame = gtk_frame_new ("Description");
659 gtk_widget_set_name (preview_frame, "preview_frame");
660 gtk_widget_ref (preview_frame);
661 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "preview_frame", preview_frame,
662 (GtkDestroyNotify) gtk_widget_unref);
663 gtk_widget_show (preview_frame);
664 gtk_table_attach (GTK_TABLE (demos_table), preview_frame, 1, 2, 0, 1,
665 (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
666 (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 6);
668 preview_aspectframe = gtk_aspect_frame_new (NULL, 0.5, 0.5, 1.33, FALSE);
669 gtk_widget_set_name (preview_aspectframe, "preview_aspectframe");
670 gtk_widget_ref (preview_aspectframe);
671 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "preview_aspectframe", preview_aspectframe,
672 (GtkDestroyNotify) gtk_widget_unref);
673 gtk_widget_show (preview_aspectframe);
674 gtk_container_add (GTK_CONTAINER (preview_frame), preview_aspectframe);
675 gtk_container_set_border_width (GTK_CONTAINER (preview_aspectframe), 8);
677 preview = gtk_drawing_area_new ();
678 gtk_widget_set_name (preview, "preview");
679 gtk_widget_ref (preview);
680 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "preview", preview,
681 (GtkDestroyNotify) gtk_widget_unref);
682 gtk_widget_show (preview);
683 gtk_container_add (GTK_CONTAINER (preview_aspectframe), preview);
685 demo_tab = gtk_label_new ("Display Modes");
686 gtk_widget_set_name (demo_tab, "demo_tab");
687 gtk_widget_ref (demo_tab);
688 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_tab", demo_tab,
689 (GtkDestroyNotify) gtk_widget_unref);
690 gtk_widget_show (demo_tab);
691 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 0), demo_tab);
693 options_table = gtk_table_new (2, 2, TRUE);
694 gtk_widget_set_name (options_table, "options_table");
695 gtk_widget_ref (options_table);
696 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "options_table", options_table,
697 (GtkDestroyNotify) gtk_widget_unref);
698 gtk_widget_show (options_table);
699 gtk_container_add (GTK_CONTAINER (notebook), options_table);
701 diag_frame = gtk_frame_new ("Diagnostics");
702 gtk_widget_set_name (diag_frame, "diag_frame");
703 gtk_widget_ref (diag_frame);
704 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_frame", diag_frame,
705 (GtkDestroyNotify) gtk_widget_unref);
706 gtk_widget_show (diag_frame);
707 gtk_table_attach (GTK_TABLE (options_table), diag_frame, 0, 1, 1, 2,
708 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
709 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
710 gtk_container_set_border_width (GTK_CONTAINER (diag_frame), 10);
712 diag_hbox = gtk_hbox_new (FALSE, 8);
713 gtk_widget_set_name (diag_hbox, "diag_hbox");
714 gtk_widget_ref (diag_hbox);
715 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_hbox", diag_hbox,
716 (GtkDestroyNotify) gtk_widget_unref);
717 gtk_widget_show (diag_hbox);
718 gtk_container_add (GTK_CONTAINER (diag_frame), diag_hbox);
719 gtk_container_set_border_width (GTK_CONTAINER (diag_hbox), 8);
721 diag_logo = create_pixmap (xscreensaver_demo, "screensaver-diagnostic.xpm");
722 gtk_widget_set_name (diag_logo, "diag_logo");
723 gtk_widget_ref (diag_logo);
724 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_logo", diag_logo,
725 (GtkDestroyNotify) gtk_widget_unref);
726 gtk_widget_show (diag_logo);
727 gtk_box_pack_start (GTK_BOX (diag_hbox), diag_logo, FALSE, FALSE, 0);
728 gtk_misc_set_alignment (GTK_MISC (diag_logo), 0.5, 0);
730 diag_vbox = gtk_vbox_new (FALSE, 0);
731 gtk_widget_set_name (diag_vbox, "diag_vbox");
732 gtk_widget_ref (diag_vbox);
733 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "diag_vbox", diag_vbox,
734 (GtkDestroyNotify) gtk_widget_unref);
735 gtk_widget_show (diag_vbox);
736 gtk_box_pack_start (GTK_BOX (diag_hbox), diag_vbox, TRUE, TRUE, 0);
738 verbose_button_eventbox = gtk_event_box_new ();
739 gtk_widget_set_name (verbose_button_eventbox, "verbose_button_eventbox");
740 gtk_widget_ref (verbose_button_eventbox);
741 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "verbose_button_eventbox", verbose_button_eventbox,
742 (GtkDestroyNotify) gtk_widget_unref);
743 gtk_widget_show (verbose_button_eventbox);
744 gtk_box_pack_start (GTK_BOX (diag_vbox), verbose_button_eventbox, FALSE, FALSE, 0);
745 gtk_tooltips_set_tip (tooltips, verbose_button_eventbox, "Whether the daemon should print lots of debugging information.", NULL);
747 verbose_button = gtk_check_button_new_with_label ("Verbose Diagnostics");
748 gtk_widget_set_name (verbose_button, "verbose_button");
749 gtk_widget_ref (verbose_button);
750 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "verbose_button", verbose_button,
751 (GtkDestroyNotify) gtk_widget_unref);
752 gtk_widget_show (verbose_button);
753 gtk_container_add (GTK_CONTAINER (verbose_button_eventbox), verbose_button);
755 capture_button_eventbox = gtk_event_box_new ();
756 gtk_widget_set_name (capture_button_eventbox, "capture_button_eventbox");
757 gtk_widget_ref (capture_button_eventbox);
758 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "capture_button_eventbox", capture_button_eventbox,
759 (GtkDestroyNotify) gtk_widget_unref);
760 gtk_widget_show (capture_button_eventbox);
761 gtk_box_pack_start (GTK_BOX (diag_vbox), capture_button_eventbox, FALSE, FALSE, 0);
762 gtk_tooltips_set_tip (tooltips, capture_button_eventbox, "Whether any error output of the display modes should be redirected to the screen.", NULL);
764 capture_button = gtk_check_button_new_with_label ("Display Subprocess Errors");
765 gtk_widget_set_name (capture_button, "capture_button");
766 gtk_widget_ref (capture_button);
767 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "capture_button", capture_button,
768 (GtkDestroyNotify) gtk_widget_unref);
769 gtk_widget_show (capture_button);
770 gtk_container_add (GTK_CONTAINER (capture_button_eventbox), capture_button);
772 splash_button_eventbox = gtk_event_box_new ();
773 gtk_widget_set_name (splash_button_eventbox, "splash_button_eventbox");
774 gtk_widget_ref (splash_button_eventbox);
775 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "splash_button_eventbox", splash_button_eventbox,
776 (GtkDestroyNotify) gtk_widget_unref);
777 gtk_widget_show (splash_button_eventbox);
778 gtk_box_pack_start (GTK_BOX (diag_vbox), splash_button_eventbox, FALSE, FALSE, 0);
779 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);
781 splash_button = gtk_check_button_new_with_label ("Display Splash Screen at Startup");
782 gtk_widget_set_name (splash_button, "splash_button");
783 gtk_widget_ref (splash_button);
784 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "splash_button", splash_button,
785 (GtkDestroyNotify) gtk_widget_unref);
786 gtk_widget_show (splash_button);
787 gtk_container_add (GTK_CONTAINER (splash_button_eventbox), splash_button);
788 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (splash_button), TRUE);
790 cmap_frame = gtk_frame_new ("Colormaps");
791 gtk_widget_set_name (cmap_frame, "cmap_frame");
792 gtk_widget_ref (cmap_frame);
793 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_frame", cmap_frame,
794 (GtkDestroyNotify) gtk_widget_unref);
795 gtk_widget_show (cmap_frame);
796 gtk_table_attach (GTK_TABLE (options_table), cmap_frame, 1, 2, 1, 2,
797 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
798 (GtkAttachOptions) (GTK_FILL), 0, 0);
799 gtk_container_set_border_width (GTK_CONTAINER (cmap_frame), 10);
801 cmap_hbox = gtk_hbox_new (FALSE, 8);
802 gtk_widget_set_name (cmap_hbox, "cmap_hbox");
803 gtk_widget_ref (cmap_hbox);
804 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_hbox", cmap_hbox,
805 (GtkDestroyNotify) gtk_widget_unref);
806 gtk_widget_show (cmap_hbox);
807 gtk_container_add (GTK_CONTAINER (cmap_frame), cmap_hbox);
808 gtk_container_set_border_width (GTK_CONTAINER (cmap_hbox), 8);
810 cmap_logo = create_pixmap (xscreensaver_demo, "screensaver-colorselector.xpm");
811 gtk_widget_set_name (cmap_logo, "cmap_logo");
812 gtk_widget_ref (cmap_logo);
813 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_logo", cmap_logo,
814 (GtkDestroyNotify) gtk_widget_unref);
815 gtk_widget_show (cmap_logo);
816 gtk_box_pack_start (GTK_BOX (cmap_hbox), cmap_logo, FALSE, FALSE, 0);
817 gtk_misc_set_alignment (GTK_MISC (cmap_logo), 0.5, 0);
819 cmap_vbox = gtk_vbox_new (FALSE, 0);
820 gtk_widget_set_name (cmap_vbox, "cmap_vbox");
821 gtk_widget_ref (cmap_vbox);
822 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_vbox", cmap_vbox,
823 (GtkDestroyNotify) gtk_widget_unref);
824 gtk_widget_show (cmap_vbox);
825 gtk_box_pack_start (GTK_BOX (cmap_hbox), cmap_vbox, TRUE, TRUE, 0);
827 install_button_eventbox = gtk_event_box_new ();
828 gtk_widget_set_name (install_button_eventbox, "install_button_eventbox");
829 gtk_widget_ref (install_button_eventbox);
830 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "install_button_eventbox", install_button_eventbox,
831 (GtkDestroyNotify) gtk_widget_unref);
832 gtk_widget_show (install_button_eventbox);
833 gtk_box_pack_start (GTK_BOX (cmap_vbox), install_button_eventbox, FALSE, FALSE, 0);
834 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);
836 install_button = gtk_check_button_new_with_label ("Install Colormap");
837 gtk_widget_set_name (install_button, "install_button");
838 gtk_widget_ref (install_button);
839 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "install_button", install_button,
840 (GtkDestroyNotify) gtk_widget_unref);
841 gtk_widget_show (install_button);
842 gtk_container_add (GTK_CONTAINER (install_button_eventbox), install_button);
844 cmap_hr = gtk_hseparator_new ();
845 gtk_widget_set_name (cmap_hr, "cmap_hr");
846 gtk_widget_ref (cmap_hr);
847 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cmap_hr", cmap_hr,
848 (GtkDestroyNotify) gtk_widget_unref);
849 gtk_widget_show (cmap_hr);
850 gtk_box_pack_start (GTK_BOX (cmap_vbox), cmap_hr, FALSE, FALSE, 4);
852 fade_button_eventbox = gtk_event_box_new ();
853 gtk_widget_set_name (fade_button_eventbox, "fade_button_eventbox");
854 gtk_widget_ref (fade_button_eventbox);
855 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_button_eventbox", fade_button_eventbox,
856 (GtkDestroyNotify) gtk_widget_unref);
857 gtk_widget_show (fade_button_eventbox);
858 gtk_box_pack_start (GTK_BOX (cmap_vbox), fade_button_eventbox, FALSE, FALSE, 0);
859 gtk_tooltips_set_tip (tooltips, fade_button_eventbox, "Whether the screen should slowly fade to black when the screen saver activates.", NULL);
861 fade_button = gtk_check_button_new_with_label ("Fade To Black When Blanking");
862 gtk_widget_set_name (fade_button, "fade_button");
863 gtk_widget_ref (fade_button);
864 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_button", fade_button,
865 (GtkDestroyNotify) gtk_widget_unref);
866 gtk_widget_show (fade_button);
867 gtk_container_add (GTK_CONTAINER (fade_button_eventbox), fade_button);
869 unfade_button_eventbox = gtk_event_box_new ();
870 gtk_widget_set_name (unfade_button_eventbox, "unfade_button_eventbox");
871 gtk_widget_ref (unfade_button_eventbox);
872 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "unfade_button_eventbox", unfade_button_eventbox,
873 (GtkDestroyNotify) gtk_widget_unref);
874 gtk_widget_show (unfade_button_eventbox);
875 gtk_box_pack_start (GTK_BOX (cmap_vbox), unfade_button_eventbox, FALSE, FALSE, 0);
876 gtk_tooltips_set_tip (tooltips, unfade_button_eventbox, "Whether the screen should slowly fade in from black when the screen saver deactivates.", NULL);
878 unfade_button = gtk_check_button_new_with_label ("Fade From Black When Unblanking");
879 gtk_widget_set_name (unfade_button, "unfade_button");
880 gtk_widget_ref (unfade_button);
881 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "unfade_button", unfade_button,
882 (GtkDestroyNotify) gtk_widget_unref);
883 gtk_widget_show (unfade_button);
884 gtk_container_add (GTK_CONTAINER (unfade_button_eventbox), unfade_button);
886 fade_hbox = gtk_hbox_new (FALSE, 0);
887 gtk_widget_set_name (fade_hbox, "fade_hbox");
888 gtk_widget_ref (fade_hbox);
889 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_hbox", fade_hbox,
890 (GtkDestroyNotify) gtk_widget_unref);
891 gtk_widget_show (fade_hbox);
892 gtk_box_pack_start (GTK_BOX (cmap_vbox), fade_hbox, FALSE, FALSE, 0);
894 fade_dummy = gtk_label_new ("");
895 gtk_widget_set_name (fade_dummy, "fade_dummy");
896 gtk_widget_ref (fade_dummy);
897 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_dummy", fade_dummy,
898 (GtkDestroyNotify) gtk_widget_unref);
899 gtk_widget_show (fade_dummy);
900 gtk_box_pack_start (GTK_BOX (fade_hbox), fade_dummy, FALSE, FALSE, 0);
901 gtk_label_set_justify (GTK_LABEL (fade_dummy), GTK_JUSTIFY_LEFT);
902 gtk_misc_set_padding (GTK_MISC (fade_dummy), 3, 0);
904 fade_label = gtk_label_new ("Fade Duration");
905 gtk_widget_set_name (fade_label, "fade_label");
906 gtk_widget_ref (fade_label);
907 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_label", fade_label,
908 (GtkDestroyNotify) gtk_widget_unref);
909 gtk_widget_show (fade_label);
910 gtk_box_pack_start (GTK_BOX (fade_hbox), fade_label, FALSE, FALSE, 10);
911 gtk_label_set_justify (GTK_LABEL (fade_label), GTK_JUSTIFY_LEFT);
912 gtk_misc_set_alignment (GTK_MISC (fade_label), 0, 0.5);
914 fade_spinbutton_adj = gtk_adjustment_new (0, 0, 10, 1, 1, 1);
915 fade_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (fade_spinbutton_adj), 1, 0);
916 gtk_widget_set_name (fade_spinbutton, "fade_spinbutton");
917 gtk_widget_ref (fade_spinbutton);
918 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_spinbutton", fade_spinbutton,
919 (GtkDestroyNotify) gtk_widget_unref);
920 gtk_widget_show (fade_spinbutton);
921 gtk_box_pack_start (GTK_BOX (fade_hbox), fade_spinbutton, FALSE, FALSE, 0);
922 gtk_tooltips_set_tip (tooltips, fade_spinbutton, "How long it should take for the screen to fade in and out.", NULL);
923 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (fade_spinbutton), TRUE);
924 gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (fade_spinbutton), TRUE);
926 fade_sec_label = gtk_label_new ("seconds");
927 gtk_widget_set_name (fade_sec_label, "fade_sec_label");
928 gtk_widget_ref (fade_sec_label);
929 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "fade_sec_label", fade_sec_label,
930 (GtkDestroyNotify) gtk_widget_unref);
931 gtk_widget_show (fade_sec_label);
932 gtk_box_pack_start (GTK_BOX (fade_hbox), fade_sec_label, FALSE, FALSE, 0);
933 gtk_label_set_justify (GTK_LABEL (fade_sec_label), GTK_JUSTIFY_LEFT);
934 gtk_misc_set_alignment (GTK_MISC (fade_sec_label), 0, 0.5);
936 dpms_frame = gtk_frame_new ("Display Power Management");
937 gtk_widget_set_name (dpms_frame, "dpms_frame");
938 gtk_widget_ref (dpms_frame);
939 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_frame", dpms_frame,
940 (GtkDestroyNotify) gtk_widget_unref);
941 gtk_widget_show (dpms_frame);
942 gtk_table_attach (GTK_TABLE (options_table), dpms_frame, 1, 2, 0, 1,
943 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
944 (GtkAttachOptions) (GTK_FILL), 0, 0);
945 gtk_container_set_border_width (GTK_CONTAINER (dpms_frame), 10);
947 dpms_hbox = gtk_hbox_new (FALSE, 8);
948 gtk_widget_set_name (dpms_hbox, "dpms_hbox");
949 gtk_widget_ref (dpms_hbox);
950 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_hbox", dpms_hbox,
951 (GtkDestroyNotify) gtk_widget_unref);
952 gtk_widget_show (dpms_hbox);
953 gtk_container_add (GTK_CONTAINER (dpms_frame), dpms_hbox);
954 gtk_container_set_border_width (GTK_CONTAINER (dpms_hbox), 8);
956 dpms_logo = create_pixmap (xscreensaver_demo, "screensaver-power.xpm");
957 gtk_widget_set_name (dpms_logo, "dpms_logo");
958 gtk_widget_ref (dpms_logo);
959 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_logo", dpms_logo,
960 (GtkDestroyNotify) gtk_widget_unref);
961 gtk_widget_show (dpms_logo);
962 gtk_box_pack_start (GTK_BOX (dpms_hbox), dpms_logo, FALSE, FALSE, 0);
963 gtk_misc_set_alignment (GTK_MISC (dpms_logo), 0.5, 0);
965 dpms_vbox = gtk_vbox_new (FALSE, 0);
966 gtk_widget_set_name (dpms_vbox, "dpms_vbox");
967 gtk_widget_ref (dpms_vbox);
968 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_vbox", dpms_vbox,
969 (GtkDestroyNotify) gtk_widget_unref);
970 gtk_widget_show (dpms_vbox);
971 gtk_box_pack_start (GTK_BOX (dpms_hbox), dpms_vbox, FALSE, FALSE, 0);
973 dpms_button_eventbox = gtk_event_box_new ();
974 gtk_widget_set_name (dpms_button_eventbox, "dpms_button_eventbox");
975 gtk_widget_ref (dpms_button_eventbox);
976 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_button_eventbox", dpms_button_eventbox,
977 (GtkDestroyNotify) gtk_widget_unref);
978 gtk_widget_show (dpms_button_eventbox);
979 gtk_box_pack_start (GTK_BOX (dpms_vbox), dpms_button_eventbox, FALSE, FALSE, 0);
980 gtk_tooltips_set_tip (tooltips, dpms_button_eventbox, "Whether the monitor should be powered down after a while.", NULL);
982 dpms_button = gtk_check_button_new_with_label ("Power Management Enabled");
983 gtk_widget_set_name (dpms_button, "dpms_button");
984 gtk_widget_ref (dpms_button);
985 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_button", dpms_button,
986 (GtkDestroyNotify) gtk_widget_unref);
987 gtk_widget_show (dpms_button);
988 gtk_container_add (GTK_CONTAINER (dpms_button_eventbox), dpms_button);
989 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dpms_button), TRUE);
991 dpms_table = gtk_table_new (3, 3, FALSE);
992 gtk_widget_set_name (dpms_table, "dpms_table");
993 gtk_widget_ref (dpms_table);
994 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_table", dpms_table,
995 (GtkDestroyNotify) gtk_widget_unref);
996 gtk_widget_show (dpms_table);
997 gtk_box_pack_start (GTK_BOX (dpms_vbox), dpms_table, FALSE, FALSE, 0);
998 gtk_table_set_row_spacings (GTK_TABLE (dpms_table), 2);
1000 dpms_standby_spinbutton_adj = gtk_adjustment_new (0, 0, 1440, 1, 30, 30);
1001 dpms_standby_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (dpms_standby_spinbutton_adj), 15, 0);
1002 gtk_widget_set_name (dpms_standby_spinbutton, "dpms_standby_spinbutton");
1003 gtk_widget_ref (dpms_standby_spinbutton);
1004 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_spinbutton", dpms_standby_spinbutton,
1005 (GtkDestroyNotify) gtk_widget_unref);
1006 gtk_widget_show (dpms_standby_spinbutton);
1007 gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_spinbutton, 1, 2, 0, 1,
1008 (GtkAttachOptions) (GTK_FILL),
1009 (GtkAttachOptions) (0), 0, 0);
1010 gtk_tooltips_set_tip (tooltips, dpms_standby_spinbutton, "How long before the monitor goes completely black.", NULL);
1011 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (dpms_standby_spinbutton), TRUE);
1012 gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (dpms_standby_spinbutton), TRUE);
1014 dpms_standby_mlabel = gtk_label_new ("minutes");
1015 gtk_widget_set_name (dpms_standby_mlabel, "dpms_standby_mlabel");
1016 gtk_widget_ref (dpms_standby_mlabel);
1017 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_mlabel", dpms_standby_mlabel,
1018 (GtkDestroyNotify) gtk_widget_unref);
1019 gtk_widget_show (dpms_standby_mlabel);
1020 gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_mlabel, 2, 3, 0, 1,
1021 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1022 (GtkAttachOptions) (0), 0, 0);
1023 gtk_label_set_justify (GTK_LABEL (dpms_standby_mlabel), GTK_JUSTIFY_LEFT);
1024 gtk_misc_set_alignment (GTK_MISC (dpms_standby_mlabel), 0, 0.5);
1026 dpms_suspend_mlabel = gtk_label_new ("minutes");
1027 gtk_widget_set_name (dpms_suspend_mlabel, "dpms_suspend_mlabel");
1028 gtk_widget_ref (dpms_suspend_mlabel);
1029 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_mlabel", dpms_suspend_mlabel,
1030 (GtkDestroyNotify) gtk_widget_unref);
1031 gtk_widget_show (dpms_suspend_mlabel);
1032 gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_mlabel, 2, 3, 1, 2,
1033 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1034 (GtkAttachOptions) (0), 0, 0);
1035 gtk_label_set_justify (GTK_LABEL (dpms_suspend_mlabel), GTK_JUSTIFY_LEFT);
1036 gtk_misc_set_alignment (GTK_MISC (dpms_suspend_mlabel), 0, 0.5);
1038 dpms_off_mlabel = gtk_label_new ("minutes");
1039 gtk_widget_set_name (dpms_off_mlabel, "dpms_off_mlabel");
1040 gtk_widget_ref (dpms_off_mlabel);
1041 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_mlabel", dpms_off_mlabel,
1042 (GtkDestroyNotify) gtk_widget_unref);
1043 gtk_widget_show (dpms_off_mlabel);
1044 gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_mlabel, 2, 3, 2, 3,
1045 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1046 (GtkAttachOptions) (0), 0, 0);
1047 gtk_label_set_justify (GTK_LABEL (dpms_off_mlabel), GTK_JUSTIFY_LEFT);
1048 gtk_misc_set_alignment (GTK_MISC (dpms_off_mlabel), 0, 0.5);
1050 dpms_off_label = gtk_label_new ("Off After");
1051 gtk_widget_set_name (dpms_off_label, "dpms_off_label");
1052 gtk_widget_ref (dpms_off_label);
1053 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_label", dpms_off_label,
1054 (GtkDestroyNotify) gtk_widget_unref);
1055 gtk_widget_show (dpms_off_label);
1056 gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_label, 0, 1, 2, 3,
1057 (GtkAttachOptions) (GTK_FILL),
1058 (GtkAttachOptions) (0), 0, 0);
1059 gtk_label_set_justify (GTK_LABEL (dpms_off_label), GTK_JUSTIFY_RIGHT);
1060 gtk_misc_set_alignment (GTK_MISC (dpms_off_label), 1, 0.5);
1061 gtk_misc_set_padding (GTK_MISC (dpms_off_label), 10, 0);
1063 dpms_suspend_label = gtk_label_new ("Suspend After");
1064 gtk_widget_set_name (dpms_suspend_label, "dpms_suspend_label");
1065 gtk_widget_ref (dpms_suspend_label);
1066 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_label", dpms_suspend_label,
1067 (GtkDestroyNotify) gtk_widget_unref);
1068 gtk_widget_show (dpms_suspend_label);
1069 gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_label, 0, 1, 1, 2,
1070 (GtkAttachOptions) (GTK_FILL),
1071 (GtkAttachOptions) (0), 0, 0);
1072 gtk_label_set_justify (GTK_LABEL (dpms_suspend_label), GTK_JUSTIFY_RIGHT);
1073 gtk_misc_set_alignment (GTK_MISC (dpms_suspend_label), 1, 0.5);
1074 gtk_misc_set_padding (GTK_MISC (dpms_suspend_label), 10, 0);
1076 dpms_standby_label = gtk_label_new ("Standby After");
1077 gtk_widget_set_name (dpms_standby_label, "dpms_standby_label");
1078 gtk_widget_ref (dpms_standby_label);
1079 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_standby_label", dpms_standby_label,
1080 (GtkDestroyNotify) gtk_widget_unref);
1081 gtk_widget_show (dpms_standby_label);
1082 gtk_table_attach (GTK_TABLE (dpms_table), dpms_standby_label, 0, 1, 0, 1,
1083 (GtkAttachOptions) (GTK_FILL),
1084 (GtkAttachOptions) (0), 0, 0);
1085 gtk_label_set_justify (GTK_LABEL (dpms_standby_label), GTK_JUSTIFY_RIGHT);
1086 gtk_misc_set_alignment (GTK_MISC (dpms_standby_label), 1, 0.5);
1087 gtk_misc_set_padding (GTK_MISC (dpms_standby_label), 10, 0);
1089 dpms_suspend_spinbutton_adj = gtk_adjustment_new (0, 0, 1440, 1, 30, 30);
1090 dpms_suspend_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (dpms_suspend_spinbutton_adj), 15, 0);
1091 gtk_widget_set_name (dpms_suspend_spinbutton, "dpms_suspend_spinbutton");
1092 gtk_widget_ref (dpms_suspend_spinbutton);
1093 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_suspend_spinbutton", dpms_suspend_spinbutton,
1094 (GtkDestroyNotify) gtk_widget_unref);
1095 gtk_widget_show (dpms_suspend_spinbutton);
1096 gtk_table_attach (GTK_TABLE (dpms_table), dpms_suspend_spinbutton, 1, 2, 1, 2,
1097 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1098 (GtkAttachOptions) (0), 0, 0);
1099 gtk_tooltips_set_tip (tooltips, dpms_suspend_spinbutton, "How long until the monitor goes into power-saving mode.", NULL);
1100 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (dpms_suspend_spinbutton), TRUE);
1101 gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (dpms_suspend_spinbutton), TRUE);
1103 dpms_off_spinbutton_adj = gtk_adjustment_new (0, 0, 1440, 1, 30, 30);
1104 dpms_off_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (dpms_off_spinbutton_adj), 15, 0);
1105 gtk_widget_set_name (dpms_off_spinbutton, "dpms_off_spinbutton");
1106 gtk_widget_ref (dpms_off_spinbutton);
1107 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "dpms_off_spinbutton", dpms_off_spinbutton,
1108 (GtkDestroyNotify) gtk_widget_unref);
1109 gtk_widget_show (dpms_off_spinbutton);
1110 gtk_table_attach (GTK_TABLE (dpms_table), dpms_off_spinbutton, 1, 2, 2, 3,
1111 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1112 (GtkAttachOptions) (0), 0, 0);
1113 gtk_tooltips_set_tip (tooltips, dpms_off_spinbutton, "How long until the monitor powers down.", NULL);
1114 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (dpms_off_spinbutton), TRUE);
1115 gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (dpms_off_spinbutton), TRUE);
1117 grab_frame = gtk_frame_new ("Image Manipulation");
1118 gtk_widget_set_name (grab_frame, "grab_frame");
1119 gtk_widget_ref (grab_frame);
1120 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_frame", grab_frame,
1121 (GtkDestroyNotify) gtk_widget_unref);
1122 gtk_widget_show (grab_frame);
1123 gtk_table_attach (GTK_TABLE (options_table), grab_frame, 0, 1, 0, 1,
1124 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1125 (GtkAttachOptions) (GTK_FILL), 0, 0);
1126 gtk_container_set_border_width (GTK_CONTAINER (grab_frame), 10);
1128 grab_hbox = gtk_hbox_new (FALSE, 8);
1129 gtk_widget_set_name (grab_hbox, "grab_hbox");
1130 gtk_widget_ref (grab_hbox);
1131 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_hbox", grab_hbox,
1132 (GtkDestroyNotify) gtk_widget_unref);
1133 gtk_widget_show (grab_hbox);
1134 gtk_container_add (GTK_CONTAINER (grab_frame), grab_hbox);
1135 gtk_container_set_border_width (GTK_CONTAINER (grab_hbox), 8);
1137 img_logo = create_pixmap (xscreensaver_demo, "screensaver-snap.xpm");
1138 gtk_widget_set_name (img_logo, "img_logo");
1139 gtk_widget_ref (img_logo);
1140 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "img_logo", img_logo,
1141 (GtkDestroyNotify) gtk_widget_unref);
1142 gtk_widget_show (img_logo);
1143 gtk_box_pack_start (GTK_BOX (grab_hbox), img_logo, FALSE, FALSE, 0);
1144 gtk_misc_set_alignment (GTK_MISC (img_logo), 0.5, 0);
1146 grab_vbox = gtk_vbox_new (FALSE, 0);
1147 gtk_widget_set_name (grab_vbox, "grab_vbox");
1148 gtk_widget_ref (grab_vbox);
1149 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_vbox", grab_vbox,
1150 (GtkDestroyNotify) gtk_widget_unref);
1151 gtk_widget_show (grab_vbox);
1152 gtk_box_pack_start (GTK_BOX (grab_hbox), grab_vbox, TRUE, TRUE, 0);
1154 grab_desk_eventbox = gtk_event_box_new ();
1155 gtk_widget_set_name (grab_desk_eventbox, "grab_desk_eventbox");
1156 gtk_widget_ref (grab_desk_eventbox);
1157 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_desk_eventbox", grab_desk_eventbox,
1158 (GtkDestroyNotify) gtk_widget_unref);
1159 gtk_widget_show (grab_desk_eventbox);
1160 gtk_box_pack_start (GTK_BOX (grab_vbox), grab_desk_eventbox, FALSE, FALSE, 0);
1161 gtk_tooltips_set_tip (tooltips, grab_desk_eventbox, "Whether the image-manipulating modes should be allowed to operate on an image of your desktop.", NULL);
1163 grab_desk_button = gtk_check_button_new_with_label ("Grab Desktop Images");
1164 gtk_widget_set_name (grab_desk_button, "grab_desk_button");
1165 gtk_widget_ref (grab_desk_button);
1166 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_desk_button", grab_desk_button,
1167 (GtkDestroyNotify) gtk_widget_unref);
1168 gtk_widget_show (grab_desk_button);
1169 gtk_container_add (GTK_CONTAINER (grab_desk_eventbox), grab_desk_button);
1171 grab_video_eventbox = gtk_event_box_new ();
1172 gtk_widget_set_name (grab_video_eventbox, "grab_video_eventbox");
1173 gtk_widget_ref (grab_video_eventbox);
1174 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_video_eventbox", grab_video_eventbox,
1175 (GtkDestroyNotify) gtk_widget_unref);
1176 gtk_widget_show (grab_video_eventbox);
1177 gtk_box_pack_start (GTK_BOX (grab_vbox), grab_video_eventbox, FALSE, FALSE, 0);
1178 gtk_tooltips_set_tip (tooltips, grab_video_eventbox, "Whether the image-manipulating modes should operate on images captured from the system's video input (if there is one).", NULL);
1180 grab_video_button = gtk_check_button_new_with_label ("Grab Video Frames");
1181 gtk_widget_set_name (grab_video_button, "grab_video_button");
1182 gtk_widget_ref (grab_video_button);
1183 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_video_button", grab_video_button,
1184 (GtkDestroyNotify) gtk_widget_unref);
1185 gtk_widget_show (grab_video_button);
1186 gtk_container_add (GTK_CONTAINER (grab_video_eventbox), grab_video_button);
1188 grab_image_eventbox = gtk_event_box_new ();
1189 gtk_widget_set_name (grab_image_eventbox, "grab_image_eventbox");
1190 gtk_widget_ref (grab_image_eventbox);
1191 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_image_eventbox", grab_image_eventbox,
1192 (GtkDestroyNotify) gtk_widget_unref);
1193 gtk_widget_show (grab_image_eventbox);
1194 gtk_box_pack_start (GTK_BOX (grab_vbox), grab_image_eventbox, FALSE, FALSE, 0);
1195 gtk_tooltips_set_tip (tooltips, grab_image_eventbox, "Whether the image-manipulating modes should operate on random images loaded from disk.", NULL);
1197 grab_image_button = gtk_check_button_new_with_label ("Choose Random Image:");
1198 gtk_widget_set_name (grab_image_button, "grab_image_button");
1199 gtk_widget_ref (grab_image_button);
1200 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_image_button", grab_image_button,
1201 (GtkDestroyNotify) gtk_widget_unref);
1202 gtk_widget_show (grab_image_button);
1203 gtk_container_add (GTK_CONTAINER (grab_image_eventbox), grab_image_button);
1205 image_hbox = gtk_hbox_new (FALSE, 0);
1206 gtk_widget_set_name (image_hbox, "image_hbox");
1207 gtk_widget_ref (image_hbox);
1208 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "image_hbox", image_hbox,
1209 (GtkDestroyNotify) gtk_widget_unref);
1210 gtk_widget_show (image_hbox);
1211 gtk_box_pack_start (GTK_BOX (grab_vbox), image_hbox, FALSE, FALSE, 0);
1213 grab_dummy = gtk_label_new ("");
1214 gtk_widget_set_name (grab_dummy, "grab_dummy");
1215 gtk_widget_ref (grab_dummy);
1216 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "grab_dummy", grab_dummy,
1217 (GtkDestroyNotify) gtk_widget_unref);
1218 gtk_widget_show (grab_dummy);
1219 gtk_box_pack_start (GTK_BOX (image_hbox), grab_dummy, FALSE, FALSE, 0);
1220 gtk_label_set_justify (GTK_LABEL (grab_dummy), GTK_JUSTIFY_LEFT);
1221 gtk_misc_set_padding (GTK_MISC (grab_dummy), 8, 0);
1223 image_text = gtk_entry_new ();
1224 gtk_widget_set_name (image_text, "image_text");
1225 gtk_widget_ref (image_text);
1226 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "image_text", image_text,
1227 (GtkDestroyNotify) gtk_widget_unref);
1228 gtk_widget_show (image_text);
1229 gtk_box_pack_start (GTK_BOX (image_hbox), image_text, TRUE, TRUE, 0);
1230 gtk_tooltips_set_tip (tooltips, image_text, "The directory from which images will be randomly chosen.", NULL);
1232 image_browse_button = gtk_button_new_with_label ("Browse");
1233 gtk_widget_set_name (image_browse_button, "image_browse_button");
1234 gtk_widget_ref (image_browse_button);
1235 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "image_browse_button", image_browse_button,
1236 (GtkDestroyNotify) gtk_widget_unref);
1237 gtk_widget_show (image_browse_button);
1238 gtk_box_pack_start (GTK_BOX (image_hbox), image_browse_button, FALSE, FALSE, 4);
1240 options_tab = gtk_label_new ("Advanced");
1241 gtk_widget_set_name (options_tab, "options_tab");
1242 gtk_widget_ref (options_tab);
1243 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "options_tab", options_tab,
1244 (GtkDestroyNotify) gtk_widget_unref);
1245 gtk_widget_show (options_tab);
1246 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 1), options_tab);
1248 gtk_signal_connect (GTK_OBJECT (activate_menu), "activate",
1249 GTK_SIGNAL_FUNC (activate_menu_cb),
1251 gtk_signal_connect (GTK_OBJECT (lock_menu), "activate",
1252 GTK_SIGNAL_FUNC (lock_menu_cb),
1254 gtk_signal_connect (GTK_OBJECT (kill_menu), "activate",
1255 GTK_SIGNAL_FUNC (kill_menu_cb),
1257 gtk_signal_connect (GTK_OBJECT (restart), "activate",
1258 GTK_SIGNAL_FUNC (restart_menu_cb),
1260 gtk_signal_connect (GTK_OBJECT (exit_menu), "activate",
1261 GTK_SIGNAL_FUNC (exit_menu_cb),
1263 gtk_signal_connect (GTK_OBJECT (about_menu), "activate",
1264 GTK_SIGNAL_FUNC (about_menu_cb),
1266 gtk_signal_connect (GTK_OBJECT (doc_menu), "activate",
1267 GTK_SIGNAL_FUNC (doc_menu_cb),
1269 gtk_signal_connect (GTK_OBJECT (notebook), "switch_page",
1270 GTK_SIGNAL_FUNC (switch_page_cb),
1272 gtk_signal_connect (GTK_OBJECT (lock_button), "toggled",
1273 GTK_SIGNAL_FUNC (pref_changed_cb),
1275 gtk_signal_connect (GTK_OBJECT (timeout_spinbutton), "activate",
1276 GTK_SIGNAL_FUNC (pref_changed_cb),
1278 gtk_signal_connect (GTK_OBJECT (timeout_spinbutton), "focus_out_event",
1279 GTK_SIGNAL_FUNC (pref_changed_cb),
1281 gtk_signal_connect (GTK_OBJECT (timeout_spinbutton), "changed",
1282 GTK_SIGNAL_FUNC (pref_changed_cb),
1284 gtk_signal_connect (GTK_OBJECT (lock_spinbutton), "activate",
1285 GTK_SIGNAL_FUNC (pref_changed_cb),
1287 gtk_signal_connect (GTK_OBJECT (lock_spinbutton), "focus_out_event",
1288 GTK_SIGNAL_FUNC (pref_changed_cb),
1290 gtk_signal_connect (GTK_OBJECT (lock_spinbutton), "changed",
1291 GTK_SIGNAL_FUNC (pref_changed_cb),
1293 gtk_signal_connect (GTK_OBJECT (cycle_spinbutton), "activate",
1294 GTK_SIGNAL_FUNC (pref_changed_cb),
1296 gtk_signal_connect (GTK_OBJECT (cycle_spinbutton), "focus_out_event",
1297 GTK_SIGNAL_FUNC (pref_changed_cb),
1299 gtk_signal_connect (GTK_OBJECT (cycle_spinbutton), "changed",
1300 GTK_SIGNAL_FUNC (pref_changed_cb),
1302 gtk_signal_connect (GTK_OBJECT (demo), "clicked",
1303 GTK_SIGNAL_FUNC (run_this_cb),
1305 gtk_signal_connect (GTK_OBJECT (settings), "clicked",
1306 GTK_SIGNAL_FUNC (settings_cb),
1308 gtk_signal_connect (GTK_OBJECT (next), "clicked",
1309 GTK_SIGNAL_FUNC (run_next_cb),
1311 gtk_signal_connect (GTK_OBJECT (prev), "clicked",
1312 GTK_SIGNAL_FUNC (run_prev_cb),
1314 gtk_signal_connect (GTK_OBJECT (verbose_button), "toggled",
1315 GTK_SIGNAL_FUNC (pref_changed_cb),
1317 gtk_signal_connect (GTK_OBJECT (capture_button), "toggled",
1318 GTK_SIGNAL_FUNC (pref_changed_cb),
1320 gtk_signal_connect (GTK_OBJECT (splash_button), "toggled",
1321 GTK_SIGNAL_FUNC (pref_changed_cb),
1323 gtk_signal_connect (GTK_OBJECT (install_button), "toggled",
1324 GTK_SIGNAL_FUNC (pref_changed_cb),
1326 gtk_signal_connect (GTK_OBJECT (fade_button), "toggled",
1327 GTK_SIGNAL_FUNC (pref_changed_cb),
1329 gtk_signal_connect (GTK_OBJECT (unfade_button), "toggled",
1330 GTK_SIGNAL_FUNC (pref_changed_cb),
1332 gtk_signal_connect (GTK_OBJECT (fade_spinbutton), "activate",
1333 GTK_SIGNAL_FUNC (pref_changed_cb),
1335 gtk_signal_connect (GTK_OBJECT (fade_spinbutton), "focus_out_event",
1336 GTK_SIGNAL_FUNC (pref_changed_cb),
1338 gtk_signal_connect (GTK_OBJECT (fade_spinbutton), "changed",
1339 GTK_SIGNAL_FUNC (pref_changed_cb),
1341 gtk_signal_connect (GTK_OBJECT (dpms_button), "toggled",
1342 GTK_SIGNAL_FUNC (pref_changed_cb),
1344 gtk_signal_connect (GTK_OBJECT (dpms_standby_spinbutton), "activate",
1345 GTK_SIGNAL_FUNC (pref_changed_cb),
1347 gtk_signal_connect (GTK_OBJECT (dpms_standby_spinbutton), "focus_out_event",
1348 GTK_SIGNAL_FUNC (pref_changed_cb),
1350 gtk_signal_connect (GTK_OBJECT (dpms_standby_spinbutton), "changed",
1351 GTK_SIGNAL_FUNC (pref_changed_cb),
1353 gtk_signal_connect (GTK_OBJECT (dpms_suspend_spinbutton), "activate",
1354 GTK_SIGNAL_FUNC (pref_changed_cb),
1356 gtk_signal_connect (GTK_OBJECT (dpms_suspend_spinbutton), "focus_out_event",
1357 GTK_SIGNAL_FUNC (pref_changed_cb),
1359 gtk_signal_connect (GTK_OBJECT (dpms_suspend_spinbutton), "changed",
1360 GTK_SIGNAL_FUNC (pref_changed_cb),
1362 gtk_signal_connect (GTK_OBJECT (dpms_off_spinbutton), "activate",
1363 GTK_SIGNAL_FUNC (pref_changed_cb),
1365 gtk_signal_connect (GTK_OBJECT (dpms_off_spinbutton), "focus_out_event",
1366 GTK_SIGNAL_FUNC (pref_changed_cb),
1368 gtk_signal_connect (GTK_OBJECT (dpms_off_spinbutton), "changed",
1369 GTK_SIGNAL_FUNC (pref_changed_cb),
1371 gtk_signal_connect (GTK_OBJECT (grab_desk_button), "toggled",
1372 GTK_SIGNAL_FUNC (pref_changed_cb),
1374 gtk_signal_connect (GTK_OBJECT (grab_video_button), "toggled",
1375 GTK_SIGNAL_FUNC (pref_changed_cb),
1377 gtk_signal_connect (GTK_OBJECT (grab_image_button), "toggled",
1378 GTK_SIGNAL_FUNC (pref_changed_cb),
1380 gtk_signal_connect (GTK_OBJECT (image_text), "activate",
1381 GTK_SIGNAL_FUNC (pref_changed_cb),
1383 gtk_signal_connect (GTK_OBJECT (image_text), "focus_out_event",
1384 GTK_SIGNAL_FUNC (pref_changed_cb),
1386 gtk_signal_connect (GTK_OBJECT (image_browse_button), "clicked",
1387 GTK_SIGNAL_FUNC (browse_image_dir_cb),
1390 gtk_widget_grab_default (next);
1391 gtk_object_set_data (GTK_OBJECT (xscreensaver_demo), "tooltips", tooltips);
1393 gtk_window_add_accel_group (GTK_WINDOW (xscreensaver_demo), accel_group);
1395 return xscreensaver_demo;
1399 create_xscreensaver_settings_dialog (void)
1401 GtkWidget *xscreensaver_settings_dialog;
1402 GtkWidget *dialog_vbox;
1403 GtkWidget *dialog_top_table;
1404 GtkWidget *opt_frame;
1405 GtkWidget *opt_notebook;
1406 GtkWidget *settings_vbox;
1407 GtkWidget *std_label;
1408 GtkWidget *opt_table;
1409 GtkWidget *cmd_logo;
1410 GtkWidget *visual_hbox;
1412 GtkWidget *visual_combo;
1413 GList *visual_combo_items = NULL;
1414 GtkWidget *combo_entry1;
1415 GtkWidget *cmd_label;
1416 GtkWidget *cmd_text;
1417 GtkWidget *adv_label;
1418 GtkWidget *doc_frame;
1419 GtkWidget *doc_vbox;
1421 GtkWidget *doc_hbuttonbox;
1423 GtkWidget *dialog_action_area;
1424 GtkWidget *actionarea_hbox;
1425 GtkWidget *dialog_hbuttonbox;
1426 GtkWidget *adv_button;
1427 GtkWidget *std_button;
1428 GtkWidget *ok_cancel_hbuttonbox;
1429 GtkWidget *ok_button;
1430 GtkWidget *cancel_button;
1431 GtkTooltips *tooltips;
1433 tooltips = gtk_tooltips_new ();
1435 xscreensaver_settings_dialog = gtk_dialog_new ();
1436 gtk_widget_set_name (xscreensaver_settings_dialog, "xscreensaver_settings_dialog");
1437 gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "xscreensaver_settings_dialog", xscreensaver_settings_dialog);
1438 gtk_window_set_title (GTK_WINDOW (xscreensaver_settings_dialog), "XScreenSaver: Mode-Specific Settings");
1439 GTK_WINDOW (xscreensaver_settings_dialog)->type = GTK_WINDOW_DIALOG;
1440 gtk_window_set_modal (GTK_WINDOW (xscreensaver_settings_dialog), TRUE);
1441 gtk_window_set_policy (GTK_WINDOW (xscreensaver_settings_dialog), TRUE, TRUE, FALSE);
1442 gtk_window_set_wmclass (GTK_WINDOW (xscreensaver_settings_dialog), "settings", "XScreenSaver");
1444 dialog_vbox = GTK_DIALOG (xscreensaver_settings_dialog)->vbox;
1445 gtk_widget_set_name (dialog_vbox, "dialog_vbox");
1446 gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_vbox", dialog_vbox);
1447 gtk_widget_show (dialog_vbox);
1449 dialog_top_table = gtk_table_new (1, 2, FALSE);
1450 gtk_widget_set_name (dialog_top_table, "dialog_top_table");
1451 gtk_widget_ref (dialog_top_table);
1452 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_top_table", dialog_top_table,
1453 (GtkDestroyNotify) gtk_widget_unref);
1454 gtk_widget_show (dialog_top_table);
1455 gtk_box_pack_start (GTK_BOX (dialog_vbox), dialog_top_table, TRUE, TRUE, 0);
1456 gtk_container_set_border_width (GTK_CONTAINER (dialog_top_table), 8);
1457 gtk_table_set_row_spacings (GTK_TABLE (dialog_top_table), 8);
1458 gtk_table_set_col_spacings (GTK_TABLE (dialog_top_table), 8);
1460 opt_frame = gtk_frame_new ("Settings");
1461 gtk_widget_set_name (opt_frame, "opt_frame");
1462 gtk_widget_ref (opt_frame);
1463 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "opt_frame", opt_frame,
1464 (GtkDestroyNotify) gtk_widget_unref);
1465 gtk_widget_show (opt_frame);
1466 gtk_table_attach (GTK_TABLE (dialog_top_table), opt_frame, 0, 1, 0, 1,
1467 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1468 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 4, 8);
1470 opt_notebook = gtk_notebook_new ();
1471 gtk_widget_set_name (opt_notebook, "opt_notebook");
1472 gtk_widget_ref (opt_notebook);
1473 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "opt_notebook", opt_notebook,
1474 (GtkDestroyNotify) gtk_widget_unref);
1475 gtk_widget_show (opt_notebook);
1476 gtk_container_add (GTK_CONTAINER (opt_frame), opt_notebook);
1477 gtk_container_set_border_width (GTK_CONTAINER (opt_notebook), 12);
1478 gtk_notebook_set_show_border (GTK_NOTEBOOK (opt_notebook), FALSE);
1479 gtk_notebook_set_tab_pos (GTK_NOTEBOOK (opt_notebook), GTK_POS_BOTTOM);
1481 settings_vbox = gtk_vbox_new (FALSE, 0);
1482 gtk_widget_set_name (settings_vbox, "settings_vbox");
1483 gtk_widget_ref (settings_vbox);
1484 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "settings_vbox", settings_vbox,
1485 (GtkDestroyNotify) gtk_widget_unref);
1486 gtk_widget_show (settings_vbox);
1487 gtk_container_add (GTK_CONTAINER (opt_notebook), settings_vbox);
1489 std_label = gtk_label_new ("Standard");
1490 gtk_widget_set_name (std_label, "std_label");
1491 gtk_widget_ref (std_label);
1492 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "std_label", std_label,
1493 (GtkDestroyNotify) gtk_widget_unref);
1494 gtk_widget_show (std_label);
1495 gtk_notebook_set_tab_label (GTK_NOTEBOOK (opt_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (opt_notebook), 0), std_label);
1497 opt_table = gtk_table_new (4, 2, FALSE);
1498 gtk_widget_set_name (opt_table, "opt_table");
1499 gtk_widget_ref (opt_table);
1500 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "opt_table", opt_table,
1501 (GtkDestroyNotify) gtk_widget_unref);
1502 gtk_widget_show (opt_table);
1503 gtk_container_add (GTK_CONTAINER (opt_notebook), opt_table);
1505 cmd_logo = create_pixmap (xscreensaver_settings_dialog, "screensaver-cmndln.xpm");
1506 gtk_widget_set_name (cmd_logo, "cmd_logo");
1507 gtk_widget_ref (cmd_logo);
1508 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cmd_logo", cmd_logo,
1509 (GtkDestroyNotify) gtk_widget_unref);
1510 gtk_widget_show (cmd_logo);
1511 gtk_table_attach (GTK_TABLE (opt_table), cmd_logo, 0, 1, 0, 1,
1512 (GtkAttachOptions) (GTK_FILL),
1513 (GtkAttachOptions) (GTK_FILL), 0, 0);
1514 gtk_misc_set_padding (GTK_MISC (cmd_logo), 4, 8);
1516 visual_hbox = gtk_hbox_new (FALSE, 0);
1517 gtk_widget_set_name (visual_hbox, "visual_hbox");
1518 gtk_widget_ref (visual_hbox);
1519 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "visual_hbox", visual_hbox,
1520 (GtkDestroyNotify) gtk_widget_unref);
1521 gtk_widget_show (visual_hbox);
1522 gtk_table_attach (GTK_TABLE (opt_table), visual_hbox, 1, 2, 3, 4,
1523 (GtkAttachOptions) (GTK_FILL),
1524 (GtkAttachOptions) (GTK_FILL), 0, 0);
1526 visual = gtk_label_new ("Visual:");
1527 gtk_widget_set_name (visual, "visual");
1528 gtk_widget_ref (visual);
1529 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "visual", visual,
1530 (GtkDestroyNotify) gtk_widget_unref);
1531 gtk_widget_show (visual);
1532 gtk_box_pack_start (GTK_BOX (visual_hbox), visual, FALSE, FALSE, 0);
1533 gtk_label_set_justify (GTK_LABEL (visual), GTK_JUSTIFY_RIGHT);
1534 gtk_misc_set_alignment (GTK_MISC (visual), 1, 0.5);
1535 gtk_misc_set_padding (GTK_MISC (visual), 4, 0);
1537 visual_combo = gtk_combo_new ();
1538 gtk_widget_set_name (visual_combo, "visual_combo");
1539 gtk_widget_ref (visual_combo);
1540 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "visual_combo", visual_combo,
1541 (GtkDestroyNotify) gtk_widget_unref);
1542 gtk_widget_show (visual_combo);
1543 gtk_box_pack_start (GTK_BOX (visual_hbox), visual_combo, FALSE, FALSE, 0);
1544 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "Any");
1545 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "Best");
1546 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "Default");
1547 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "Default-N");
1548 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "GL");
1549 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "TrueColor");
1550 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "PseudoColor");
1551 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "StaticGray");
1552 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "GrayScale");
1553 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "DirectColor");
1554 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "Color");
1555 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "Gray");
1556 visual_combo_items = g_list_append (visual_combo_items, (gpointer) "Mono");
1557 gtk_combo_set_popdown_strings (GTK_COMBO (visual_combo), visual_combo_items);
1558 g_list_free (visual_combo_items);
1560 combo_entry1 = GTK_COMBO (visual_combo)->entry;
1561 gtk_widget_set_name (combo_entry1, "combo_entry1");
1562 gtk_widget_ref (combo_entry1);
1563 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "combo_entry1", combo_entry1,
1564 (GtkDestroyNotify) gtk_widget_unref);
1565 gtk_widget_show (combo_entry1);
1566 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);
1567 gtk_entry_set_text (GTK_ENTRY (combo_entry1), "Any");
1569 cmd_label = gtk_label_new ("Command Line:");
1570 gtk_widget_set_name (cmd_label, "cmd_label");
1571 gtk_widget_ref (cmd_label);
1572 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cmd_label", cmd_label,
1573 (GtkDestroyNotify) gtk_widget_unref);
1574 gtk_widget_show (cmd_label);
1575 gtk_table_attach (GTK_TABLE (opt_table), cmd_label, 1, 2, 1, 2,
1576 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1577 (GtkAttachOptions) (0), 0, 0);
1578 gtk_label_set_justify (GTK_LABEL (cmd_label), GTK_JUSTIFY_LEFT);
1579 gtk_misc_set_alignment (GTK_MISC (cmd_label), 0, 1);
1580 gtk_misc_set_padding (GTK_MISC (cmd_label), 0, 2);
1582 cmd_text = gtk_entry_new ();
1583 gtk_widget_set_name (cmd_text, "cmd_text");
1584 gtk_widget_ref (cmd_text);
1585 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cmd_text", cmd_text,
1586 (GtkDestroyNotify) gtk_widget_unref);
1587 gtk_widget_show (cmd_text);
1588 gtk_table_attach (GTK_TABLE (opt_table), cmd_text, 1, 2, 2, 3,
1589 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
1590 (GtkAttachOptions) (0), 0, 0);
1591 gtk_widget_set_usize (cmd_text, 80, -2);
1593 adv_label = gtk_label_new ("Advanced");
1594 gtk_widget_set_name (adv_label, "adv_label");
1595 gtk_widget_ref (adv_label);
1596 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "adv_label", adv_label,
1597 (GtkDestroyNotify) gtk_widget_unref);
1598 gtk_widget_show (adv_label);
1599 gtk_notebook_set_tab_label (GTK_NOTEBOOK (opt_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (opt_notebook), 1), adv_label);
1601 doc_frame = gtk_frame_new ("Description");
1602 gtk_widget_set_name (doc_frame, "doc_frame");
1603 gtk_widget_ref (doc_frame);
1604 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc_frame", doc_frame,
1605 (GtkDestroyNotify) gtk_widget_unref);
1606 gtk_widget_show (doc_frame);
1607 gtk_table_attach (GTK_TABLE (dialog_top_table), doc_frame, 1, 2, 0, 1,
1608 (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
1609 (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 4, 8);
1611 doc_vbox = gtk_vbox_new (FALSE, 0);
1612 gtk_widget_set_name (doc_vbox, "doc_vbox");
1613 gtk_widget_ref (doc_vbox);
1614 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc_vbox", doc_vbox,
1615 (GtkDestroyNotify) gtk_widget_unref);
1616 gtk_widget_show (doc_vbox);
1617 gtk_container_add (GTK_CONTAINER (doc_frame), doc_vbox);
1619 doc = gtk_label_new ("");
1620 gtk_widget_set_name (doc, "doc");
1621 gtk_widget_ref (doc);
1622 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc", doc,
1623 (GtkDestroyNotify) gtk_widget_unref);
1624 gtk_widget_show (doc);
1625 gtk_box_pack_start (GTK_BOX (doc_vbox), doc, TRUE, TRUE, 0);
1626 gtk_label_set_justify (GTK_LABEL (doc), GTK_JUSTIFY_LEFT);
1627 gtk_label_set_line_wrap (GTK_LABEL (doc), TRUE);
1628 gtk_misc_set_alignment (GTK_MISC (doc), 0, 0);
1629 gtk_misc_set_padding (GTK_MISC (doc), 10, 10);
1631 doc_hbuttonbox = gtk_hbutton_box_new ();
1632 gtk_widget_set_name (doc_hbuttonbox, "doc_hbuttonbox");
1633 gtk_widget_ref (doc_hbuttonbox);
1634 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "doc_hbuttonbox", doc_hbuttonbox,
1635 (GtkDestroyNotify) gtk_widget_unref);
1636 gtk_widget_show (doc_hbuttonbox);
1637 gtk_box_pack_end (GTK_BOX (doc_vbox), doc_hbuttonbox, FALSE, FALSE, 0);
1638 gtk_container_set_border_width (GTK_CONTAINER (doc_hbuttonbox), 4);
1639 gtk_button_box_set_layout (GTK_BUTTON_BOX (doc_hbuttonbox), GTK_BUTTONBOX_END);
1641 manual = gtk_button_new_with_label ("Documentation...");
1642 gtk_widget_set_name (manual, "manual");
1643 gtk_widget_ref (manual);
1644 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "manual", manual,
1645 (GtkDestroyNotify) gtk_widget_unref);
1646 gtk_widget_show (manual);
1647 gtk_container_add (GTK_CONTAINER (doc_hbuttonbox), manual);
1648 GTK_WIDGET_SET_FLAGS (manual, GTK_CAN_DEFAULT);
1649 gtk_tooltips_set_tip (tooltips, manual, "Click here to read the manual for this display mode, if it has one.", NULL);
1651 dialog_action_area = GTK_DIALOG (xscreensaver_settings_dialog)->action_area;
1652 gtk_widget_set_name (dialog_action_area, "dialog_action_area");
1653 gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_action_area", dialog_action_area);
1654 gtk_widget_show (dialog_action_area);
1655 gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area), 10);
1657 actionarea_hbox = gtk_hbox_new (FALSE, 0);
1658 gtk_widget_set_name (actionarea_hbox, "actionarea_hbox");
1659 gtk_widget_ref (actionarea_hbox);
1660 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "actionarea_hbox", actionarea_hbox,
1661 (GtkDestroyNotify) gtk_widget_unref);
1662 gtk_widget_show (actionarea_hbox);
1663 gtk_box_pack_start (GTK_BOX (dialog_action_area), actionarea_hbox, TRUE, TRUE, 0);
1665 dialog_hbuttonbox = gtk_hbutton_box_new ();
1666 gtk_widget_set_name (dialog_hbuttonbox, "dialog_hbuttonbox");
1667 gtk_widget_ref (dialog_hbuttonbox);
1668 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "dialog_hbuttonbox", dialog_hbuttonbox,
1669 (GtkDestroyNotify) gtk_widget_unref);
1670 gtk_widget_show (dialog_hbuttonbox);
1671 gtk_box_pack_start (GTK_BOX (actionarea_hbox), dialog_hbuttonbox, TRUE, TRUE, 0);
1672 gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_hbuttonbox), GTK_BUTTONBOX_SPREAD);
1674 adv_button = gtk_button_new_with_label ("Advanced >>");
1675 gtk_widget_set_name (adv_button, "adv_button");
1676 gtk_widget_ref (adv_button);
1677 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "adv_button", adv_button,
1678 (GtkDestroyNotify) gtk_widget_unref);
1679 gtk_widget_show (adv_button);
1680 gtk_container_add (GTK_CONTAINER (dialog_hbuttonbox), adv_button);
1681 GTK_WIDGET_SET_FLAGS (adv_button, GTK_CAN_DEFAULT);
1682 gtk_tooltips_set_tip (tooltips, adv_button, "Edit the command line directly.", NULL);
1684 std_button = gtk_button_new_with_label ("Standard <<");
1685 gtk_widget_set_name (std_button, "std_button");
1686 gtk_widget_ref (std_button);
1687 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "std_button", std_button,
1688 (GtkDestroyNotify) gtk_widget_unref);
1689 gtk_widget_show (std_button);
1690 gtk_container_add (GTK_CONTAINER (dialog_hbuttonbox), std_button);
1691 GTK_WIDGET_SET_FLAGS (std_button, GTK_CAN_DEFAULT);
1692 gtk_tooltips_set_tip (tooltips, std_button, "Back to the graphical configuration options.", NULL);
1694 ok_cancel_hbuttonbox = gtk_hbutton_box_new ();
1695 gtk_widget_set_name (ok_cancel_hbuttonbox, "ok_cancel_hbuttonbox");
1696 gtk_widget_ref (ok_cancel_hbuttonbox);
1697 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "ok_cancel_hbuttonbox", ok_cancel_hbuttonbox,
1698 (GtkDestroyNotify) gtk_widget_unref);
1699 gtk_widget_show (ok_cancel_hbuttonbox);
1700 gtk_box_pack_start (GTK_BOX (actionarea_hbox), ok_cancel_hbuttonbox, TRUE, TRUE, 0);
1701 gtk_button_box_set_layout (GTK_BUTTON_BOX (ok_cancel_hbuttonbox), GTK_BUTTONBOX_END);
1703 ok_button = gtk_button_new_with_label ("OK");
1704 gtk_widget_set_name (ok_button, "ok_button");
1705 gtk_widget_ref (ok_button);
1706 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "ok_button", ok_button,
1707 (GtkDestroyNotify) gtk_widget_unref);
1708 gtk_widget_show (ok_button);
1709 gtk_container_add (GTK_CONTAINER (ok_cancel_hbuttonbox), ok_button);
1710 GTK_WIDGET_SET_FLAGS (ok_button, GTK_CAN_DEFAULT);
1712 cancel_button = gtk_button_new_with_label ("Cancel");
1713 gtk_widget_set_name (cancel_button, "cancel_button");
1714 gtk_widget_ref (cancel_button);
1715 gtk_object_set_data_full (GTK_OBJECT (xscreensaver_settings_dialog), "cancel_button", cancel_button,
1716 (GtkDestroyNotify) gtk_widget_unref);
1717 gtk_widget_show (cancel_button);
1718 gtk_container_add (GTK_CONTAINER (ok_cancel_hbuttonbox), cancel_button);
1719 GTK_WIDGET_SET_FLAGS (cancel_button, GTK_CAN_DEFAULT);
1721 gtk_signal_connect (GTK_OBJECT (opt_notebook), "switch_page",
1722 GTK_SIGNAL_FUNC (settings_switch_page_cb),
1724 gtk_signal_connect (GTK_OBJECT (manual), "clicked",
1725 GTK_SIGNAL_FUNC (manual_cb),
1727 gtk_signal_connect (GTK_OBJECT (adv_button), "clicked",
1728 GTK_SIGNAL_FUNC (settings_adv_cb),
1730 gtk_signal_connect (GTK_OBJECT (std_button), "clicked",
1731 GTK_SIGNAL_FUNC (settings_std_cb),
1733 gtk_signal_connect (GTK_OBJECT (ok_button), "clicked",
1734 GTK_SIGNAL_FUNC (settings_ok_cb),
1736 gtk_signal_connect (GTK_OBJECT (cancel_button), "clicked",
1737 GTK_SIGNAL_FUNC (settings_cancel_cb),
1740 gtk_object_set_data (GTK_OBJECT (xscreensaver_settings_dialog), "tooltips", tooltips);
1742 return xscreensaver_settings_dialog;