X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=driver%2Fdemo-Gtk.c;h=87f24e942306a50f573cf69881c89c1712f5dcdd;hb=1d7308dd9032b39a92fda86e8c2db04218b45fbf;hp=28d2925bc7c69ec4e1b062591f5b928f303811a3;hpb=50be9bb40dc60130c99ffa568e6677779904ff70;p=xscreensaver diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c index 28d2925b..87f24e94 100644 --- a/driver/demo-Gtk.c +++ b/driver/demo-Gtk.c @@ -1,5 +1,5 @@ /* demo-Gtk.c --- implements the interactive demo-mode and options dialogs. - * xscreensaver, Copyright (c) 1993-2008 Jamie Zawinski + * xscreensaver, Copyright (c) 1993-2011 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -535,7 +535,7 @@ static void warning_dialog_killk_cb (GtkWidget *widget, gpointer user_data) typedef enum { D_NONE, D_LAUNCH, D_GNOME, D_KDE } dialog_button; -static void +static Bool warning_dialog (GtkWidget *parent, const char *message, dialog_button button_type, int center) { @@ -555,7 +555,7 @@ warning_dialog (GtkWidget *parent, const char *message, !GET_WINDOW (parent)) /* too early to pop up transient dialogs */ { fprintf (stderr, "%s: too early for dialog?\n", progname); - return; + return False; } head = msg; @@ -680,6 +680,7 @@ warning_dialog (GtkWidget *parent, const char *message, #endif /* !HAVE_GTK2 */ free (msg); + return True; } @@ -1485,6 +1486,7 @@ flush_dialog_changes_and_save (state *s) GList *kids = gtk_container_children (GTK_CONTAINER (list_widget)); int i; #endif /* !HAVE_GTK2 */ + static Bool already_warned_about_missing_image_directory = False; /* very long name... */ Bool changed = False; GtkWidget *w; @@ -1546,7 +1548,8 @@ flush_dialog_changes_and_save (state *s) CHECKBOX (p2->lock_p, "lock_button"); MINUTES (&p2->lock_timeout, "lock_spinbutton"); - CHECKBOX (p2->dpms_enabled_p, "dpms_button"); + CHECKBOX (p2->dpms_enabled_p, "dpms_button"); + CHECKBOX (p2->dpms_quickoff_p, "dpms_quickoff_button"); MINUTES (&p2->dpms_standby, "dpms_standby_spinbutton"); MINUTES (&p2->dpms_suspend, "dpms_suspend_spinbutton"); MINUTES (&p2->dpms_off, "dpms_off_spinbutton"); @@ -1587,16 +1590,26 @@ flush_dialog_changes_and_save (state *s) # undef PATHNAME # undef TEXT - /* Warn if the image directory doesn't exist. + /* Warn if the image directory doesn't exist, when: + - not being warned before + - image directory is changed and the directory doesn't exist */ if (p2->image_directory && *p2->image_directory && - !directory_p (p2->image_directory)) + !directory_p (p2->image_directory) && + ( !already_warned_about_missing_image_directory || + ( p->image_directory && + *p->image_directory && + strcmp(p->image_directory, p2->image_directory) + ) + ) + ) { char b[255]; - sprintf (b, "Error:\n\n" "Directory does not exist: \"%s\"\n", + sprintf (b, "Warning:\n\n" "Directory does not exist: \"%s\"\n", p2->image_directory); - warning_dialog (s->toplevel_widget, b, D_NONE, 100); + if (warning_dialog (s->toplevel_widget, b, D_NONE, 100)) + already_warned_about_missing_image_directory = True; } @@ -1635,10 +1648,11 @@ flush_dialog_changes_and_save (state *s) COPY(lock_p, "lock_p"); COPY(lock_timeout, "lock_timeout"); - COPY(dpms_enabled_p, "dpms_enabled_p"); - COPY(dpms_standby, "dpms_standby"); - COPY(dpms_suspend, "dpms_suspend"); - COPY(dpms_off, "dpms_off"); + COPY(dpms_enabled_p, "dpms_enabled_p"); + COPY(dpms_quickoff_p, "dpms_quickoff_enabled_p"); + COPY(dpms_standby, "dpms_standby"); + COPY(dpms_suspend, "dpms_suspend"); + COPY(dpms_off, "dpms_off"); #if 0 COPY(verbose_p, "verbose_p"); @@ -2783,6 +2797,7 @@ populate_prefs_page (state *s) TOGGLE_ACTIVE ("splash_button", p->splash_p); #endif TOGGLE_ACTIVE ("dpms_button", p->dpms_enabled_p); + TOGGLE_ACTIVE ("dpms_quickoff_button", p->dpms_quickoff_p); TOGGLE_ACTIVE ("grab_desk_button", p->grab_desktop_p); TOGGLE_ACTIVE ("grab_video_button", p->grab_video_p); TOGGLE_ACTIVE ("grab_image_button", p->random_image_p); @@ -2886,8 +2901,11 @@ populate_prefs_page (state *s) /* DPMS */ +dpms_supported=1; SENSITIZE ("dpms_frame", dpms_supported); SENSITIZE ("dpms_button", dpms_supported); + SENSITIZE ("dpms_quickoff_button", dpms_supported); + SENSITIZE ("dpms_standby_label", dpms_supported && p->dpms_enabled_p); SENSITIZE ("dpms_standby_mlabel", dpms_supported && p->dpms_enabled_p); SENSITIZE ("dpms_standby_spinbutton", dpms_supported && p->dpms_enabled_p);