http://ftp.x.org/contrib/applications/xscreensaver-3.26.tar.gz
[xscreensaver] / driver / demo-Gtk-widgets.c
index 0b133bc389aadd69959f833576604c0501c9cb65..6adcd800c74b3a0abe5e6c1b086f0236a35d7da3 100644 (file)
@@ -6,6 +6,7 @@
 #  include <config.h>
 #endif
 
+#include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
@@ -16,9 +17,8 @@
 #include "demo-Gtk-stubs.h"
 #include "demo-Gtk-widgets.h"
 
-
 GtkWidget*
-create_xscreensaver_demo ()
+create_xscreensaver_demo (void)
 {
   GtkWidget *xscreensaver_demo;
   GtkWidget *outer_vbox;
@@ -67,10 +67,9 @@ create_xscreensaver_demo ()
   GList *visual_combo_items = NULL;
   GtkWidget *combo_entry1;
   GtkWidget *demo_hline;
-  GtkWidget *demo_cancel_hbox;
+  GtkWidget *demo_manual_hbox;
   GtkWidget *demo;
-  GtkWidget *apply;
-  GtkWidget *cancel;
+  GtkWidget *manual;
   GtkWidget *demo_tab;
   GtkWidget *prefs_hbox;
   GtkWidget *prefs_frame;
@@ -92,9 +91,6 @@ create_xscreensaver_demo ()
   GtkWidget *fade_button;
   GtkWidget *unfade_button;
   GtkWidget *lock_button;
-  GtkWidget *hbuttonbox3;
-  GtkWidget *prefs_ok;
-  GtkWidget *prefs_cancel;
   GtkWidget *prefs_tab;
   GtkAccelGroup *accel_group;
   GtkTooltips *tooltips;
@@ -535,13 +531,13 @@ create_xscreensaver_demo ()
   gtk_widget_show (demo_hline);
   gtk_box_pack_start (GTK_BOX (opts_vbox), demo_hline, FALSE, FALSE, 5);
 
-  demo_cancel_hbox = gtk_hbutton_box_new ();
-  gtk_widget_set_name (demo_cancel_hbox, "demo_cancel_hbox");
-  gtk_widget_ref (demo_cancel_hbox);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_cancel_hbox", demo_cancel_hbox,
+  demo_manual_hbox = gtk_hbutton_box_new ();
+  gtk_widget_set_name (demo_manual_hbox, "demo_manual_hbox");
+  gtk_widget_ref (demo_manual_hbox);
+  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo_manual_hbox", demo_manual_hbox,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (demo_cancel_hbox);
-  gtk_box_pack_start (GTK_BOX (opts_vbox), demo_cancel_hbox, FALSE, TRUE, 0);
+  gtk_widget_show (demo_manual_hbox);
+  gtk_box_pack_start (GTK_BOX (opts_vbox), demo_manual_hbox, FALSE, TRUE, 0);
 
   demo = gtk_button_new_with_label ("Demo");
   gtk_widget_set_name (demo, "demo");
@@ -549,29 +545,19 @@ create_xscreensaver_demo ()
   gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "demo", demo,
                             (GtkDestroyNotify) gtk_widget_unref);
   gtk_widget_show (demo);
-  gtk_container_add (GTK_CONTAINER (demo_cancel_hbox), demo);
+  gtk_container_add (GTK_CONTAINER (demo_manual_hbox), demo);
   GTK_WIDGET_SET_FLAGS (demo, GTK_CAN_DEFAULT);
-  gtk_tooltips_set_tip (tooltips, demo, "Make any changes to this demo's parameters permanent, and run it in full-screen mode (click the mouse to return.)", NULL);
-
-  apply = gtk_button_new_with_label ("Apply");
-  gtk_widget_set_name (apply, "apply");
-  gtk_widget_ref (apply);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "apply", apply,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (apply);
-  gtk_container_add (GTK_CONTAINER (demo_cancel_hbox), apply);
-  GTK_WIDGET_SET_FLAGS (apply, GTK_CAN_DEFAULT);
-  gtk_tooltips_set_tip (tooltips, apply, "Make any changes to this demo's parameters permanent.", NULL);
+  gtk_tooltips_set_tip (tooltips, demo, "Run this one in full-screen mode (click the mouse to return.)", NULL);
 
-  cancel = gtk_button_new_with_label ("Cancel");
-  gtk_widget_set_name (cancel, "cancel");
-  gtk_widget_ref (cancel);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "cancel", cancel,
+  manual = gtk_button_new_with_label ("Documentation...");
+  gtk_widget_set_name (manual, "manual");
+  gtk_widget_ref (manual);
+  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "manual", manual,
                             (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (cancel);
-  gtk_container_add (GTK_CONTAINER (demo_cancel_hbox), cancel);
-  GTK_WIDGET_SET_FLAGS (cancel, GTK_CAN_DEFAULT);
-  gtk_tooltips_set_tip (tooltips, cancel, "Discard any changes you have made to this demo's parameters.", NULL);
+  gtk_widget_show (manual);
+  gtk_container_add (GTK_CONTAINER (demo_manual_hbox), manual);
+  GTK_WIDGET_SET_FLAGS (manual, GTK_CAN_DEFAULT);
+  gtk_tooltips_set_tip (tooltips, manual, "Click here to read the manual for this display mode, if it has one.", NULL);
 
   demo_tab = gtk_label_new ("Graphics Demos");
   gtk_widget_set_name (demo_tab, "demo_tab");
@@ -797,33 +783,6 @@ create_xscreensaver_demo ()
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 10, 0);
 
-  hbuttonbox3 = gtk_hbutton_box_new ();
-  gtk_widget_set_name (hbuttonbox3, "hbuttonbox3");
-  gtk_widget_ref (hbuttonbox3);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "hbuttonbox3", hbuttonbox3,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbuttonbox3);
-  gtk_box_pack_start (GTK_BOX (prefs_hbox), hbuttonbox3, FALSE, FALSE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox3), 10);
-
-  prefs_ok = gtk_button_new_with_label ("OK");
-  gtk_widget_set_name (prefs_ok, "prefs_ok");
-  gtk_widget_ref (prefs_ok);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "prefs_ok", prefs_ok,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (prefs_ok);
-  gtk_container_add (GTK_CONTAINER (hbuttonbox3), prefs_ok);
-  GTK_WIDGET_SET_FLAGS (prefs_ok, GTK_CAN_DEFAULT);
-
-  prefs_cancel = gtk_button_new_with_label ("Cancel");
-  gtk_widget_set_name (prefs_cancel, "prefs_cancel");
-  gtk_widget_ref (prefs_cancel);
-  gtk_object_set_data_full (GTK_OBJECT (xscreensaver_demo), "prefs_cancel", prefs_cancel,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (prefs_cancel);
-  gtk_container_add (GTK_CONTAINER (hbuttonbox3), prefs_cancel);
-  GTK_WIDGET_SET_FLAGS (prefs_cancel, GTK_CAN_DEFAULT);
-
   prefs_tab = gtk_label_new ("Screensaver Options");
   gtk_widget_set_name (prefs_tab, "prefs_tab");
   gtk_widget_ref (prefs_tab);
@@ -862,26 +821,74 @@ create_xscreensaver_demo ()
   gtk_signal_connect (GTK_OBJECT (doc_menu), "activate",
                       GTK_SIGNAL_FUNC (doc_menu_cb),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (notebook), "switch_page",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
   gtk_signal_connect (GTK_OBJECT (next), "clicked",
                       GTK_SIGNAL_FUNC (run_next_cb),
                       NULL);
   gtk_signal_connect (GTK_OBJECT (prev), "clicked",
                       GTK_SIGNAL_FUNC (run_prev_cb),
                       NULL);
+  gtk_signal_connect (GTK_OBJECT (enabled), "toggled",
+                      GTK_SIGNAL_FUNC (enabled_cb),
+                      NULL);
   gtk_signal_connect (GTK_OBJECT (demo), "clicked",
                       GTK_SIGNAL_FUNC (run_this_cb),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (apply), "clicked",
-                      GTK_SIGNAL_FUNC (apply_this_cb),
+  gtk_signal_connect (GTK_OBJECT (manual), "clicked",
+                      GTK_SIGNAL_FUNC (manual_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (timeout_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (timeout_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (cycle_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (cycle_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (fade_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (fade_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (ticks_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (ticks_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (lock_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (lock_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (pass_text), "activate",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (pass_text), "focus_out_event",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (verbose_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
+                      NULL);
+  gtk_signal_connect (GTK_OBJECT (install_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (cancel), "clicked",
-                      GTK_SIGNAL_FUNC (cancel_this_cb),
+  gtk_signal_connect (GTK_OBJECT (fade_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (prefs_ok), "clicked",
-                      GTK_SIGNAL_FUNC (prefs_ok_cb),
+  gtk_signal_connect (GTK_OBJECT (unfade_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
                       NULL);
-  gtk_signal_connect (GTK_OBJECT (prefs_cancel), "clicked",
-                      GTK_SIGNAL_FUNC (prefs_cancel_cb),
+  gtk_signal_connect (GTK_OBJECT (lock_button), "toggled",
+                      GTK_SIGNAL_FUNC (pref_changed_cb),
                       NULL);
 
   gtk_widget_grab_default (next);