Added. (prefs_widget_init): Connect to "Add" and "Remove"

2001-07-03  Richard Hestilow  <hestilow@ximian.com>

	* prefs-widget.c:
	  (add_select_cb, screensaver_add_cb, screensaver_remove_cb): Added.
	  (prefs_widget_init): Connect to "Add" and "Remove"

	* screensaver-prefs-dialog.c (get_basic_screensaver_widget): Replace
	confusing stuff with ultra-simple dialog.

	* screensaver-properties.glade[.h]: Remove "Demo" popup item, as it
	is on the settings dialogs and is not easy to manage with
	menu selection anyway. (Too much mouse movement).
This commit is contained in:
Richard Hestilow 2001-07-03 20:40:58 +00:00 committed by Rachel Hestilow
parent 3e3422d465
commit 70f3cc51cc
5 changed files with 131 additions and 36 deletions

View file

@ -1,3 +1,16 @@
2001-07-03 Richard Hestilow <hestilow@ximian.com>
* prefs-widget.c:
(add_select_cb, screensaver_add_cb, screensaver_remove_cb): Added.
(prefs_widget_init): Connect to "Add" and "Remove"
* screensaver-prefs-dialog.c (get_basic_screensaver_widget): Replace
confusing stuff with ultra-simple dialog.
* screensaver-properties.glade[.h]: Remove "Demo" popup item, as it
is on the settings dialogs and is not easy to manage with
menu selection anyway. (Too much mouse movement).
2001-07-03 Richard Hestilow <hestilow@ximian.com>
* screensaver-properties.glade[.h]: Added.

View file

@ -5,6 +5,7 @@
#include "prefs-widget.h"
#include "preview.h"
#include "screensaver-prefs-dialog.h"
#include "selection-dialog.h"
#include "rc-parse.h"
#include <gal/e-table/e-table.h>
#include <gal/e-table/e-table-simple.h>
@ -65,28 +66,37 @@ static void popup_item_menu (ETable *table,
int row, int col, GdkEvent *event,
PrefsWidget *prefs_widget);
static void about_cb (GtkWidget *widget,
PrefsWidget *prefs_widget);
static void settings_cb (GtkWidget *button,
PrefsWidget *widget);
static void pwr_manage_toggled_cb (GtkWidget *button,
PrefsWidget *prefs_widget);
static void pwr_conf_cb (GtkWidget *button,
PrefsWidget *prefs_widget);
static void pwr_conf_button_cb (GnomeDialog *dlg,
gint button,
PrefsWidget *prefs_widget);
static void pwr_save_prefs (PrefsWidget *prefs_widget);
static void pwr_restore_prefs (PrefsWidget *prefs_widget);
static time_t pwr_get_toggled_entry (PrefsWidget *prefs_widget,
const gchar *enable_str,
const gchar *entry_str);
static void pwr_set_toggled_entry (PrefsWidget *prefs_widget,
const gchar *enable_str,
const gchar *entry_str,
time_t value);
static void about_cb (GtkWidget *widget,
PrefsWidget *prefs_widget);
static void settings_cb (GtkWidget *button,
PrefsWidget *widget);
static void pwr_manage_toggled_cb (GtkWidget *button,
PrefsWidget *prefs_widget);
static void pwr_conf_cb (GtkWidget *button,
PrefsWidget *prefs_widget);
static void pwr_conf_button_cb (GnomeDialog *dlg,
gint button,
PrefsWidget *prefs_widget);
static void pwr_save_prefs (PrefsWidget *prefs_widget);
static void pwr_restore_prefs (PrefsWidget *prefs_widget);
static time_t pwr_get_toggled_entry (PrefsWidget *prefs_widget,
const gchar *enable_str,
const gchar *entry_str);
static void pwr_set_toggled_entry (PrefsWidget *prefs_widget,
const gchar *enable_str,
const gchar *entry_str,
time_t value);
static const gchar *table_compute_state (SelectionMode mode);
static void add_select_cb (GtkWidget *widget,
Screensaver *saver,
PrefsWidget *prefs_widget);
static void screensaver_add_cb (GtkWidget *button,
PrefsWidget *prefs_widget);
static void screensaver_remove_cb (GtkWidget *button,
PrefsWidget *prefs_widget);
static const gchar *table_compute_state (SelectionMode mode);
/* Model declarations */
static int model_col_count (ETableModel *etm, void *data);
static int model_row_count (ETableModel *etm, void *data);
@ -282,6 +292,16 @@ prefs_widget_init (PrefsWidget *prefs_widget)
gtk_signal_connect (GTK_OBJECT (widget), "activate",
GTK_SIGNAL_FUNC (settings_cb),
prefs_widget);
widget = WID ("popup_add");
gtk_signal_connect (GTK_OBJECT (widget), "activate",
GTK_SIGNAL_FUNC (screensaver_add_cb),
prefs_widget);
widget = WID ("popup_remove");
gtk_signal_connect (GTK_OBJECT (widget), "activate",
GTK_SIGNAL_FUNC (screensaver_remove_cb),
prefs_widget);
}
static void
@ -502,7 +522,7 @@ set_random_timeout (PrefsWidget *prefs_widget, gboolean do_random)
static const gchar *
table_compute_state (SelectionMode mode)
{
if (mode == SM_ONE_SCREENSAVER_ONLY)
if (mode != SM_CHOOSE_FROM_LIST)
return "<ETableState><column source=\"1\"/><grouping></grouping></ETableState>";
else return "<ETableState><column source=\"0\"/><column source=\"1\"/><grouping></grouping></ETableState>";
}
@ -945,3 +965,70 @@ pwr_state_changed_cb (GtkWidget *widget, PrefsWidget *prefs_widget)
gnome_dialog_set_sensitive (GNOME_DIALOG (dlg), GNOME_OK, TRUE);
state_changed_cb (widget, prefs_widget);
}
static void
screensaver_add_cb (GtkWidget *button, PrefsWidget *prefs_widget)
{
GtkWidget *dialog;
dialog = selection_dialog_new (prefs_widget);
gtk_signal_connect (GTK_OBJECT (dialog), "ok-clicked",
GTK_SIGNAL_FUNC (add_select_cb), prefs_widget);
}
static void
screensaver_remove_cb (GtkWidget *button, PrefsWidget *prefs_widget)
{
Screensaver *rm;
GList *l;
gint row;
if (!prefs_widget->selected_saver) return;
rm = prefs_widget->selected_saver;
/* Find another screensaver to select */
row = 0;
for (l = prefs_widget->screensavers; l != NULL; l = l->next)
{
if (l->data == rm)
break;
row++;
}
prefs_widget->screensavers =
screensaver_remove (rm, prefs_widget->screensavers);
screensaver_destroy (rm);
if (!prefs_widget->screensavers)
prefs_widget->selected_saver = NULL;
else
{
if (row < 0)
row = 0;
else
row--;
e_selection_model_select_single_row (
E_SELECTION_MODEL (E_TABLE (prefs_widget->priv->table)->selection), row);
}
state_changed_cb (button, prefs_widget);
}
static void
add_select_cb (GtkWidget *widget, Screensaver *saver,
PrefsWidget *prefs_widget)
{
gint row;
prefs_widget->screensavers =
screensaver_add (saver, prefs_widget->screensavers);
row = g_list_length (prefs_widget->screensavers) - 1;
e_selection_model_select_single_row (
E_SELECTION_MODEL (E_TABLE (prefs_widget->priv->table)->selection), row);
settings_cb (widget, prefs_widget);
}

View file

@ -285,7 +285,7 @@ screensaver_prefs_dialog_new (Screensaver *saver)
xmlDocGetRootElement (dialog->argument_doc);
}
if (dialog->cli_args_db && dialog->argument_data) {
if (dialog->cli_args_db && dialog->argument_data && dialog->argument_data->childs && dialog->argument_data->childs->next) {
settings_widget =
get_screensaver_widget (dialog);
} else {
@ -1357,6 +1357,13 @@ get_basic_screensaver_widget (ScreensaverPrefsDialog *dialog)
vbox = gtk_vbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
label = gtk_label_new (_("There are no configurable settings for this screensaver."));
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 5);
gtk_widget_show (label);
#if 0
if (dialog->saver->name) {
label = gtk_label_new
(_("Cannot find the data to configure this " \
@ -1412,6 +1419,7 @@ get_basic_screensaver_widget (ScreensaverPrefsDialog *dialog)
gtk_box_pack_start (GTK_BOX (vbox), dialog->visual_combo,
TRUE, FALSE, 5);
#endif
return vbox;
}

View file

@ -549,18 +549,6 @@ screensaver. </label>
<right_justify>False</right_justify>
</widget>
<widget>
<class>GtkMenuItem</class>
<name>popup_demo</name>
<signal>
<name>activate</name>
<handler>on_demo1_activate</handler>
<last_modification_time>Thu, 28 Jun 2001 16:18:44 GMT</last_modification_time>
</signal>
<label>_Demo</label>
<right_justify>False</right_justify>
</widget>
<widget>
<class>GtkPixmapMenuItem</class>
<name>popup_about</name>

View file

@ -19,7 +19,6 @@ gchar *s = N_("There are no configurable settings for this\n"
gchar *s = N_("_Add");
gchar *s = N_("_Settings");
gchar *s = N_("_Remove");
gchar *s = N_("_Demo");
gchar *s = N_("_About this screensaver...");
gchar *s = N_("window1");
gchar *s = N_("minutes");