aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2002-03-13 12:55:04 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2002-03-13 12:55:04 +0800
commitd5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe (patch)
treef0ed1da36d11d0d6a12183a9f8f13bb3434e94d0
parent9a3b0141daad42713cdeae13ffb0d2e8af786540 (diff)
downloadgsoc2013-evolution-d5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe.tar
gsoc2013-evolution-d5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe.tar.gz
gsoc2013-evolution-d5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe.tar.bz2
gsoc2013-evolution-d5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe.tar.lz
gsoc2013-evolution-d5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe.tar.xz
gsoc2013-evolution-d5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe.tar.zst
gsoc2013-evolution-d5ba94f758a5206dc7cd5b0cd222bb2c3d348ebe.zip
Add <visible>False</visible> to cal-prefs-dialog so it doesn't get shown
* gui/dialogs/cal-prefs-dialog.glade: Add <visible>False</visible> to cal-prefs-dialog so it doesn't get shown when we load the Glade file with libglade. * gui/component-factory.c (owner_set_cb): Register the ConfigControl factory. * gui/tasks-control.c: Removed verb "TaskSettings". (tasks_control_settings_cmd): Removed. * gui/calendar-commands.c: Removed verb "CalendarSettings". (settings_cmd): Removed. * gui/dialogs/cal-prefs-dialog.c: Renamed `CalPrefsDialogPrivate' to `DialogData'. Replace `dialog' member with a `page' member. Remove `toplevel_notebook' member. (init_widgets): Renamed from `cal_prefs_dialog_init_widgets'. Just get a DialogData. (get_widgets): Get a DialogData pointer. (cal_prefs_dialog_destroy): Removed. (config_control_destroy_callback): New, signal handler for ::destroy for ConfigControl. (cal_prefs_dialog_new): Create a new DialogData, connect all the signal handlers. (create_time_edit): Renamed from `cal_prefs_dialog_create_time_edit'. (cal_prefs_dialog_show): Removed. (cal_prefs_dialog_button_clicked): Removed. (show_task_list_config): Get a DialogData. (show_config): Renamed from `cal_prefs_dialog_show_config'. Likewise. (update_task_list_config): Likewise. (update_config): Renamed from `cal_prefs_dialog_update_config'. Likewise. (color_set_callback): New callback, makes the dialog report changes when the setting in any of the color widgets is changed. (widget_changed_callback): New callback, makes the dialog report changes when any of the widgets changes status. (connect_changed): New utility function to connect this callback to all the widgets. (setup_widgets): Connect all the widgets. (cal_prefs_dialog_new): Call `setup_widgets'. * gui/config-control-factory.c: New. * gui/config-control-factory.h: New. * gui/GNOME_Evolution_Calendar.oaf.in: Add OAFIID:GNOME_Evolution_Calendar_ConfigControl and OAFIID:GNOME_Evolution_Calendar_ConfigControlFactory. svn path=/trunk/; revision=16135
-rw-r--r--calendar/ChangeLog52
-rw-r--r--calendar/gui/GNOME_Evolution_Calendar.oaf.in29
-rw-r--r--calendar/gui/Makefile.am2
-rw-r--r--calendar/gui/calendar-commands.c14
-rw-r--r--calendar/gui/calendar-component.c3
-rw-r--r--calendar/gui/component-factory.c3
-rw-r--r--calendar/gui/config-control-factory.c61
-rw-r--r--calendar/gui/config-control-factory.h30
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.c586
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.glade1
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.h41
-rw-r--r--calendar/gui/tasks-control.c20
12 files changed, 447 insertions, 395 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 59ac17b387..4e87e43517 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,55 @@
+2002-03-12 Ettore Perazzoli <ettore@ximian.com>
+
+ * gui/dialogs/cal-prefs-dialog.glade: Add <visible>False</visible>
+ to cal-prefs-dialog so it doesn't get shown when we load the Glade
+ file with libglade.
+
+ * gui/component-factory.c (owner_set_cb): Register the
+ ConfigControl factory.
+
+ * gui/tasks-control.c: Removed verb "TaskSettings".
+ (tasks_control_settings_cmd): Removed.
+
+ * gui/calendar-commands.c: Removed verb "CalendarSettings".
+ (settings_cmd): Removed.
+
+ * gui/dialogs/cal-prefs-dialog.c: Renamed `CalPrefsDialogPrivate'
+ to `DialogData'. Replace `dialog' member with a `page' member.
+ Remove `toplevel_notebook' member.
+ (init_widgets): Renamed from `cal_prefs_dialog_init_widgets'.
+ Just get a DialogData.
+ (get_widgets): Get a DialogData pointer.
+ (cal_prefs_dialog_destroy): Removed.
+ (config_control_destroy_callback): New, signal handler for
+ ::destroy for ConfigControl.
+ (cal_prefs_dialog_new): Create a new DialogData, connect all the
+ signal handlers.
+ (create_time_edit): Renamed from
+ `cal_prefs_dialog_create_time_edit'.
+ (cal_prefs_dialog_show): Removed.
+ (cal_prefs_dialog_button_clicked): Removed.
+ (show_task_list_config): Get a DialogData.
+ (show_config): Renamed from `cal_prefs_dialog_show_config'.
+ Likewise.
+ (update_task_list_config): Likewise.
+ (update_config): Renamed from
+ `cal_prefs_dialog_update_config'. Likewise.
+ (color_set_callback): New callback, makes the dialog report
+ changes when the setting in any of the color widgets is changed.
+ (widget_changed_callback): New callback, makes the dialog report
+ changes when any of the widgets changes status.
+ (connect_changed): New utility function to connect this callback
+ to all the widgets.
+ (setup_widgets): Connect all the widgets.
+ (cal_prefs_dialog_new): Call `setup_widgets'.
+
+ * gui/config-control-factory.c: New.
+ * gui/config-control-factory.h: New.
+
+ * gui/GNOME_Evolution_Calendar.oaf.in: Add
+ OAFIID:GNOME_Evolution_Calendar_ConfigControl and
+ OAFIID:GNOME_Evolution_Calendar_ConfigControlFactory.
+
2002-03-06 Rodrigo Moya <rodrigo@ximian.com>
Should fix #21240
diff --git a/calendar/gui/GNOME_Evolution_Calendar.oaf.in b/calendar/gui/GNOME_Evolution_Calendar.oaf.in
index b69b6034c8..0452964469 100644
--- a/calendar/gui/GNOME_Evolution_Calendar.oaf.in
+++ b/calendar/gui/GNOME_Evolution_Calendar.oaf.in
@@ -158,4 +158,33 @@
_value="Factory to centralize calendar component editor dialogs"/>
</oaf_server>
+<oaf_server iid="OAFIID:GNOME_Evolution_Calendar_ConfigControlFactory"
+ type="exe"
+ location="evolution-calendar">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/ObjectFactory:1.0"/>
+ </oaf_attribute>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:GNOME_Evolution_Calendar_ConfigControl"
+ type="factory"
+ location="OAFIID:GNOME_Evolution_Calendar_ConfigControlFactory">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/Evolution/ConfigControl:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="evolution:config_item:title" type="string"
+ _value="Calendar Settings"/>
+
+ <oaf_attribute name="evolution:config_item:description" type="string"
+ _value="This page can be used to configure your calendar settings"/>
+
+ <oaf_attribute name="description" type="string"
+ _value="Configuration control for the Evolution Calendar."/>
+
+</oaf_server>
+
</oaf_info>
diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am
index 39c582c8bd..fdef37a9f7 100644
--- a/calendar/gui/Makefile.am
+++ b/calendar/gui/Makefile.am
@@ -87,6 +87,8 @@ evolution_calendar_SOURCES = \
comp-editor-factory.h \
comp-util.c \
comp-util.h \
+ config-control-factory.c \
+ config-control-factory.h \
control-factory.c \
control-factory.h \
component-factory.c \
diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c
index efbcaf44a6..b72f6b4cdb 100644
--- a/calendar/gui/calendar-commands.c
+++ b/calendar/gui/calendar-commands.c
@@ -59,9 +59,6 @@
/* A list of all of the calendars started */
static GList *all_calendars = NULL;
-/* We have one global preferences dialog. */
-static CalPrefsDialog *preferences_dialog = NULL;
-
/* Focusing information for the calendar view. We have to keep track of this
* ourselves because with Bonobo controls, we may get unpaired focus_out events.
*/
@@ -290,15 +287,6 @@ show_month_view_clicked (BonoboUIComponent *uic, gpointer data, const char *path
static void
-settings_cmd (BonoboUIComponent *uic, gpointer data, const char *path)
-{
- if (!preferences_dialog)
- preferences_dialog = cal_prefs_dialog_new (CAL_PREFS_DIALOG_PAGE_CALENDAR);
- else
- cal_prefs_dialog_show (preferences_dialog, CAL_PREFS_DIALOG_PAGE_CALENDAR);
-}
-
-static void
cut_cmd (BonoboUIComponent *uic, gpointer data, const gchar *path)
{
GnomeCalendar *gcal;
@@ -684,8 +672,6 @@ static BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("CalendarNewEvent", new_event_cb),
BONOBO_UI_VERB ("CalendarNewTask", new_task_cb),
- BONOBO_UI_VERB ("CalendarSettings", settings_cmd),
-
BONOBO_UI_VERB ("Cut", cut_cmd),
BONOBO_UI_VERB ("Copy", copy_cmd),
BONOBO_UI_VERB ("Paste", paste_cmd),
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index b4fde12177..c601011250 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -36,6 +36,7 @@
#include "calendar-offline-handler.h"
#include "component-factory.h"
#include "tasks-control-factory.h"
+#include "config-control-factory.h"
#include "control-factory.h"
#include "calendar-config.h"
#include "tasks-control.h"
@@ -487,6 +488,8 @@ owner_set_cb (EvolutionShellComponent *shell_component,
shells = g_list_append (shells, shell_component);
global_shell_client = shell_client;
+
+ config_control_factory_register (bonobo_object_corba_objref (BONOBO_OBJECT (shell_client)));
}
static void
diff --git a/calendar/gui/component-factory.c b/calendar/gui/component-factory.c
index b4fde12177..c601011250 100644
--- a/calendar/gui/component-factory.c
+++ b/calendar/gui/component-factory.c
@@ -36,6 +36,7 @@
#include "calendar-offline-handler.h"
#include "component-factory.h"
#include "tasks-control-factory.h"
+#include "config-control-factory.h"
#include "control-factory.h"
#include "calendar-config.h"
#include "tasks-control.h"
@@ -487,6 +488,8 @@ owner_set_cb (EvolutionShellComponent *shell_component,
shells = g_list_append (shells, shell_component);
global_shell_client = shell_client;
+
+ config_control_factory_register (bonobo_object_corba_objref (BONOBO_OBJECT (shell_client)));
}
static void
diff --git a/calendar/gui/config-control-factory.c b/calendar/gui/config-control-factory.c
new file mode 100644
index 0000000000..f2a9b48383
--- /dev/null
+++ b/calendar/gui/config-control-factory.c
@@ -0,0 +1,61 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/* config-control-factory.c
+ *
+ * Copyright (C) 2002 Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Ettore Perazzoli
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "config-control-factory.h"
+
+#include "dialogs/cal-prefs-dialog.h"
+
+#include <bonobo/bonobo-generic-factory.h>
+
+
+#define CONFIG_CONTROL_FACTORY_ID "OAFIID:GNOME_Evolution_Calendar_ConfigControlFactory"
+static BonoboGenericFactory *generic_factory = NULL;
+
+
+static BonoboObject *
+factory_fn (BonoboGenericFactory *generic_factory,
+ void *data)
+{
+ EvolutionConfigControl *config_control;
+
+ config_control = cal_prefs_dialog_new ();
+
+ return BONOBO_OBJECT (config_control);
+}
+
+gboolean
+config_control_factory_register (GNOME_Evolution_Shell shell)
+{
+ generic_factory = bonobo_generic_factory_new (CONFIG_CONTROL_FACTORY_ID,
+ factory_fn, shell);
+
+ if (generic_factory == NULL) {
+ g_warning ("Cannot register %s", CONFIG_CONTROL_FACTORY_ID);
+ return FALSE;
+ }
+
+ return TRUE;
+}
diff --git a/calendar/gui/config-control-factory.h b/calendar/gui/config-control-factory.h
new file mode 100644
index 0000000000..b0ff927fa9
--- /dev/null
+++ b/calendar/gui/config-control-factory.h
@@ -0,0 +1,30 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/* config-control-factory.h
+ *
+ * Copyright (C) 2002 Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Ettore Perazzoli
+ */
+
+#ifndef CONFIG_CONTROL_FACTORY_H
+#define CONFIG_CONTROL_FACTORY_H
+
+#include "Evolution.h"
+
+gboolean config_control_factory_register (GNOME_Evolution_Shell shell);
+
+#endif
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c
index fc8d7b0c91..2e61fc0bd5 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.c
+++ b/calendar/gui/dialogs/cal-prefs-dialog.c
@@ -1,11 +1,11 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * Author :
+ * Authors :
* Damon Chaplin <damon@ximian.com>
+ * Ettore Perazzoli <ettore@ximian.com>
*
- * Copyright 2000, Ximian, Inc.
- * Copyright 2000, Ximian, Inc.
+ * Copyright 2000, 2001, 2002 Ximian, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -27,26 +27,28 @@
* to edit the calendar preference settings.
*/
+#ifdef HAVE_CONFIG_H
#include <config.h>
-#include <libgnomeui/gnome-color-picker.h>
-#include <glade/glade.h>
-#include <gal/util/e-util.h>
-#include <e-util/e-dialog-widgets.h>
-#include <widgets/misc/e-dateedit.h>
+#endif
+
#include "../e-timezone-entry.h"
#include "cal-prefs-dialog.h"
#include "../calendar-config.h"
#include "../calendar-commands.h"
#include "../e-tasks.h"
+#include <libgnomeui/gnome-color-picker.h>
+#include <glade/glade.h>
+#include <gal/util/e-util.h>
+#include <e-util/e-dialog-widgets.h>
+#include <widgets/misc/e-dateedit.h>
+
-struct _CalPrefsDialogPrivate {
+struct _DialogData {
/* Glade XML data */
GladeXML *xml;
- GtkWidget *dialog;
-
- GtkWidget *toplevel_notebook;
+ GtkWidget *page;
GtkWidget *timezone;
GtkWidget *working_days[7];
@@ -74,6 +76,7 @@ struct _CalPrefsDialogPrivate {
GtkWidget *default_reminder_interval;
GtkWidget *default_reminder_units;
};
+typedef struct _DialogData DialogData;
static const int week_start_day_map[] = {
1, 2, 3, 4, 5, 6, 0, -1
@@ -93,217 +96,242 @@ static const int default_reminder_units_map[] = {
};
-static void cal_prefs_dialog_class_init (CalPrefsDialogClass *class);
-static void cal_prefs_dialog_init (CalPrefsDialog *prefs);
-static gboolean get_widgets (CalPrefsDialog *prefs);
-static void cal_prefs_dialog_destroy (GtkObject *object);
-static void cal_prefs_dialog_init_widgets (CalPrefsDialog *prefs);
-static void cal_prefs_dialog_button_clicked (GtkWidget *dialog,
- gint button,
- CalPrefsDialog *prefs);
-static void cal_prefs_dialog_use_24_hour_toggled(GtkWidget *button,
- CalPrefsDialog *prefs);
-static void cal_prefs_dialog_hide_completed_tasks_toggled (GtkWidget *button,
- CalPrefsDialog *prefs);
-static void cal_prefs_dialog_show_config (CalPrefsDialog *prefs);
-static void cal_prefs_dialog_update_config (CalPrefsDialog *prefs);
+static gboolean get_widgets (DialogData *data);
-GtkWidget* cal_prefs_dialog_create_time_edit (void);
+static void widget_changed_callback (GtkWidget *, void *data);
+static void connect_changed (GtkWidget *widget, const char *signal_name, EvolutionConfigControl *config_control);
+static void setup_changes (DialogData *data, EvolutionConfigControl *config_control);
-static GtkObjectClass *parent_class;
+static void init_widgets (DialogData *data);
+static void show_config (DialogData *data);
+static void update_config (DialogData *dialog_data);
-E_MAKE_TYPE (cal_prefs_dialog, "CalPrefsDialog", CalPrefsDialog,
- cal_prefs_dialog_class_init, cal_prefs_dialog_init,
- GTK_TYPE_OBJECT)
+static void config_control_apply_callback (EvolutionConfigControl *config_control, void *data);
+static void config_control_destroy_callback (GtkObject *object, void *data);
+static void cal_prefs_dialog_use_24_hour_toggled(GtkWidget *button, void *data);
+static void cal_prefs_dialog_hide_completed_tasks_toggled (GtkWidget *button, void *data);
-static void
-cal_prefs_dialog_class_init (CalPrefsDialogClass *class)
+GtkWidget *cal_prefs_dialog_create_time_edit (void);
+
+
+/**
+ * cal_prefs_dialog_new:
+ *
+ * Creates a new #CalPrefsDialog.
+ *
+ * Return value: a new #CalPrefsDialog.
+ **/
+EvolutionConfigControl *
+cal_prefs_dialog_new (void)
{
- GtkObjectClass *object_class;
+ DialogData *dialog_data;
+ EvolutionConfigControl *config_control;
- object_class = (GtkObjectClass *) class;
+ dialog_data = g_new0 (DialogData, 1);
- parent_class = gtk_type_class (GTK_TYPE_OBJECT);
+ /* Load the content widgets */
- object_class->destroy = cal_prefs_dialog_destroy;
-}
+ dialog_data->xml = glade_xml_new (EVOLUTION_GLADEDIR "/cal-prefs-dialog.glade", NULL);
+ if (!dialog_data->xml) {
+ g_message ("cal_prefs_dialog_construct(): Could not load the Glade XML file!");
+ return NULL;
+ }
+
+ if (!get_widgets (dialog_data)) {
+ g_message ("cal_prefs_dialog_construct(): Could not find all widgets in the XML file!");
+ return NULL;
+ }
+
+ init_widgets (dialog_data);
+ show_config (dialog_data);
+
+ gtk_widget_ref (dialog_data->page);
+ gtk_container_remove (GTK_CONTAINER (dialog_data->page->parent), dialog_data->page);
+ config_control = evolution_config_control_new (dialog_data->page);
+ gtk_widget_unref (dialog_data->page);
+ gtk_signal_connect (GTK_OBJECT (config_control), "apply",
+ GTK_SIGNAL_FUNC (config_control_apply_callback), dialog_data);
+ gtk_signal_connect (GTK_OBJECT (config_control), "destroy",
+ GTK_SIGNAL_FUNC (config_control_destroy_callback), dialog_data);
+
+ setup_changes (dialog_data, config_control);
+
+ return config_control;
+}
static void
-cal_prefs_dialog_init (CalPrefsDialog *prefs)
+widget_changed_callback (GtkWidget *widget,
+ void *data)
{
- CalPrefsDialogPrivate *priv;
+ EvolutionConfigControl *config_control;
- priv = g_new0 (CalPrefsDialogPrivate, 1);
- prefs->priv = priv;
+ config_control = EVOLUTION_CONFIG_CONTROL (data);
+ evolution_config_control_changed (config_control);
}
-
-/**
- * cal_prefs_dialog_new:
- * @page: Page to show when the dialog is popped up.
- *
- * Creates a new #CalPrefsDialog.
- *
- * Return value: a new #CalPrefsDialog.
- **/
-CalPrefsDialog *
-cal_prefs_dialog_new (CalPrefsDialogPage page)
+/* ^*&%!!#! GnomeColorPicker. */
+static void
+color_set_callback (GnomeColorPicker *cp,
+ guint r,
+ guint g,
+ guint b,
+ guint a,
+ void *data)
{
- CalPrefsDialog *prefs;
+ EvolutionConfigControl *config_control;
- prefs = CAL_PREFS_DIALOG (gtk_type_new (cal_prefs_dialog_get_type ()));
- return cal_prefs_dialog_construct (prefs, page);
-}
+ config_control = EVOLUTION_CONFIG_CONTROL (data);
+ evolution_config_control_changed (config_control);
+}
-/**
- * cal_prefs_dialog_construct:
- * @prefs: A #CalPrefsDialog.
- * @page: Page to show when the dialog is popped up.
- *
- * Constructs a task editor by loading its Glade XML file.
- *
- * Return value: The same object as @prefs, or NULL if the widgets could not be
- * created. In the latter case, the task editor will automatically be
- * destroyed.
- **/
-CalPrefsDialog *
-cal_prefs_dialog_construct (CalPrefsDialog *prefs, CalPrefsDialogPage page)
+static void
+connect_changed (GtkWidget *widget,
+ const char *signal_name,
+ EvolutionConfigControl *config_control)
{
- CalPrefsDialogPrivate *priv;
+ gtk_signal_connect (GTK_OBJECT (widget), signal_name,
+ GTK_SIGNAL_FUNC (widget_changed_callback), config_control);
+}
- g_return_val_if_fail (IS_CAL_PREFS_DIALOG (prefs), NULL);
+static void
+setup_changes (DialogData *dialog_data,
+ EvolutionConfigControl *config_control)
+{
+ int i;
- priv = prefs->priv;
+ for (i = 0; i < 7; i ++)
+ connect_changed (dialog_data->working_days[i], "toggled", config_control);
- /* Load the content widgets */
+ connect_changed (dialog_data->timezone, "changed", config_control);
- priv->xml = glade_xml_new (EVOLUTION_GLADEDIR "/cal-prefs-dialog.glade", NULL);
- if (!priv->xml) {
- g_message ("cal_prefs_dialog_construct(): Could not load the Glade XML file!");
- goto error;
- }
+ connect_changed (dialog_data->start_of_day, "changed", config_control);
+ connect_changed (dialog_data->end_of_day, "changed", config_control);
- if (!get_widgets (prefs)) {
- g_message ("cal_prefs_dialog_construct(): Could not find all widgets in the XML file!");
- goto error;
- }
+ connect_changed (GTK_OPTION_MENU (dialog_data->week_start_day)->menu, "selection_done", config_control);
- cal_prefs_dialog_init_widgets (prefs);
+ connect_changed (dialog_data->use_12_hour, "toggled", config_control);
- cal_prefs_dialog_show_config (prefs);
+ connect_changed (GTK_OPTION_MENU (dialog_data->time_divisions)->menu, "selection_done", config_control);
- cal_prefs_dialog_show (prefs, page);
+ connect_changed (dialog_data->show_end_times, "toggled", config_control);
+ connect_changed (dialog_data->compress_weekend, "toggled", config_control);
+ connect_changed (dialog_data->dnav_show_week_no, "toggled", config_control);
- return prefs;
+ connect_changed (dialog_data->tasks_hide_completed_checkbutton, "toggled", config_control);
+ connect_changed (dialog_data->tasks_hide_completed_spinbutton, "changed", config_control);
+ connect_changed (GTK_OPTION_MENU (dialog_data->tasks_hide_completed_spinbutton)->menu, "selection_done", config_control);
- error:
+ connect_changed (dialog_data->confirm_delete, "toggled", config_control);
+ connect_changed (dialog_data->default_reminder, "toggled", config_control);
+ connect_changed (dialog_data->default_reminder_interval, "changed", config_control);
+ connect_changed (GTK_OPTION_MENU (dialog_data->default_reminder_units)->menu, "selection_done", config_control);
- gtk_object_unref (GTK_OBJECT (prefs));
- return NULL;
+ /* These use GnomeColorPicker so we have to use a different signal. */
+ gtk_signal_connect (GTK_OBJECT (dialog_data->tasks_due_today_color), "color_set",
+ GTK_SIGNAL_FUNC (color_set_callback), config_control);
+ gtk_signal_connect (GTK_OBJECT (dialog_data->tasks_overdue_color), "color_set",
+ GTK_SIGNAL_FUNC (color_set_callback), config_control);
}
-
/* Gets the widgets from the XML file and returns if they are all available.
*/
static gboolean
-get_widgets (CalPrefsDialog *prefs)
+get_widgets (DialogData *data)
{
- CalPrefsDialogPrivate *priv;
-
- priv = prefs->priv;
-
-#define GW(name) glade_xml_get_widget (priv->xml, name)
+#define GW(name) glade_xml_get_widget (data->xml, name)
- priv->dialog = GW ("cal-prefs-dialog");
-
- priv->toplevel_notebook = GW ("toplevel-notebook");
+ data->page = GW ("toplevel-notebook");
/* The indices must be 0 (Sun) to 6 (Sat). */
- priv->working_days[0] = GW ("sun_button");
- priv->working_days[1] = GW ("mon_button");
- priv->working_days[2] = GW ("tue_button");
- priv->working_days[3] = GW ("wed_button");
- priv->working_days[4] = GW ("thu_button");
- priv->working_days[5] = GW ("fri_button");
- priv->working_days[6] = GW ("sat_button");
-
- priv->timezone = GW ("timezone");
- priv->week_start_day = GW ("first_day_of_week");
- priv->start_of_day = GW ("start_of_day");
- priv->end_of_day = GW ("end_of_day");
- priv->use_12_hour = GW ("use_12_hour");
- priv->use_24_hour = GW ("use_24_hour");
- priv->time_divisions = GW ("time_divisions");
- priv->show_end_times = GW ("show_end_times");
- priv->compress_weekend = GW ("compress_weekend");
- priv->dnav_show_week_no = GW ("dnav_show_week_no");
-
- priv->tasks_due_today_color = GW ("tasks_due_today_color");
- priv->tasks_overdue_color = GW ("tasks_overdue_color");
-
- priv->tasks_hide_completed_checkbutton = GW ("tasks-hide-completed-checkbutton");
- priv->tasks_hide_completed_spinbutton = GW ("tasks-hide-completed-spinbutton");
- priv->tasks_hide_completed_optionmenu = GW ("tasks-hide-completed-optionmenu");
-
- priv->confirm_delete = GW ("confirm-delete");
- priv->default_reminder = GW ("default-reminder");
- priv->default_reminder_interval = GW ("default-reminder-interval");
- priv->default_reminder_units = GW ("default-reminder-units");
+ data->working_days[0] = GW ("sun_button");
+ data->working_days[1] = GW ("mon_button");
+ data->working_days[2] = GW ("tue_button");
+ data->working_days[3] = GW ("wed_button");
+ data->working_days[4] = GW ("thu_button");
+ data->working_days[5] = GW ("fri_button");
+ data->working_days[6] = GW ("sat_button");
+
+ data->timezone = GW ("timezone");
+ data->week_start_day = GW ("first_day_of_week");
+ data->start_of_day = GW ("start_of_day");
+ data->end_of_day = GW ("end_of_day");
+ data->use_12_hour = GW ("use_12_hour");
+ data->use_24_hour = GW ("use_24_hour");
+ data->time_divisions = GW ("time_divisions");
+ data->show_end_times = GW ("show_end_times");
+ data->compress_weekend = GW ("compress_weekend");
+ data->dnav_show_week_no = GW ("dnav_show_week_no");
+
+ data->tasks_due_today_color = GW ("tasks_due_today_color");
+ data->tasks_overdue_color = GW ("tasks_overdue_color");
+
+ data->tasks_hide_completed_checkbutton = GW ("tasks-hide-completed-checkbutton");
+ data->tasks_hide_completed_spinbutton = GW ("tasks-hide-completed-spinbutton");
+ data->tasks_hide_completed_optionmenu = GW ("tasks-hide-completed-optionmenu");
+
+ data->confirm_delete = GW ("confirm-delete");
+ data->default_reminder = GW ("default-reminder");
+ data->default_reminder_interval = GW ("default-reminder-interval");
+ data->default_reminder_units = GW ("default-reminder-units");
#undef GW
- return (priv->dialog
- && priv->toplevel_notebook
- && priv->timezone
- && priv->working_days[0]
- && priv->working_days[1]
- && priv->working_days[2]
- && priv->working_days[3]
- && priv->working_days[4]
- && priv->working_days[5]
- && priv->working_days[6]
- && priv->week_start_day
- && priv->start_of_day
- && priv->end_of_day
- && priv->use_12_hour
- && priv->use_24_hour
- && priv->time_divisions
- && priv->show_end_times
- && priv->compress_weekend
- && priv->dnav_show_week_no
- && priv->tasks_due_today_color
- && priv->tasks_overdue_color
- && priv->tasks_hide_completed_checkbutton
- && priv->tasks_hide_completed_spinbutton
- && priv->tasks_hide_completed_optionmenu
- && priv->confirm_delete
- && priv->default_reminder
- && priv->default_reminder_interval
- && priv->default_reminder_units);
+ return (data->page
+ && data->timezone
+ && data->working_days[0]
+ && data->working_days[1]
+ && data->working_days[2]
+ && data->working_days[3]
+ && data->working_days[4]
+ && data->working_days[5]
+ && data->working_days[6]
+ && data->week_start_day
+ && data->start_of_day
+ && data->end_of_day
+ && data->use_12_hour
+ && data->use_24_hour
+ && data->time_divisions
+ && data->show_end_times
+ && data->compress_weekend
+ && data->dnav_show_week_no
+ && data->tasks_due_today_color
+ && data->tasks_overdue_color
+ && data->tasks_hide_completed_checkbutton
+ && data->tasks_hide_completed_spinbutton
+ && data->tasks_hide_completed_optionmenu
+ && data->confirm_delete
+ && data->default_reminder
+ && data->default_reminder_interval
+ && data->default_reminder_units);
}
static void
-cal_prefs_dialog_destroy (GtkObject *object)
+config_control_destroy_callback (GtkObject *object,
+ void *data)
{
- CalPrefsDialog *prefs;
- CalPrefsDialogPrivate *priv;
+ DialogData *dialog_data;
- g_return_if_fail (IS_CAL_PREFS_DIALOG (object));
+ dialog_data = (DialogData *) data;
- prefs = CAL_PREFS_DIALOG (object);
- priv = prefs->priv;
+ /* (Nothing to free in the struct.) */
+ g_free (dialog_data);
+}
- g_free (priv);
- prefs->priv = NULL;
+static void
+config_control_apply_callback (EvolutionConfigControl *control,
+ void *data)
+{
+ DialogData *dialog_data;
+
+ dialog_data = (DialogData *) data;
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+ update_config (dialog_data);
}
@@ -322,122 +350,49 @@ cal_prefs_dialog_create_time_edit (void)
}
-void
-cal_prefs_dialog_show (CalPrefsDialog *prefs, CalPrefsDialogPage page)
-{
- CalPrefsDialogPrivate *priv;
- int page_num;
-
- g_return_if_fail (IS_CAL_PREFS_DIALOG (prefs));
-
- priv = prefs->priv;
-
- /* If the dialog is already show just raise it, otherwise refresh the
- config settings and show it. */
- if (GTK_WIDGET_MAPPED (priv->dialog)) {
- gdk_window_raise (priv->dialog->window);
- } else {
- cal_prefs_dialog_show_config (prefs);
- gtk_widget_show (priv->dialog);
- }
-
- switch (page) {
- case CAL_PREFS_DIALOG_PAGE_CALENDAR:
- page_num = 0;
- break;
-
- case CAL_PREFS_DIALOG_PAGE_TASKS:
- page_num = 2;
- break;
-
- default:
- g_assert_not_reached ();
- return;
- }
-
- gtk_notebook_set_page (GTK_NOTEBOOK (priv->toplevel_notebook), page_num);
-}
-
-
/* Connects any necessary signal handlers. */
static void
-cal_prefs_dialog_init_widgets (CalPrefsDialog *prefs)
+init_widgets (DialogData *dialog_data)
{
- CalPrefsDialogPrivate *priv;
-
- priv = prefs->priv;
-
- gtk_signal_connect (GTK_OBJECT (priv->dialog), "clicked",
- GTK_SIGNAL_FUNC (cal_prefs_dialog_button_clicked),
- prefs);
-
- gtk_signal_connect (GTK_OBJECT (priv->use_24_hour), "toggled",
+ gtk_signal_connect (GTK_OBJECT (dialog_data->use_24_hour), "toggled",
GTK_SIGNAL_FUNC (cal_prefs_dialog_use_24_hour_toggled),
- prefs);
+ dialog_data);
- gtk_signal_connect (GTK_OBJECT (priv->tasks_hide_completed_checkbutton),
+ gtk_signal_connect (GTK_OBJECT (dialog_data->tasks_hide_completed_checkbutton),
"toggled",
GTK_SIGNAL_FUNC (cal_prefs_dialog_hide_completed_tasks_toggled),
- prefs);
+ dialog_data);
}
static void
-cal_prefs_dialog_button_clicked (GtkWidget *dialog,
- gint button,
- CalPrefsDialog *prefs)
+cal_prefs_dialog_use_24_hour_toggled (GtkWidget *button,
+ void *data)
{
- CalPrefsDialogPrivate *priv;
-
- g_return_if_fail (IS_CAL_PREFS_DIALOG (prefs));
-
- priv = prefs->priv;
-
- /* OK & Apply buttons update the config settings. */
- if (button == 0 || button == 1)
- cal_prefs_dialog_update_config (prefs);
-
- /* OK & Close buttons close the dialog. */
- if (button == 0 || button == 2)
- gtk_widget_hide (priv->dialog);
-
- /* FIXME: Handle button 3 (Help). */
-
-}
-
-
-static void
-cal_prefs_dialog_use_24_hour_toggled (GtkWidget *button,
- CalPrefsDialog *prefs)
-{
- CalPrefsDialogPrivate *priv;
+ DialogData *dialog_data;
gboolean use_24_hour;
- priv = prefs->priv;
+ dialog_data = (DialogData *) data;
- use_24_hour = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->use_24_hour));
+ use_24_hour = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog_data->use_24_hour));
- e_date_edit_set_use_24_hour_format (E_DATE_EDIT (priv->start_of_day),
- use_24_hour);
- e_date_edit_set_use_24_hour_format (E_DATE_EDIT (priv->end_of_day),
- use_24_hour);
+ e_date_edit_set_use_24_hour_format (E_DATE_EDIT (dialog_data->start_of_day), use_24_hour);
+ e_date_edit_set_use_24_hour_format (E_DATE_EDIT (dialog_data->end_of_day), use_24_hour);
}
static void
-cal_prefs_dialog_hide_completed_tasks_toggled (GtkWidget *button,
- CalPrefsDialog *prefs)
+cal_prefs_dialog_hide_completed_tasks_toggled (GtkWidget *button,
+ void *data)
{
- CalPrefsDialogPrivate *priv;
+ DialogData *dialog_data;
gboolean hide_completed_tasks;
- priv = prefs->priv;
+ dialog_data = (DialogData *) data;
- hide_completed_tasks = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->tasks_hide_completed_checkbutton));
+ hide_completed_tasks = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog_data->tasks_hide_completed_checkbutton));
- gtk_widget_set_sensitive (priv->tasks_hide_completed_spinbutton,
- hide_completed_tasks);
- gtk_widget_set_sensitive (priv->tasks_hide_completed_optionmenu,
- hide_completed_tasks);
+ gtk_widget_set_sensitive (dialog_data->tasks_hide_completed_spinbutton, hide_completed_tasks);
+ gtk_widget_set_sensitive (dialog_data->tasks_hide_completed_optionmenu, hide_completed_tasks);
}
/* Sets the color in a color picker from an X color spec */
@@ -462,117 +417,111 @@ set_color_picker (GtkWidget *picker, const char *spec)
/* Shows the current task list settings in the dialog */
static void
-show_task_list_config (CalPrefsDialog *prefs)
+show_task_list_config (DialogData *dialog_data)
{
- CalPrefsDialogPrivate *priv;
CalUnits units;
gboolean hide_completed_tasks;
- priv = prefs->priv;
-
- set_color_picker (priv->tasks_due_today_color, calendar_config_get_tasks_due_today_color ());
- set_color_picker (priv->tasks_overdue_color, calendar_config_get_tasks_overdue_color ());
+ set_color_picker (dialog_data->tasks_due_today_color, calendar_config_get_tasks_due_today_color ());
+ set_color_picker (dialog_data->tasks_overdue_color, calendar_config_get_tasks_overdue_color ());
/* Hide Completed Tasks. */
hide_completed_tasks = calendar_config_get_hide_completed_tasks ();
- e_dialog_toggle_set (priv->tasks_hide_completed_checkbutton,
+ e_dialog_toggle_set (dialog_data->tasks_hide_completed_checkbutton,
hide_completed_tasks);
/* Hide Completed Tasks Units. */
units = calendar_config_get_hide_completed_tasks_units ();
- e_dialog_option_menu_set (priv->tasks_hide_completed_optionmenu,
+ e_dialog_option_menu_set (dialog_data->tasks_hide_completed_optionmenu,
units, hide_completed_units_map);
/* Hide Completed Tasks Value. */
- e_dialog_spin_set (priv->tasks_hide_completed_spinbutton,
+ e_dialog_spin_set (dialog_data->tasks_hide_completed_spinbutton,
calendar_config_get_hide_completed_tasks_value ());
- gtk_widget_set_sensitive (priv->tasks_hide_completed_spinbutton,
+ gtk_widget_set_sensitive (dialog_data->tasks_hide_completed_spinbutton,
hide_completed_tasks);
- gtk_widget_set_sensitive (priv->tasks_hide_completed_optionmenu,
+ gtk_widget_set_sensitive (dialog_data->tasks_hide_completed_optionmenu,
hide_completed_tasks);
}
/* Shows the current config settings in the dialog. */
static void
-cal_prefs_dialog_show_config (CalPrefsDialog *prefs)
+show_config (DialogData *dialog_data)
{
- CalPrefsDialogPrivate *priv;
CalWeekdays working_days;
gint mask, day, week_start_day, time_divisions;
char *zone_name;
icaltimezone *zone;
gboolean sensitive;
- priv = prefs->priv;
-
/* Timezone. */
zone_name = calendar_config_get_timezone ();
zone = icaltimezone_get_builtin_timezone (zone_name);
- e_timezone_entry_set_timezone (E_TIMEZONE_ENTRY (priv->timezone),
+ e_timezone_entry_set_timezone (E_TIMEZONE_ENTRY (dialog_data->timezone),
zone);
/* Working Days. */
working_days = calendar_config_get_working_days ();
mask = 1 << 0;
for (day = 0; day < 7; day++) {
- e_dialog_toggle_set (priv->working_days[day], (working_days & mask) ? TRUE : FALSE);
+ e_dialog_toggle_set (dialog_data->working_days[day], (working_days & mask) ? TRUE : FALSE);
mask <<= 1;
}
/* Week Start Day. */
week_start_day = calendar_config_get_week_start_day ();
- e_dialog_option_menu_set (priv->week_start_day, week_start_day,
+ e_dialog_option_menu_set (dialog_data->week_start_day, week_start_day,
week_start_day_map);
/* Start of Day. */
- e_date_edit_set_time_of_day (E_DATE_EDIT (priv->start_of_day),
+ e_date_edit_set_time_of_day (E_DATE_EDIT (dialog_data->start_of_day),
calendar_config_get_day_start_hour (),
calendar_config_get_day_start_minute ());
/* End of Day. */
- e_date_edit_set_time_of_day (E_DATE_EDIT (priv->end_of_day),
+ e_date_edit_set_time_of_day (E_DATE_EDIT (dialog_data->end_of_day),
calendar_config_get_day_end_hour (),
calendar_config_get_day_end_minute ());
/* 12/24 Hour Format. */
if (calendar_config_get_24_hour_format ())
- e_dialog_toggle_set (priv->use_24_hour, TRUE);
+ e_dialog_toggle_set (dialog_data->use_24_hour, TRUE);
else
- e_dialog_toggle_set (priv->use_12_hour, TRUE);
+ e_dialog_toggle_set (dialog_data->use_12_hour, TRUE);
sensitive = calendar_config_locale_supports_12_hour_format ();
- gtk_widget_set_sensitive (priv->use_12_hour, sensitive);
- gtk_widget_set_sensitive (priv->use_24_hour, sensitive);
+ gtk_widget_set_sensitive (dialog_data->use_12_hour, sensitive);
+ gtk_widget_set_sensitive (dialog_data->use_24_hour, sensitive);
/* Time Divisions. */
time_divisions = calendar_config_get_time_divisions ();
- e_dialog_option_menu_set (priv->time_divisions, time_divisions,
+ e_dialog_option_menu_set (dialog_data->time_divisions, time_divisions,
time_division_map);
/* Show Appointment End Times. */
- e_dialog_toggle_set (priv->show_end_times, calendar_config_get_show_event_end ());
+ e_dialog_toggle_set (dialog_data->show_end_times, calendar_config_get_show_event_end ());
/* Compress Weekend. */
- e_dialog_toggle_set (priv->compress_weekend, calendar_config_get_compress_weekend ());
+ e_dialog_toggle_set (dialog_data->compress_weekend, calendar_config_get_compress_weekend ());
/* Date Navigator - Show Week Numbers. */
- e_dialog_toggle_set (priv->dnav_show_week_no, calendar_config_get_dnav_show_week_no ());
+ e_dialog_toggle_set (dialog_data->dnav_show_week_no, calendar_config_get_dnav_show_week_no ());
/* Task list */
- show_task_list_config (prefs);
+ show_task_list_config (dialog_data);
/* Other page */
- e_dialog_toggle_set (priv->confirm_delete, calendar_config_get_confirm_delete ());
+ e_dialog_toggle_set (dialog_data->confirm_delete, calendar_config_get_confirm_delete ());
- e_dialog_toggle_set (priv->default_reminder,
+ e_dialog_toggle_set (dialog_data->default_reminder,
calendar_config_get_use_default_reminder ());
- e_dialog_spin_set (priv->default_reminder_interval,
+ e_dialog_spin_set (dialog_data->default_reminder_interval,
calendar_config_get_default_reminder_interval ());
- e_dialog_option_menu_set (priv->default_reminder_units,
+ e_dialog_option_menu_set (dialog_data->default_reminder_units,
calendar_config_get_default_reminder_units (),
default_reminder_units_map);
}
@@ -594,89 +543,82 @@ spec_from_picker (GtkWidget *picker)
/* Updates the task list config values from the settings in the dialog */
static void
-update_task_list_config (CalPrefsDialog *prefs)
+update_task_list_config (DialogData *dialog_data)
{
- CalPrefsDialogPrivate *priv;
+ calendar_config_set_tasks_due_today_color (spec_from_picker (dialog_data->tasks_due_today_color));
+ calendar_config_set_tasks_overdue_color (spec_from_picker (dialog_data->tasks_overdue_color));
- priv = prefs->priv;
-
- calendar_config_set_tasks_due_today_color (spec_from_picker (priv->tasks_due_today_color));
- calendar_config_set_tasks_overdue_color (spec_from_picker (priv->tasks_overdue_color));
-
- calendar_config_set_hide_completed_tasks (e_dialog_toggle_get (priv->tasks_hide_completed_checkbutton));
- calendar_config_set_hide_completed_tasks_units (e_dialog_option_menu_get (priv->tasks_hide_completed_optionmenu, hide_completed_units_map));
- calendar_config_set_hide_completed_tasks_value (e_dialog_spin_get_int (priv->tasks_hide_completed_spinbutton));
+ calendar_config_set_hide_completed_tasks (e_dialog_toggle_get (dialog_data->tasks_hide_completed_checkbutton));
+ calendar_config_set_hide_completed_tasks_units (e_dialog_option_menu_get (dialog_data->tasks_hide_completed_optionmenu, hide_completed_units_map));
+ calendar_config_set_hide_completed_tasks_value (e_dialog_spin_get_int (dialog_data->tasks_hide_completed_spinbutton));
}
/* Updates the config values based on the settings in the dialog. */
static void
-cal_prefs_dialog_update_config (CalPrefsDialog *prefs)
+update_config (DialogData *dialog_data)
{
- CalPrefsDialogPrivate *priv;
CalWeekdays working_days;
gint mask, day, week_start_day, time_divisions, hour, minute;
icaltimezone *zone;
- priv = prefs->priv;
-
/* Timezone. */
- zone = e_timezone_entry_get_timezone (E_TIMEZONE_ENTRY (priv->timezone));
+ zone = e_timezone_entry_get_timezone (E_TIMEZONE_ENTRY (dialog_data->timezone));
calendar_config_set_timezone (icaltimezone_get_location (zone));
/* Working Days. */
working_days = 0;
mask = 1 << 0;
for (day = 0; day < 7; day++) {
- if (e_dialog_toggle_get (priv->working_days[day]))
+ if (e_dialog_toggle_get (dialog_data->working_days[day]))
working_days |= mask;
mask <<= 1;
}
calendar_config_set_working_days (working_days);
/* Week Start Day. */
- week_start_day = e_dialog_option_menu_get (priv->week_start_day, week_start_day_map);
+ week_start_day = e_dialog_option_menu_get (dialog_data->week_start_day, week_start_day_map);
calendar_config_set_week_start_day (week_start_day);
/* Start of Day. */
- e_date_edit_get_time_of_day (E_DATE_EDIT (priv->start_of_day), &hour, &minute);
+ e_date_edit_get_time_of_day (E_DATE_EDIT (dialog_data->start_of_day), &hour, &minute);
calendar_config_set_day_start_hour (hour);
calendar_config_set_day_start_minute (minute);
/* End of Day. */
- e_date_edit_get_time_of_day (E_DATE_EDIT (priv->end_of_day), &hour, &minute);
+ e_date_edit_get_time_of_day (E_DATE_EDIT (dialog_data->end_of_day), &hour, &minute);
calendar_config_set_day_end_hour (hour);
calendar_config_set_day_end_minute (minute);
/* 12/24 Hour Format. */
- calendar_config_set_24_hour_format (e_dialog_toggle_get (priv->use_24_hour));
+ calendar_config_set_24_hour_format (e_dialog_toggle_get (dialog_data->use_24_hour));
/* Time Divisions. */
- time_divisions = e_dialog_option_menu_get (priv->time_divisions, time_division_map);
+ time_divisions = e_dialog_option_menu_get (dialog_data->time_divisions, time_division_map);
calendar_config_set_time_divisions (time_divisions);
/* Show Appointment End Times. */
- calendar_config_set_show_event_end (e_dialog_toggle_get (priv->show_end_times));
+ calendar_config_set_show_event_end (e_dialog_toggle_get (dialog_data->show_end_times));
/* Compress Weekend. */
- calendar_config_set_compress_weekend (e_dialog_toggle_get (priv->compress_weekend));
+ calendar_config_set_compress_weekend (e_dialog_toggle_get (dialog_data->compress_weekend));
/* Date Navigator - Show Week Numbers. */
- calendar_config_set_dnav_show_week_no (e_dialog_toggle_get (priv->dnav_show_week_no));
+ calendar_config_set_dnav_show_week_no (e_dialog_toggle_get (dialog_data->dnav_show_week_no));
/* Task list */
- update_task_list_config (prefs);
+ update_task_list_config (dialog_data);
/* Other page */
- calendar_config_set_confirm_delete (e_dialog_toggle_get (priv->confirm_delete));
+ calendar_config_set_confirm_delete (e_dialog_toggle_get (dialog_data->confirm_delete));
- calendar_config_set_use_default_reminder (e_dialog_toggle_get (priv->default_reminder));
+ calendar_config_set_use_default_reminder (e_dialog_toggle_get (dialog_data->default_reminder));
calendar_config_set_default_reminder_interval (
- e_dialog_spin_get_int (priv->default_reminder_interval));
+ e_dialog_spin_get_int (dialog_data->default_reminder_interval));
calendar_config_set_default_reminder_units (
- e_dialog_option_menu_get (priv->default_reminder_units, default_reminder_units_map));
+ e_dialog_option_menu_get (dialog_data->default_reminder_units, default_reminder_units_map));
/* Done */
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.glade b/calendar/gui/dialogs/cal-prefs-dialog.glade
index 6a14f50ec3..20b2c5e363 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.glade
+++ b/calendar/gui/dialogs/cal-prefs-dialog.glade
@@ -15,6 +15,7 @@
<widget>
<class>GnomeDialog</class>
<name>cal-prefs-dialog</name>
+ <visible>False</visible>
<title>Calendar and Tasks Settings</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.h b/calendar/gui/dialogs/cal-prefs-dialog.h
index 063341c18a..ce3f46736c 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.h
+++ b/calendar/gui/dialogs/cal-prefs-dialog.h
@@ -30,46 +30,9 @@
#ifndef _CAL_PREFS_DIALOG_H_
#define _CAL_PREFS_DIALOG_H_
-#include <gtk/gtkobject.h>
-#include <libgnome/gnome-defs.h>
+#include "evolution-config-control.h"
-BEGIN_GNOME_DECLS
-
-
-#define CAL_PREFS_DIALOG(obj) GTK_CHECK_CAST (obj, cal_prefs_dialog_get_type (), CalPrefsDialog)
-#define CAL_PREFS_DIALOG_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, cal_prefs_dialog_get_type (), CalPrefsDialogClass)
-#define IS_CAL_PREFS_DIALOG(obj) GTK_CHECK_TYPE (obj, cal_prefs_dialog_get_type ())
-
-
-typedef struct _CalPrefsDialog CalPrefsDialog;
-typedef struct _CalPrefsDialogClass CalPrefsDialogClass;
-
-typedef struct _CalPrefsDialogPrivate CalPrefsDialogPrivate;
-
-typedef enum {
- CAL_PREFS_DIALOG_PAGE_CALENDAR,
- CAL_PREFS_DIALOG_PAGE_TASKS
-} CalPrefsDialogPage;
-
-struct _CalPrefsDialog
-{
- GtkObject object;
-
- /*< private >*/
- CalPrefsDialogPrivate *priv;
-};
-
-struct _CalPrefsDialogClass
-{
- GtkObjectClass parent_class;
-};
-
-
-GtkType cal_prefs_dialog_get_type (void);
-CalPrefsDialog* cal_prefs_dialog_construct (CalPrefsDialog *prefs, CalPrefsDialogPage page);
-CalPrefsDialog* cal_prefs_dialog_new (CalPrefsDialogPage page);
-
-void cal_prefs_dialog_show (CalPrefsDialog *prefs, CalPrefsDialogPage page);
+EvolutionConfigControl *cal_prefs_dialog_new (void);
END_GNOME_DECLS
diff --git a/calendar/gui/tasks-control.c b/calendar/gui/tasks-control.c
index 979a3abb6e..6ae2a45565 100644
--- a/calendar/gui/tasks-control.c
+++ b/calendar/gui/tasks-control.c
@@ -92,9 +92,6 @@ static void tasks_control_complete_cmd (BonoboUIComponent *uic,
static void tasks_control_expunge_cmd (BonoboUIComponent *uic,
gpointer data,
const char *path);
-static void tasks_control_settings_cmd (BonoboUIComponent *uic,
- gpointer data,
- const char *path);
static void tasks_control_print_cmd (BonoboUIComponent *uic,
gpointer data,
const char *path);
@@ -270,7 +267,6 @@ static BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("TasksDelete", tasks_control_delete_cmd),
BONOBO_UI_VERB ("TasksMarkComplete", tasks_control_complete_cmd),
BONOBO_UI_VERB ("TasksExpunge", tasks_control_expunge_cmd),
- BONOBO_UI_VERB ("TasksSettings", tasks_control_settings_cmd),
BONOBO_UI_VERB ("TasksPrint", tasks_control_print_cmd),
BONOBO_UI_VERB ("TasksPrintPreview", tasks_control_print_preview_cmd),
@@ -488,22 +484,6 @@ tasks_control_expunge_cmd (BonoboUIComponent *uic,
}
-/* Callback used for the tasks settings command */
-static void
-tasks_control_settings_cmd (BonoboUIComponent *uic, gpointer data, const char *path)
-{
- ETasks *tasks;
- static CalPrefsDialog *prefs_dialog = NULL;
-
- tasks = E_TASKS (data);
-
- if (!prefs_dialog)
- prefs_dialog = cal_prefs_dialog_new (CAL_PREFS_DIALOG_PAGE_TASKS);
- else
- cal_prefs_dialog_show (prefs_dialog, CAL_PREFS_DIALOG_PAGE_TASKS);
-}
-
-
static void
print_title (GnomePrintContext *pc,
double page_width, double page_height)