aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChenthill Palanisamy <pchen@src.gnome.org>2005-12-19 19:23:11 +0800
committerChenthill Palanisamy <pchen@src.gnome.org>2005-12-19 19:23:11 +0800
commitae8d6437906a7ae68c80546c54e1b27b5be3caa5 (patch)
tree3033ca208cc77504c1b6d3cf5917211d8203182a
parent58245bd32da1d2779a802b16a4e04d9fdae3b348 (diff)
downloadgsoc2013-evolution-ae8d6437906a7ae68c80546c54e1b27b5be3caa5.tar.gz
gsoc2013-evolution-ae8d6437906a7ae68c80546c54e1b27b5be3caa5.tar.zst
gsoc2013-evolution-ae8d6437906a7ae68c80546c54e1b27b5be3caa5.zip
Committing the calendar publishing patch.
svn path=/trunk/; revision=30876
-rw-r--r--ChangeLog6
-rw-r--r--calendar/ChangeLog20
-rw-r--r--calendar/gui/Makefile.am2
-rw-r--r--calendar/gui/calendar-commands.c8
-rw-r--r--calendar/gui/calendar-component.c41
-rw-r--r--calendar/gui/calendar-component.h2
-rw-r--r--calendar/gui/calendar-config-keys.h1
-rw-r--r--calendar/gui/calendar-config.c14
-rw-r--r--calendar/gui/dialogs/Makefile.am7
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.c1038
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.glade2158
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.h74
-rw-r--r--calendar/gui/e-cal-config.c24
-rw-r--r--calendar/gui/e-cal-config.h9
-rw-r--r--calendar/gui/e-calendar-view.c14
-rw-r--r--calendar/gui/main.c15
-rw-r--r--configure.in3
-rw-r--r--e-util/ChangeLog8
-rw-r--r--e-util/e-dialog-widgets.c58
-rw-r--r--e-util/e-dialog-widgets.h3
-rw-r--r--ui/ChangeLog6
-rw-r--r--ui/evolution-calendar.xml4
22 files changed, 1406 insertions, 2109 deletions
diff --git a/ChangeLog b/ChangeLog
index 3565d022c9..05ea39b5b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-19 Chenthill Palanisamy <pchenthill@novell.com>
+
+ committing for David Trowbridge <trowbrds cs colorado edu>
+
+ * configure.in: Added the plugin for publishing calendar.
+
2005-12-17 Tor Lillqvist <tml@novell.com>
* configure.in: Include libedataserver-$EDS_PACKAGE in the
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 5770c8914d..b00e872f14 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,4 +1,24 @@
2005-12-19 Chenthill Palanisamy <pchenthill@novell.com>
+
+ Committing for David Trowbridge <trowbrds cs colorado edu>
+
+ * gui/Makefile.am, gui/calendar-commands.c,
+ gui/calendar-componet.[hc], gui/calendar-config-keys.h,
+ gui/calendar-config.c, gui/e-calendar-view.c: remove references to the
+ old f/b publishing code
+
+ * gui/e-cal-config.[hc]: add 'prefs' target
+
+ * gui/main.c: remove calls to publishing, use new EConfig-based
+ preferences dialog
+
+ * gui/dialogs/Makefile.am, gui/dialogs/cal-prefs-dialog.[ch]: Convert
+ to use EConfig
+
+ * gui/dialogs/cal-prefs-dialog.glade: reorganize for EConfig and clean
+ up UI for better HIG compliance
+
+2005-12-19 Chenthill Palanisamy <pchenthill@novell.com>
Fixes #324195
* gui/e-cal-model.c: (e_cal_model_set_instance_times): If the
diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am
index 5b854fd7cc..c9f54cde03 100644
--- a/calendar/gui/Makefile.am
+++ b/calendar/gui/Makefile.am
@@ -178,8 +178,6 @@ libevolution_calendar_la_SOURCES = \
e-memos.h \
e-mini-calendar-config.c \
e-mini-calendar-config.h \
- e-pub-utils.c \
- e-pub-utils.h \
e-select-names-editable.c \
e-select-names-editable.h \
e-select-names-renderer.c \
diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c
index 3d960e9411..3cd8a52011 100644
--- a/calendar/gui/calendar-commands.c
+++ b/calendar/gui/calendar-commands.c
@@ -61,7 +61,6 @@
#include "print.h"
#include "dialogs/cal-prefs-dialog.h"
#include "itip-utils.h"
-#include "e-pub-utils.h"
#include "e-cal-list-view.h"
#include "evolution-shell-component-utils.h"
#include "e-util/e-icon-factory.h"
@@ -331,12 +330,6 @@ delete_occurrence_cmd (BonoboUIComponent *uic, gpointer data, const gchar *path)
}
static void
-publish_freebusy_cmd (BonoboUIComponent *uic, gpointer data, const gchar *path)
-{
- e_pub_publish (TRUE);
-}
-
-static void
purge_cmd (BonoboUIComponent *uic, gpointer data, const gchar *path)
{
GnomeCalendar *gcal;
@@ -616,7 +609,6 @@ static BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("ShowMonthView", show_month_view_clicked),
BONOBO_UI_VERB ("ShowListView", show_list_view_clicked),
- BONOBO_UI_VERB ("PublishFreeBusy", publish_freebusy_cmd),
BONOBO_UI_VERB ("CalendarPurge", purge_cmd),
BONOBO_UI_VERB_END
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index 38c6e978af..b2cd808f94 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -35,7 +35,6 @@
#include <libecal/e-cal-time-util.h>
#include <libedataserverui/e-source-selector.h>
#include <shell/e-user-creatable-items-handler.h>
-#include "e-pub-utils.h"
#include "e-calendar-view.h"
#include "calendar-config-keys.h"
#include "calendar-config.h"
@@ -739,25 +738,6 @@ config_primary_tasks_selection_changed_cb (GConfClient *client, guint id, GConfE
update_primary_task_selection (data);
}
-static gboolean
-init_calendar_publishing_cb (gpointer data)
-{
- /* Publish if it is time to publish again */
- e_pub_publish (FALSE);
-
- return FALSE;
-}
-
-static void
-conf_changed_callback (GConfClient *client,
- unsigned int connection_id,
- GConfEntry *entry,
- void *user_data)
-{
- /* publish config changed, so publish */
- e_pub_publish (TRUE);
-}
-
/* Evolution::Component CORBA methods. */
static void
impl_handleURI (PortableServer_Servant servant, const char *uri, CORBA_Environment *ev)
@@ -1676,25 +1656,4 @@ calendar_component_peek_source_list (CalendarComponent *component)
return component->priv->source_list;
}
-void
-calendar_component_init_publishing (void)
-{
- guint idle_id = 0;
- CalendarComponent *calendar_component;
- CalendarComponentPrivate *priv;
-
- calendar_component = calendar_component_peek ();
-
- priv = calendar_component->priv;
-
- gconf_client_add_dir (priv->gconf_client, CALENDAR_CONFIG_PUBLISH, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-
- priv->gconf_notify_id
- = gconf_client_notify_add (priv->gconf_client, CALENDAR_CONFIG_PUBLISH,
- (GConfClientNotifyFunc) conf_changed_callback, NULL,
- NULL, NULL);
-
- idle_id = g_idle_add ((GSourceFunc) init_calendar_publishing_cb, GINT_TO_POINTER (idle_id));
-}
-
BONOBO_TYPE_FUNC_FULL (CalendarComponent, GNOME_Evolution_Component, PARENT_TYPE, calendar_component)
diff --git a/calendar/gui/calendar-component.h b/calendar/gui/calendar-component.h
index 58c808b8ec..6b3c9a477c 100644
--- a/calendar/gui/calendar-component.h
+++ b/calendar/gui/calendar-component.h
@@ -61,7 +61,5 @@ const char *calendar_component_peek_base_directory (CalendarComponent *
const char *calendar_component_peek_config_directory (CalendarComponent *component);
ESourceList *calendar_component_peek_source_list (CalendarComponent *component);
-void calendar_component_init_publishing (void);
-
#endif /* _CALENDAR_COMPONENT_H_ */
diff --git a/calendar/gui/calendar-config-keys.h b/calendar/gui/calendar-config-keys.h
index b4ce0e2ce3..08706d293a 100644
--- a/calendar/gui/calendar-config-keys.h
+++ b/calendar/gui/calendar-config-keys.h
@@ -87,7 +87,6 @@ G_BEGIN_DECLS
#define CALENDAR_CONFIG_DEFAULT_REMINDER_UNITS CALENDAR_CONFIG_PREFIX "/other/default_reminder_units"
/* Free/Busy settings */
-#define CALENDAR_CONFIG_PUBLISH CALENDAR_CONFIG_PREFIX"/publish/uris"
#define CALENDAR_CONFIG_TEMPLATE CALENDAR_CONFIG_PREFIX"/publish/template"
G_END_DECLS
diff --git a/calendar/gui/calendar-config.c b/calendar/gui/calendar-config.c
index 5fcde9d5b9..e4a952a3ea 100644
--- a/calendar/gui/calendar-config.c
+++ b/calendar/gui/calendar-config.c
@@ -1307,20 +1307,6 @@ calendar_config_get_hide_completed_tasks_sexp (gboolean get_completed)
return sexp;
}
-GSList *
-calendar_config_get_free_busy (void)
-{
- return gconf_client_get_list (config, CALENDAR_CONFIG_PUBLISH,
- GCONF_VALUE_STRING, NULL);
-}
-
-void
-calendar_config_set_free_busy (GSList *url_list)
-{
- gconf_client_set_list (config, CALENDAR_CONFIG_PUBLISH,
- GCONF_VALUE_STRING, url_list, NULL);
-}
-
gchar *
calendar_config_get_free_busy_template (void)
{
diff --git a/calendar/gui/dialogs/Makefile.am b/calendar/gui/dialogs/Makefile.am
index f26320e597..71e7e1a61e 100644
--- a/calendar/gui/dialogs/Makefile.am
+++ b/calendar/gui/dialogs/Makefile.am
@@ -76,9 +76,7 @@ libcal_dialogs_la_SOURCES = \
task-details-page.c \
task-details-page.h \
task-page.c \
- task-page.h \
- url-editor-dialog.c \
- url-editor-dialog.h
+ task-page.h
glade_DATA = \
alarm-dialog.glade \
@@ -91,8 +89,7 @@ glade_DATA = \
recurrence-page.glade \
schedule-page.glade \
task-details-page.glade \
- task-page.glade \
- url-editor-dialog.glade
+ task-page.glade
CLEANFILES = $(BUILT_SOURCES)
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c
index 7a2222a9bd..0960033e41 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.c
+++ b/calendar/gui/dialogs/cal-prefs-dialog.c
@@ -4,8 +4,9 @@
* Authors :
* Damon Chaplin <damon@ximian.com>
* Ettore Perazzoli <ettore@ximian.com>
+ * David Trowbridge <trowbrds cs colorado edu>
*
- * Copyright 2000, 2001, 2002 Ximian, Inc.
+ * Copyright (C) 2005 Novell, Inc. (www.novell.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -18,38 +19,22 @@
*
* 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
- */
-
-/*
- * CalPrefsDialog - a GtkObject which handles a libglade-loaded dialog
- * to edit the calendar preference settings.
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+#include "../e-cal-config.h"
#include "../e-timezone-entry.h"
-#include "cal-prefs-dialog.h"
#include "../calendar-config.h"
-#include "url-editor-dialog.h"
-
-#include <gtk/gtk.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtksignal.h>
-#include <gtk/gtkoptionmenu.h>
-#include <gtk/gtktogglebutton.h>
-#include <libxml/tree.h>
-#include <string.h>
-#include <libgnome/gnome-i18n.h>
-#include <libgnomeui/gnome-color-picker.h>
-#include <glade/glade.h>
+#include "cal-prefs-dialog.h"
+#include <widgets/misc/e-dateedit.h>
#include <e-util/e-dialog-widgets.h>
-#include <e-util/e-util-private.h>
-#include <misc/e-dateedit.h>
-
+#include <libgnome/gnome-i18n.h>
+#include <string.h>
static const int week_start_day_map[] = {
1, 2, 3, 4, 5, 6, 0, -1
@@ -68,78 +53,44 @@ static const int default_reminder_units_map[] = {
CAL_MINUTES, CAL_HOURS, CAL_DAYS, -1
};
-static gboolean get_widgets (DialogData *data);
-
-static void setup_changes (DialogData *data);
-
-static void init_widgets (DialogData *data);
-static void show_config (DialogData *data);
-
-static void config_control_destroy_callback (DialogData *dialog_data, GObject *deadbeef);
-
-static void cal_prefs_dialog_url_add_clicked (GtkWidget *button, DialogData *dialog_data);
-static void cal_prefs_dialog_url_edit_clicked (GtkWidget *button, DialogData *dialog_data);
-static void cal_prefs_dialog_url_remove_clicked (GtkWidget *button, DialogData *dialog_data);
-static void cal_prefs_dialog_url_enable_clicked (GtkWidget *button, DialogData *dialog_data);
-static void cal_prefs_dialog_url_list_change (GtkTreeSelection *selection, DialogData *dialog_data);
-static void cal_prefs_dialog_url_list_enable_toggled (GtkCellRendererToggle *renderer, const char *path_string, DialogData *dialog_data);
-static void cal_prefs_dialog_url_list_double_click(GtkTreeView *treeview,
- GtkTreePath *path,
- GtkTreeViewColumn *column,
- DialogData *dialog_data);
-static void show_fb_config (DialogData *dialog_data);
+static GtkVBoxClass *parent_class = NULL;
GtkWidget *cal_prefs_dialog_create_time_edit (void);
-#define PREFS_WINDOW(dialog_data) GTK_WINDOW (gtk_widget_get_ancestor (GTK_WIDGET (dialog_data->page), GTK_TYPE_WINDOW))
-/**
- * cal_prefs_dialog_new:
- *
- * Creates a new #CalPrefsDialog.
- *
- * Return value: a new #CalPrefsDialog.
- **/
-EvolutionConfigControl *
-cal_prefs_dialog_new (void)
+
+static void
+calendar_prefs_dialog_finalize (GObject *obj)
{
- DialogData *dialog_data;
- EvolutionConfigControl *config_control;
- char *gladefile;
+ CalendarPrefsDialog *prefs = (CalendarPrefsDialog *) obj;
- dialog_data = g_new0 (DialogData, 1);
+ g_object_unref (prefs->gui);
- /* Load the content widgets */
+ ((GObjectClass *)(parent_class))->finalize (obj);
+}
- gladefile = g_build_filename (EVOLUTION_GLADEDIR,
- "cal-prefs-dialog.glade",
- NULL);
- dialog_data->xml = glade_xml_new (gladefile, NULL, NULL);
- g_free (gladefile);
+static void
+calendar_prefs_dialog_class_init (CalendarPrefsDialogClass *klass)
+{
+ GObjectClass *object_class;
- if (!dialog_data->xml) {
- g_message ("cal_prefs_dialog_construct(): Could not load the Glade XML file!");
- return NULL;
- }
+ object_class = (GObjectClass *) klass;
+ parent_class = g_type_class_ref (GTK_TYPE_VBOX);
- if (!get_widgets (dialog_data)) {
- g_message ("cal_prefs_dialog_construct(): Could not find all widgets in the XML file!");
- return NULL;
- }
+ object_class->finalize = calendar_prefs_dialog_finalize;
+}
- init_widgets (dialog_data);
- show_config (dialog_data);
+static void
+calendar_prefs_dialog_init (CalendarPrefsDialog *dialog)
+{
+}
- 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);
-
- g_object_weak_ref ((GObject *) config_control, (GWeakNotify) config_control_destroy_callback, dialog_data);
-
- setup_changes (dialog_data);
+static GtkWidget *
+eccp_widget_glade (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, void *data)
+{
+ CalendarPrefsDialog *prefs = data;
- return config_control;
+ return glade_xml_get_widget (prefs->gui, item->label);
}
/* Returns a pointer to a static string with an X color spec for the current
@@ -149,463 +100,247 @@ static const char *
spec_from_picker (GtkWidget *picker)
{
static char spec[8];
- guint8 r, g, b;
+ GdkColor color;
- gnome_color_picker_get_i8 (GNOME_COLOR_PICKER (picker), &r, &g, &b, NULL);
- g_snprintf (spec, sizeof (spec), "#%02x%02x%02x", r, g, b);
+ gtk_color_button_get_color (GTK_COLOR_BUTTON (picker), &color);
+ g_snprintf (spec, sizeof (spec), "#%02x%02x%02x", color.red, color.green, color.blue);
return spec;
}
static void
-working_days_changed (GtkWidget *widget, DialogData *dialog_data)
+working_days_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
CalWeekdays working_days = 0;
guint32 mask = 1;
int day;
-
+
for (day = 0; day < 7; day++) {
- if (e_dialog_toggle_get (dialog_data->working_days[day]))
+ if (e_dialog_toggle_get (prefs->working_days[day]))
working_days |= mask;
mask <<= 1;
}
-
+
calendar_config_set_working_days (working_days);
}
static void
-timezone_changed (GtkWidget *widget, DialogData *dialog_data)
+timezone_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
icaltimezone *zone;
-
- zone = e_timezone_entry_get_timezone (E_TIMEZONE_ENTRY (dialog_data->timezone));
+
+ zone = e_timezone_entry_get_timezone (E_TIMEZONE_ENTRY (prefs->timezone));
calendar_config_set_timezone (icaltimezone_get_location (zone));
}
static void
-start_of_day_changed (GtkWidget *widget, DialogData *dialog_data)
+start_of_day_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
int start_hour, start_minute, end_hour, end_minute;
EDateEdit *start, *end;
-
- start = E_DATE_EDIT (dialog_data->start_of_day);
- end = E_DATE_EDIT (dialog_data->end_of_day);
-
+
+ start = E_DATE_EDIT (prefs->start_of_day);
+ end = E_DATE_EDIT (prefs->end_of_day);
+
e_date_edit_get_time_of_day (start, &start_hour, &start_minute);
e_date_edit_get_time_of_day (end, &end_hour, &end_minute);
-
+
if ((start_hour > end_hour) || (start_hour == end_hour && start_minute > end_minute)) {
if (start_hour < 23)
e_date_edit_set_time_of_day (end, start_hour + 1, start_minute);
else
e_date_edit_set_time_of_day (end, 23, 59);
-
+
return;
}
-
+
calendar_config_set_day_start_hour (start_hour);
calendar_config_set_day_start_minute (start_minute);
}
static void
-end_of_day_changed (GtkWidget *widget, DialogData *dialog_data)
+end_of_day_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
int start_hour, start_minute, end_hour, end_minute;
EDateEdit *start, *end;
-
- start = E_DATE_EDIT (dialog_data->start_of_day);
- end = E_DATE_EDIT (dialog_data->end_of_day);
-
+
+ start = E_DATE_EDIT (prefs->start_of_day);
+ end = E_DATE_EDIT (prefs->end_of_day);
+
e_date_edit_get_time_of_day (start, &start_hour, &start_minute);
e_date_edit_get_time_of_day (end, &end_hour, &end_minute);
-
+
if ((end_hour < start_hour) || (end_hour == start_hour && end_minute < start_minute)) {
if (end_hour < 1)
e_date_edit_set_time_of_day (start, 0, 0);
else
e_date_edit_set_time_of_day (start, end_hour - 1, end_minute);
-
+
return;
}
-
+
calendar_config_set_day_end_hour (end_hour);
calendar_config_set_day_end_minute (end_minute);
}
-
static void
-week_start_day_changed (GtkWidget *widget, DialogData *dialog_data)
+week_start_day_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
int week_start_day;
-
- week_start_day = e_dialog_option_menu_get (dialog_data->week_start_day, week_start_day_map);
+
+ week_start_day = e_dialog_option_menu_get (prefs->week_start_day, week_start_day_map);
calendar_config_set_week_start_day (week_start_day);
}
static void
-use_24_hour_toggled (GtkToggleButton *toggle, DialogData *dialog_data)
+use_24_hour_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs)
{
gboolean use_24_hour;
-
+
use_24_hour = gtk_toggle_button_get_active (toggle);
-
- 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);
-
+
+ e_date_edit_set_use_24_hour_format (E_DATE_EDIT (prefs->start_of_day), use_24_hour);
+ e_date_edit_set_use_24_hour_format (E_DATE_EDIT (prefs->end_of_day), use_24_hour);
+
calendar_config_set_24_hour_format (use_24_hour);
}
static void
-time_divisions_changed (GtkWidget *widget, DialogData *dialog_data)
+time_divisions_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
int time_divisions;
-
- time_divisions = e_dialog_option_menu_get (dialog_data->time_divisions, time_division_map);
+
+ time_divisions = e_dialog_option_menu_get (prefs->time_divisions, time_division_map);
calendar_config_set_time_divisions (time_divisions);
}
static void
-show_end_times_toggled (GtkToggleButton *toggle, DialogData *dialog_data)
+show_end_times_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs)
{
calendar_config_set_show_event_end (gtk_toggle_button_get_active (toggle));
}
static void
-compress_weekend_toggled (GtkToggleButton *toggle, DialogData *dialog_data)
+compress_weekend_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs)
{
calendar_config_set_compress_weekend (gtk_toggle_button_get_active (toggle));
}
static void
-dnav_show_week_no_toggled (GtkToggleButton *toggle, DialogData *dialog_data)
+dnav_show_week_no_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs)
{
calendar_config_set_dnav_show_week_no (gtk_toggle_button_get_active (toggle));
}
static void
-hide_completed_tasks_toggled (GtkToggleButton *toggle, DialogData *dialog_data)
+hide_completed_tasks_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs)
{
gboolean hide;
-
+
hide = gtk_toggle_button_get_active (toggle);
-
- gtk_widget_set_sensitive (dialog_data->tasks_hide_completed_spinbutton, hide);
- gtk_widget_set_sensitive (dialog_data->tasks_hide_completed_optionmenu, hide);
-
+
+ gtk_widget_set_sensitive (prefs->tasks_hide_completed_interval, hide);
+ gtk_widget_set_sensitive (prefs->tasks_hide_completed_units, hide);
+
calendar_config_set_hide_completed_tasks (hide);
}
static void
-hide_completed_tasks_changed (GtkWidget *widget, DialogData *dialog_data)
+hide_completed_tasks_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
- calendar_config_set_hide_completed_tasks_value (e_dialog_spin_get_int (dialog_data->tasks_hide_completed_spinbutton));
+ calendar_config_set_hide_completed_tasks_value (e_dialog_spin_get_int (prefs->tasks_hide_completed_interval));
}
static void
-hide_completed_tasks_units_changed (GtkWidget *widget, DialogData *dialog_data)
+hide_completed_tasks_units_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
calendar_config_set_hide_completed_tasks_units (
- e_dialog_option_menu_get (dialog_data->tasks_hide_completed_optionmenu, hide_completed_units_map));
+ e_dialog_combo_box_get (prefs->tasks_hide_completed_units, hide_completed_units_map));
}
static void
-tasks_due_today_set_color (GnomeColorPicker *picker, guint r, guint g, guint b, guint a, DialogData *dialog_data)
+tasks_due_today_set_color (GtkColorButton *picker, guint r, guint g, guint b, guint a, CalendarPrefsDialog *prefs)
{
- calendar_config_set_tasks_due_today_color (spec_from_picker (dialog_data->tasks_due_today_color));
+ calendar_config_set_tasks_due_today_color (spec_from_picker (prefs->tasks_due_today_color));
}
static void
-tasks_overdue_set_color (GnomeColorPicker *picker, guint r, guint g, guint b, guint a, DialogData *dialog_data)
+tasks_overdue_set_color (GtkColorButton *picker, guint r, guint g, guint b, guint a, CalendarPrefsDialog *prefs)
{
- calendar_config_set_tasks_overdue_color (spec_from_picker (dialog_data->tasks_overdue_color));
+ calendar_config_set_tasks_overdue_color (spec_from_picker (prefs->tasks_overdue_color));
}
static void
-confirm_delete_toggled (GtkToggleButton *toggle, DialogData *dialog_data)
+confirm_delete_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs)
{
calendar_config_set_confirm_delete (gtk_toggle_button_get_active (toggle));
}
static void
-default_reminder_toggled (GtkToggleButton *toggle, DialogData *dialog_data)
+default_reminder_toggled (GtkToggleButton *toggle, CalendarPrefsDialog *prefs)
{
calendar_config_set_use_default_reminder (gtk_toggle_button_get_active (toggle));
}
static void
-default_reminder_interval_changed (GtkWidget *widget, DialogData *dialog_data)
+default_reminder_interval_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
calendar_config_set_default_reminder_interval (
- e_dialog_spin_get_int (dialog_data->default_reminder_interval));
+ e_dialog_spin_get_int (prefs->default_reminder_interval));
}
static void
-default_reminder_units_changed (GtkWidget *widget, DialogData *dialog_data)
+default_reminder_units_changed (GtkWidget *widget, CalendarPrefsDialog *prefs)
{
calendar_config_set_default_reminder_units (
- e_dialog_option_menu_get (dialog_data->default_reminder_units, default_reminder_units_map));
+ e_dialog_option_menu_get (prefs->default_reminder_units, default_reminder_units_map));
}
static void
-url_list_changed (DialogData *dialog_data)
-{
- GtkListStore *model = NULL;
- GSList *url_list = NULL;
- GtkTreeIter iter;
- gboolean valid;
-
- url_list = NULL;
-
- model = (GtkListStore *) gtk_tree_view_get_model (dialog_data->url_list);
-
- valid = gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter);
- while (valid) {
- EPublishUri *url;
- char *xml;
-
- gtk_tree_model_get ((GtkTreeModel *) model, &iter,
- URL_LIST_FREE_BUSY_URL_COLUMN, &url,
- -1);
-
- if ((xml = e_pub_uri_to_xml (url)))
- url_list = g_slist_append (url_list, xml);
-
- valid = gtk_tree_model_iter_next ((GtkTreeModel *) model, &iter);
- }
-
- calendar_config_set_free_busy (url_list);
-
- g_slist_free (url_list);
-}
-
-static void
-template_url_changed (GtkEntry *entry, DialogData *dialog_data)
+template_url_changed (GtkEntry *entry, CalendarPrefsDialog *prefs)
{
calendar_config_set_free_busy_template (gtk_entry_get_text (entry));
}
static void
-setup_changes (DialogData *dialog_data)
+setup_changes (CalendarPrefsDialog *prefs)
{
int i;
-
+
for (i = 0; i < 7; i ++)
- g_signal_connect (dialog_data->working_days[i], "toggled", G_CALLBACK (working_days_changed), dialog_data);
-
- g_signal_connect (dialog_data->timezone, "changed", G_CALLBACK (timezone_changed), dialog_data);
-
- g_signal_connect (dialog_data->start_of_day, "changed", G_CALLBACK (start_of_day_changed), dialog_data);
- g_signal_connect (dialog_data->end_of_day, "changed", G_CALLBACK (end_of_day_changed), dialog_data);
-
- g_signal_connect (GTK_OPTION_MENU (dialog_data->week_start_day)->menu, "selection-done",
- G_CALLBACK (week_start_day_changed), dialog_data);
-
- g_signal_connect (dialog_data->use_24_hour, "toggled", G_CALLBACK (use_24_hour_toggled), dialog_data);
-
- g_signal_connect (GTK_OPTION_MENU (dialog_data->time_divisions)->menu, "selection-done",
- G_CALLBACK (time_divisions_changed), dialog_data);
-
- g_signal_connect (dialog_data->show_end_times, "toggled", G_CALLBACK (show_end_times_toggled), dialog_data);
- g_signal_connect (dialog_data->compress_weekend, "toggled", G_CALLBACK (compress_weekend_toggled), dialog_data);
- g_signal_connect (dialog_data->dnav_show_week_no, "toggled", G_CALLBACK (dnav_show_week_no_toggled), dialog_data);
-
- g_signal_connect (dialog_data->tasks_hide_completed_checkbutton, "toggled",
- G_CALLBACK (hide_completed_tasks_toggled), dialog_data);
- g_signal_connect (dialog_data->tasks_hide_completed_spinbutton, "value-changed",
- G_CALLBACK (hide_completed_tasks_changed), dialog_data);
- g_signal_connect (GTK_OPTION_MENU (dialog_data->tasks_hide_completed_optionmenu)->menu, "selection-done",
- G_CALLBACK (hide_completed_tasks_units_changed), dialog_data);
- g_signal_connect (dialog_data->tasks_due_today_color, "color-set",
- G_CALLBACK (tasks_due_today_set_color), dialog_data);
- g_signal_connect (dialog_data->tasks_overdue_color, "color-set",
- G_CALLBACK (tasks_overdue_set_color), dialog_data);
-
- g_signal_connect (dialog_data->confirm_delete, "toggled", G_CALLBACK (confirm_delete_toggled), dialog_data);
- g_signal_connect (dialog_data->default_reminder, "toggled", G_CALLBACK (default_reminder_toggled), dialog_data);
- g_signal_connect (dialog_data->default_reminder_interval, "changed",
- G_CALLBACK (default_reminder_interval_changed), dialog_data);
- g_signal_connect (GTK_OPTION_MENU (dialog_data->default_reminder_units)->menu, "selection-done",
- G_CALLBACK (default_reminder_units_changed), dialog_data);
-
- g_signal_connect (dialog_data->template_url, "changed", G_CALLBACK (template_url_changed), dialog_data);
-}
+ g_signal_connect (G_OBJECT (prefs->working_days[i]), "toggled", G_CALLBACK (working_days_changed), prefs);
-/* Gets the widgets from the XML file and returns if they are all available.
- */
-static gboolean
-get_widgets (DialogData *data)
-{
-#define GW(name) glade_xml_get_widget (data->xml, name)
-
- data->page = GW ("toplevel-notebook");
-
- /* The indices must be 0 (Sun) to 6 (Sat). */
- 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");
- gtk_widget_show (data->start_of_day);
- data->end_of_day = GW ("end_of_day");
- gtk_widget_show (data->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");
-
- data->url_add = GW ("url_add");
- data->url_edit = GW ("url_edit");
- data->url_remove = GW ("url_remove");
- data->url_enable = GW ("url_enable");
- data->url_list = GTK_TREE_VIEW (GW ("url_list"));
-
- data->template_url = GW("template_url");
-
-#undef GW
-
- 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
- && data->url_add
- && data->url_edit
- && data->url_remove
- && data->url_enable
- && data->url_list);
-}
+ g_signal_connect (G_OBJECT (prefs->timezone), "changed", G_CALLBACK (timezone_changed), prefs);
+ g_signal_connect (G_OBJECT (prefs->start_of_day), "changed", G_CALLBACK (start_of_day_changed), prefs);
+ g_signal_connect (G_OBJECT (prefs->end_of_day), "changed", G_CALLBACK (end_of_day_changed), prefs);
-static void
-config_control_destroy_callback (DialogData *dialog_data, GObject *deadbeef)
-{
- g_object_unref (dialog_data->xml);
-
- g_free (dialog_data);
-}
+ g_signal_connect (G_OBJECT (prefs->week_start_day), "changed", G_CALLBACK (week_start_day_changed), prefs);
-/* Called by libglade to create our custom EDateEdit widgets. */
-GtkWidget *
-cal_prefs_dialog_create_time_edit (void)
-{
- GtkWidget *dedit;
+ g_signal_connect (G_OBJECT (prefs->use_24_hour), "toggled", G_CALLBACK (use_24_hour_toggled), prefs);
- dedit = e_date_edit_new ();
+ g_signal_connect (G_OBJECT (prefs->time_divisions), "changed", G_CALLBACK (time_divisions_changed), prefs);
- e_date_edit_set_use_24_hour_format (E_DATE_EDIT (dedit), calendar_config_get_24_hour_format ());
- e_date_edit_set_time_popup_range (E_DATE_EDIT (dedit), 0, 24);
- e_date_edit_set_show_date (E_DATE_EDIT (dedit), FALSE);
+ g_signal_connect (G_OBJECT (prefs->show_end_times), "toggled", G_CALLBACK (show_end_times_toggled), prefs);
+ g_signal_connect (G_OBJECT (prefs->compress_weekend), "toggled", G_CALLBACK (compress_weekend_toggled), prefs);
+ g_signal_connect (G_OBJECT (prefs->dnav_show_week_no), "toggled", G_CALLBACK (dnav_show_week_no_toggled), prefs);
- return dedit;
-}
+ g_signal_connect (G_OBJECT (prefs->tasks_hide_completed), "toggled",
+ G_CALLBACK (hide_completed_tasks_toggled), prefs);
+ g_signal_connect (G_OBJECT (prefs->tasks_hide_completed_interval), "value-changed",
+ G_CALLBACK (hide_completed_tasks_changed), prefs);
+ g_signal_connect (G_OBJECT (prefs->tasks_hide_completed_units), "changed", G_CALLBACK (hide_completed_tasks_units_changed), prefs);
+ g_signal_connect (G_OBJECT (prefs->tasks_due_today_color), "color-set",
+ G_CALLBACK (tasks_due_today_set_color), prefs);
+ g_signal_connect (G_OBJECT (prefs->tasks_overdue_color), "color-set",
+ G_CALLBACK (tasks_overdue_set_color), prefs);
+ g_signal_connect (G_OBJECT (prefs->confirm_delete), "toggled", G_CALLBACK (confirm_delete_toggled), prefs);
+ g_signal_connect (G_OBJECT (prefs->default_reminder), "toggled", G_CALLBACK (default_reminder_toggled), prefs);
+ g_signal_connect (G_OBJECT (prefs->default_reminder_interval), "changed",
+ G_CALLBACK (default_reminder_interval_changed), prefs);
+ g_signal_connect (G_OBJECT (prefs->default_reminder_units), "changed", G_CALLBACK (default_reminder_units_changed), prefs);
-/* Connects any necessary signal handlers. */
-static void
-init_widgets (DialogData *dialog_data)
-{
- GtkCellRenderer *renderer = NULL;
- GtkTreeSelection *selection;
- GtkListStore *model;
-
- dialog_data->url_editor = FALSE;
- dialog_data->url_editor_dlg =NULL;
-
- /* Free/Busy ... */
- g_signal_connect (dialog_data->url_add, "clicked",
- G_CALLBACK (cal_prefs_dialog_url_add_clicked),
- dialog_data);
-
- g_signal_connect (dialog_data->url_edit, "clicked",
- G_CALLBACK (cal_prefs_dialog_url_edit_clicked),
- dialog_data);
-
- g_signal_connect (dialog_data->url_remove, "clicked",
- G_CALLBACK (cal_prefs_dialog_url_remove_clicked),
- dialog_data);
-
- g_signal_connect (dialog_data->url_enable, "clicked",
- G_CALLBACK (cal_prefs_dialog_url_enable_clicked),
- dialog_data);
-
- /* Free/Busy Listview */
- renderer = gtk_cell_renderer_toggle_new();
- g_object_set ((GObject *) renderer, "activatable", TRUE, NULL);
-
- model = gtk_list_store_new (URL_LIST_N_COLUMNS, G_TYPE_BOOLEAN,
- G_TYPE_STRING, G_TYPE_POINTER);
-
- gtk_tree_view_set_model (dialog_data->url_list,
- (GtkTreeModel *) model);
-
- gtk_tree_view_insert_column_with_attributes (dialog_data->url_list, -1,
- _("Enabled"), renderer,
- "active",
- URL_LIST_ENABLED_COLUMN,
- NULL);
-
- g_signal_connect (renderer, "toggled",
- G_CALLBACK (cal_prefs_dialog_url_list_enable_toggled),
- dialog_data);
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (dialog_data->url_list, -1,
- _("Location"), renderer,
- "text",
- URL_LIST_LOCATION_COLUMN,
- NULL);
-
- selection = gtk_tree_view_get_selection ((GtkTreeView *) dialog_data->url_list);
- gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
- gtk_tree_view_set_headers_visible ((GtkTreeView *) dialog_data->url_list, TRUE);
-
- g_signal_connect (dialog_data->url_list, "row-activated",
- G_CALLBACK (cal_prefs_dialog_url_list_double_click),
- dialog_data);
- g_signal_connect (selection, "changed",
- G_CALLBACK (cal_prefs_dialog_url_list_change),
- dialog_data);
+ g_signal_connect (G_OBJECT (prefs->template_url), "changed", G_CALLBACK (template_url_changed), prefs);
}
/* Sets the color in a color picker from an X color spec */
@@ -617,360 +352,48 @@ set_color_picker (GtkWidget *picker, const char *spec)
if (!spec || !gdk_color_parse (spec, &color))
color.red = color.green = color.blue = 0;
- gnome_color_picker_set_i16 (GNOME_COLOR_PICKER (picker),
- color.red,
- color.green,
- color.blue,
- 65535);
-}
-
-static void
-cal_prefs_dialog_url_add_clicked (GtkWidget *button, DialogData *dialog_data)
-{
- EPublishUri *url = NULL;
- GtkTreeModel *model;
- GtkTreeIter iter;
- GtkTreeSelection *selection;
-
- model = gtk_tree_view_get_model (dialog_data->url_list);
- url = g_new0 (EPublishUri, 1);
- url->enabled = TRUE;
- url->location = "";
-
- if (!dialog_data->url_editor) {
- dialog_data->url_editor = url_editor_dialog_new (dialog_data,
- url);
-
- if (strcmp (url->location, "")) {
- gtk_list_store_append(GTK_LIST_STORE (model), &iter);
- gtk_list_store_set (GTK_LIST_STORE(model), &iter,
- URL_LIST_ENABLED_COLUMN,
- url->enabled,
- URL_LIST_LOCATION_COLUMN,
- g_strdup (url->location),
- URL_LIST_FREE_BUSY_URL_COLUMN, url,
- -1);
-
- url_list_changed (dialog_data);
-
- if (!GTK_WIDGET_SENSITIVE ((GtkWidget *) dialog_data->url_remove)) {
- selection = gtk_tree_view_get_selection ((GtkTreeView *) dialog_data->url_list);
- gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter);
- gtk_widget_set_sensitive ((GtkWidget*) dialog_data->url_remove, TRUE);
- gtk_tree_selection_select_iter (selection, &iter);
- }
- }
- dialog_data->url_editor = FALSE;
- dialog_data->url_editor_dlg = NULL;
- } else {
- gdk_window_raise (dialog_data->url_editor_dlg->window);
- }
-}
-
-static void
-cal_prefs_dialog_url_edit_clicked (GtkWidget *button, DialogData *dialog_data)
-{
- if (!dialog_data->url_editor) {
- GtkTreeSelection *selection;
- EPublishUri *url = NULL;
- GtkTreeModel *model;
- GtkTreeIter iter;
-
- selection = gtk_tree_view_get_selection ((GtkTreeView *) dialog_data->url_list);
- if (gtk_tree_selection_get_selected (selection, &model, &iter)){
- gtk_tree_model_get (model, &iter,
- URL_LIST_FREE_BUSY_URL_COLUMN,
- &url,
- -1);
-
- }
-
- if (url) {
- dialog_data->url_editor = url_editor_dialog_new (dialog_data, url);
-
- gtk_list_store_set ((GtkListStore *) model, &iter,
- URL_LIST_LOCATION_COLUMN,
- g_strdup (url->location),
- URL_LIST_ENABLED_COLUMN,
- url->enabled,
- URL_LIST_FREE_BUSY_URL_COLUMN, url,
- -1);
-
- url_list_changed (dialog_data);
-
- if (!GTK_WIDGET_SENSITIVE ((GtkWidget *) dialog_data->url_remove)) {
- selection = gtk_tree_view_get_selection ((GtkTreeView *) dialog_data->url_list);
- gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter);
- gtk_widget_set_sensitive ((GtkWidget*) dialog_data->url_remove, TRUE);
- gtk_tree_selection_select_iter (selection, &iter);
- }
- dialog_data->url_editor = FALSE;
- dialog_data->url_editor_dlg = NULL;
- }
- } else {
- gdk_window_raise (dialog_data->url_editor_dlg->window);
- }
-}
-
-static void
-cal_prefs_dialog_url_remove_clicked (GtkWidget *button, DialogData *dialog_data)
-{
- EPublishUri *url = NULL;
- GtkTreeSelection * selection;
- GtkTreeModel *model;
- GtkWidget *confirm;
- GtkTreeIter iter;
- int ans;
-
- selection = gtk_tree_view_get_selection (dialog_data->url_list);
- if (gtk_tree_selection_get_selected (selection, &model, &iter))
- gtk_tree_model_get (model, &iter,
- URL_LIST_FREE_BUSY_URL_COLUMN, &url,
- -1);
-
- /* make sure we have a valid account selected and that
- we aren't editing anything... */
- if (url == NULL || dialog_data->url_editor)
- return;
-
- confirm = gtk_message_dialog_new (PREFS_WINDOW (dialog_data),
- GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_QUESTION,
- GTK_BUTTONS_NONE,
- _("Are you sure you want to remove this URL?"));
-
- button = gtk_button_new_from_stock (GTK_STOCK_YES);
- gtk_button_set_label ((GtkButton *) button, _("Remove"));
- gtk_dialog_add_action_widget ((GtkDialog *) confirm, (GtkWidget *) button, GTK_RESPONSE_YES);
- gtk_widget_show ((GtkWidget *) button);
-
- button = gtk_button_new_from_stock (GTK_STOCK_NO);
- gtk_button_set_label ((GtkButton *) button, _("Don't Remove"));
- gtk_dialog_add_action_widget ((GtkDialog *) confirm,
- (GtkWidget *) button, GTK_RESPONSE_NO);
-
- gtk_widget_show ((GtkWidget *) button);
-
- ans = gtk_dialog_run ((GtkDialog *) confirm);
- gtk_widget_destroy (confirm);
-
- if (ans == GTK_RESPONSE_YES) {
- int len;
-
- gtk_list_store_remove ((GtkListStore *) model, &iter);
-
- len = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (model), NULL);
- if (len > 0) {
- gtk_tree_selection_select_iter (selection, &iter);
- } else {
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_edit), FALSE);
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_remove), FALSE);
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_enable), FALSE);
- }
- g_free (url);
- url_list_changed (dialog_data);
- }
-}
-
-static void
-cal_prefs_dialog_url_enable_clicked (GtkWidget *button, DialogData *dialog_data)
-{
- EPublishUri *url = NULL;
- GtkTreeSelection * selection;
- GtkTreeModel *model;
- GtkTreeIter iter;
-
- selection = gtk_tree_view_get_selection (dialog_data->url_list);
- if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
- gtk_tree_model_get (model, &iter,
- URL_LIST_FREE_BUSY_URL_COLUMN, &url,
- -1);
- url->enabled = !url->enabled;
-
- gtk_tree_selection_select_iter (selection, &iter);
-
- gtk_list_store_set ((GtkListStore *) model, &iter,
- URL_LIST_ENABLED_COLUMN, url->enabled,
- -1);
-
- gtk_button_set_label ((GtkButton *) dialog_data->url_enable,
- url->enabled ? _("Disable") : _("Enable"));
-
- url_list_changed (dialog_data);
- }
-}
-
-static void
-cal_prefs_dialog_url_list_enable_toggled (GtkCellRendererToggle *renderer,
- const char *path_string,
- DialogData *dialog_data)
-{
- GtkTreeSelection * selection;
- EPublishUri *url = NULL;
- GtkTreeModel *model;
- GtkTreePath *path;
- GtkTreeIter iter;
-
- path = gtk_tree_path_new_from_string (path_string);
- model = gtk_tree_view_get_model (dialog_data->url_list);
- selection = gtk_tree_view_get_selection (dialog_data->url_list);
-
- if (gtk_tree_model_get_iter (model, &iter, path)) {
- gtk_tree_model_get (model, &iter,
- URL_LIST_FREE_BUSY_URL_COLUMN, &url,
- -1);
-
- url->enabled = !url->enabled;
- gtk_list_store_set((GtkListStore *) model, &iter,
- URL_LIST_ENABLED_COLUMN,
- url->enabled, -1);
-
- if (gtk_tree_selection_iter_is_selected (selection, &iter))
- gtk_button_set_label ((GtkButton *) dialog_data->url_enable,
- url->enabled ? _("Disable") : _("Enable"));
-
- url_list_changed (dialog_data);
- }
-
- gtk_tree_path_free (path);
-}
-
-static void
-cal_prefs_dialog_url_list_double_click (GtkTreeView *treeview,
- GtkTreePath *path,
- GtkTreeViewColumn *column,
- DialogData *dialog_data)
-{
- cal_prefs_dialog_url_edit_clicked (NULL, dialog_data);
-}
-
-static void
-cal_prefs_dialog_url_list_change (GtkTreeSelection *selection,
- DialogData *dialog_data)
-{
- EPublishUri *url = NULL;
- GtkTreeModel *model;
- GtkTreeIter iter;
- int state;
-
- state = gtk_tree_selection_get_selected (selection, &model, &iter);
- if (state) {
- gtk_tree_model_get (model, &iter,
- URL_LIST_FREE_BUSY_URL_COLUMN, &url,
- -1);
-
- if (url->location && url->enabled)
- gtk_button_set_label ((GtkButton *) dialog_data->url_enable, _("Disable"));
- else
- gtk_button_set_label ((GtkButton *) dialog_data->url_enable, _("Enable"));
- } else {
- gtk_widget_grab_focus (GTK_WIDGET (dialog_data->url_add));
- }
-
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_edit), state);
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_remove), state);
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_enable), state);
+ gtk_color_button_set_color (GTK_COLOR_BUTTON (picker), &color);
}
/* Shows the current Free/Busy settings in the dialog */
static void
-show_fb_config (DialogData *dialog_data)
+show_fb_config (CalendarPrefsDialog *prefs)
{
- GSList *url_config_list = NULL;
- GtkListStore *model;
- GtkTreeIter iter;
gchar *template_url;
-
- model = (GtkListStore *) gtk_tree_view_get_model (dialog_data->url_list);
- gtk_list_store_clear (model);
-
- /* restore urls from gconf */
- url_config_list = calendar_config_get_free_busy();
-
- if (!url_config_list) {
- /* list is empty-disable edit, remove, and enable buttons */
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_edit),
- FALSE);
-
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_remove),
- FALSE);
-
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_enable),
- FALSE);
- } else {
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_edit),
- TRUE);
-
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_remove),
- TRUE);
-
- gtk_widget_set_sensitive (GTK_WIDGET (dialog_data->url_enable),
- TRUE);
- }
-
- while (url_config_list) {
- gchar *xml = (gchar *)url_config_list->data;
- EPublishUri *url;
- url = g_new0 (EPublishUri, 1);
-
- e_pub_uri_from_xml (url, xml);
- if (url->location) {
- gtk_list_store_append (model, &iter);
- gtk_list_store_set (model, &iter,
- URL_LIST_ENABLED_COLUMN,
- url->enabled,
- URL_LIST_LOCATION_COLUMN,
- url->location,
- URL_LIST_FREE_BUSY_URL_COLUMN, url,
- -1);
- }
-
- url_config_list = g_slist_next (url_config_list);
- g_free (xml);
- }
-
- g_slist_foreach (url_config_list, (GFunc) g_free, NULL);
- g_slist_free (url_config_list);
template_url = calendar_config_get_free_busy_template ();
- gtk_entry_set_text (GTK_ENTRY (dialog_data->template_url), template_url);
+ gtk_entry_set_text (GTK_ENTRY (prefs->template_url), template_url);
g_free (template_url);
}
/* Shows the current task list settings in the dialog */
static void
-show_task_list_config (DialogData *dialog_data)
+show_task_list_config (CalendarPrefsDialog *prefs)
{
CalUnits units;
gboolean hide_completed_tasks;
- 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 ());
+ set_color_picker (prefs->tasks_due_today_color, calendar_config_get_tasks_due_today_color ());
+ set_color_picker (prefs->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 (dialog_data->tasks_hide_completed_checkbutton,
- hide_completed_tasks);
+ e_dialog_toggle_set (prefs->tasks_hide_completed, calendar_config_get_hide_completed_tasks ());
/* Hide Completed Tasks Units. */
units = calendar_config_get_hide_completed_tasks_units ();
- e_dialog_option_menu_set (dialog_data->tasks_hide_completed_optionmenu,
- units, hide_completed_units_map);
+ e_dialog_combo_box_set (prefs->tasks_hide_completed_units, units, hide_completed_units_map);
/* Hide Completed Tasks Value. */
- e_dialog_spin_set (dialog_data->tasks_hide_completed_spinbutton,
- calendar_config_get_hide_completed_tasks_value ());
+ e_dialog_spin_set (prefs->tasks_hide_completed_interval, calendar_config_get_hide_completed_tasks_value ());
- 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);
+ gtk_widget_set_sensitive (prefs->tasks_hide_completed_interval, hide_completed_tasks);
+ gtk_widget_set_sensitive (prefs->tasks_hide_completed_units, hide_completed_tasks);
}
/* Shows the current config settings in the dialog. */
static void
-show_config (DialogData *dialog_data)
+show_config (CalendarPrefsDialog *prefs)
{
CalWeekdays working_days;
gint mask, day, week_start_day, time_divisions;
@@ -979,73 +402,202 @@ show_config (DialogData *dialog_data)
/* Timezone. */
zone = calendar_config_get_icaltimezone ();
- e_timezone_entry_set_timezone (E_TIMEZONE_ENTRY (dialog_data->timezone),
- zone);
+ e_timezone_entry_set_timezone (E_TIMEZONE_ENTRY (prefs->timezone), zone);
/* Working Days. */
working_days = calendar_config_get_working_days ();
mask = 1 << 0;
for (day = 0; day < 7; day++) {
- e_dialog_toggle_set (dialog_data->working_days[day], (working_days & mask) ? TRUE : FALSE);
+ e_dialog_toggle_set (prefs->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 (dialog_data->week_start_day, week_start_day,
- week_start_day_map);
+ e_dialog_combo_box_set (prefs->week_start_day, week_start_day, week_start_day_map);
/* 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 ());
+ e_date_edit_set_time_of_day (E_DATE_EDIT (prefs->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 (dialog_data->end_of_day),
- calendar_config_get_day_end_hour (),
- calendar_config_get_day_end_minute ());
+ e_date_edit_set_time_of_day (E_DATE_EDIT (prefs->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 (dialog_data->use_24_hour, TRUE);
+ e_dialog_toggle_set (prefs->use_24_hour, TRUE);
else
- e_dialog_toggle_set (dialog_data->use_12_hour, TRUE);
+ e_dialog_toggle_set (prefs->use_12_hour, TRUE);
sensitive = calendar_config_locale_supports_12_hour_format ();
- gtk_widget_set_sensitive (dialog_data->use_12_hour, sensitive);
- gtk_widget_set_sensitive (dialog_data->use_24_hour, sensitive);
+ gtk_widget_set_sensitive (prefs->use_12_hour, sensitive);
+ gtk_widget_set_sensitive (prefs->use_24_hour, sensitive);
/* Time Divisions. */
time_divisions = calendar_config_get_time_divisions ();
- e_dialog_option_menu_set (dialog_data->time_divisions, time_divisions,
- time_division_map);
+ e_dialog_combo_box_set (prefs->time_divisions, time_divisions, time_division_map);
/* Show Appointment End Times. */
- e_dialog_toggle_set (dialog_data->show_end_times, calendar_config_get_show_event_end ());
+ e_dialog_toggle_set (prefs->show_end_times, calendar_config_get_show_event_end ());
/* Compress Weekend. */
- e_dialog_toggle_set (dialog_data->compress_weekend, calendar_config_get_compress_weekend ());
+ e_dialog_toggle_set (prefs->compress_weekend, calendar_config_get_compress_weekend ());
/* Date Navigator - Show Week Numbers. */
- e_dialog_toggle_set (dialog_data->dnav_show_week_no, calendar_config_get_dnav_show_week_no ());
+ e_dialog_toggle_set (prefs->dnav_show_week_no, calendar_config_get_dnav_show_week_no ());
/* Task list */
+ show_task_list_config (prefs);
- show_task_list_config (dialog_data);
-
/* Free/Busy */
- show_fb_config (dialog_data);
+ show_fb_config (prefs);
/* Other page */
+ e_dialog_toggle_set (prefs->confirm_delete, calendar_config_get_confirm_delete ());
+ e_dialog_toggle_set (prefs->default_reminder, calendar_config_get_use_default_reminder ());
+ e_dialog_spin_set (prefs->default_reminder_interval, calendar_config_get_default_reminder_interval ());
+ e_dialog_combo_box_set (prefs->default_reminder_units, calendar_config_get_default_reminder_units (), default_reminder_units_map);
+}
+
+/* plugin meta-data */
+static ECalConfigItem eccp_items[] = {
+ { E_CONFIG_BOOK, "", "toplevel-notebook", eccp_widget_glade },
+ { E_CONFIG_PAGE, "00.general", "general", eccp_widget_glade },
+ { E_CONFIG_SECTION_TABLE, "00.general/00.time", "time", eccp_widget_glade },
+ { E_CONFIG_SECTION_TABLE, "00.general/10.workWeek", "workWeek", eccp_widget_glade },
+ { E_CONFIG_SECTION, "00.general/20.alerts", "alerts", eccp_widget_glade },
+ { E_CONFIG_PAGE, "10.display", "display", eccp_widget_glade },
+ { E_CONFIG_SECTION, "10.display/00.general", "displayGeneral", eccp_widget_glade },
+ { E_CONFIG_SECTION, "10.display/10.taskList", "taskList", eccp_widget_glade },
+ { E_CONFIG_PAGE, "20.freeBusy", "freebusy", eccp_widget_glade },
+ { E_CONFIG_SECTION, "20.freeBusy/00.defaultServer", "defaultFBServer", eccp_widget_glade },
+};
+
+static void
+eccp_free (EConfig *ec, GSList *items, void *data)
+{
+ g_slist_free (items);
+}
- e_dialog_toggle_set (dialog_data->confirm_delete, calendar_config_get_confirm_delete ());
+static void
+calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs)
+{
+ GladeXML *gui;
+ ECalConfig *ec;
+ ECalConfigTargetPrefs *target;
+ int i;
+ GtkWidget *toplevel;
+ GSList *l;
+ const char *working_day_names[] = {
+ "sun_button",
+ "mon_button",
+ "tue_button",
+ "wed_button",
+ "thu_button",
+ "fri_button",
+ "sat_button",
+ };
+
+ gui = glade_xml_new (EVOLUTION_GLADEDIR "/cal-prefs-dialog.glade", "toplevel-notebook", NULL);
+ prefs->gui = gui;
+
+ prefs->gconf = gconf_client_get_default ();
+
+ /** @HookPoint-ECalConfig: Calendar Preferences Page
+ * @Id: org.gnome.evolution.calendar.prefs
+ * @Type: E_CONFIG_BOOK
+ * @Class: org.gnome.evolution.calendar.config:1.0
+ * @Target: ECalConfigTargetPrefs
+ *
+ * The mail calendar preferences page
+ */
+ ec = e_cal_config_new (E_CONFIG_BOOK, "org.gnome.evolution.calendar.prefs");
+ l = NULL;
+ for (i = 0; i < G_N_ELEMENTS (eccp_items); i++)
+ l = g_slist_prepend (l, &eccp_items[i]);
+ e_config_add_items ((EConfig *) ec, l, NULL, NULL, eccp_free, prefs);
+
+ /* General tab */
+ prefs->timezone = glade_xml_get_widget (gui, "timezone");
+ for (i = 0; i < 7; i++)
+ prefs->working_days[i] = glade_xml_get_widget (gui, working_day_names[i]);
+ prefs->week_start_day = glade_xml_get_widget (gui, "week_start_day");
+ prefs->start_of_day = glade_xml_get_widget (gui, "start_of_day");
+ prefs->end_of_day = glade_xml_get_widget (gui, "end_of_day");
+ prefs->use_12_hour = glade_xml_get_widget (gui, "use_12_hour");
+ prefs->use_24_hour = glade_xml_get_widget (gui, "use_24_hour");
+ prefs->confirm_delete = glade_xml_get_widget (gui, "confirm_delete");
+ prefs->default_reminder = glade_xml_get_widget (gui, "default_reminder");
+ prefs->default_reminder_interval = glade_xml_get_widget (gui, "default_reminder_interval");
+ prefs->default_reminder_units = glade_xml_get_widget (gui, "default_reminder_units");
+
+ /* Display tab */
+ prefs->time_divisions = glade_xml_get_widget (gui, "time_divisions");
+ prefs->show_end_times = glade_xml_get_widget (gui, "show_end_times");
+ prefs->compress_weekend = glade_xml_get_widget (gui, "compress_weekend");
+ prefs->dnav_show_week_no = glade_xml_get_widget (gui, "dnav_show_week_no");
+ prefs->tasks_due_today_color = glade_xml_get_widget (gui, "tasks_due_today_color");
+ prefs->tasks_overdue_color = glade_xml_get_widget (gui, "tasks_overdue_color");
+ prefs->tasks_hide_completed = glade_xml_get_widget (gui, "tasks_hide_completed");
+ prefs->tasks_hide_completed_interval = glade_xml_get_widget (gui, "tasks_hide_completed_interval");
+ prefs->tasks_hide_completed_units = glade_xml_get_widget (gui, "tasks_hide_completed_units");
+
+ /* Free/Busy tab */
+ prefs->template_url = glade_xml_get_widget (gui, "template_url");
+ target = e_cal_config_target_new_prefs (ec, prefs->gconf);
+ e_config_set_target ((EConfig *)ec, (EConfigTarget *) target);
+ toplevel = e_config_create_widget ((EConfig *)ec);
+ gtk_container_add (GTK_CONTAINER (prefs), toplevel);
+
+ show_config (prefs);
+ /* FIXME: weakref? */
+ setup_changes (prefs);
+}
+
+GType
+calendar_prefs_dialog_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type) {
+ static GTypeInfo type_info = {
+ sizeof (CalendarPrefsDialogClass),
+ NULL, NULL,
+ (GClassInitFunc) calendar_prefs_dialog_class_init,
+ NULL, NULL,
+ sizeof (CalendarPrefsDialog),
+ 0,
+ (GInstanceInitFunc) calendar_prefs_dialog_init,
+ };
+
+ type = g_type_register_static (GTK_TYPE_VBOX, "CalendarPrefsDialog", &type_info, 0);
+ }
+
+ return type;
+}
- e_dialog_toggle_set (dialog_data->default_reminder,
- calendar_config_get_use_default_reminder ());
- e_dialog_spin_set (dialog_data->default_reminder_interval,
- calendar_config_get_default_reminder_interval ());
- e_dialog_option_menu_set (dialog_data->default_reminder_units,
- calendar_config_get_default_reminder_units (),
- default_reminder_units_map);
+GtkWidget *
+calendar_prefs_dialog_new (void)
+{
+ CalendarPrefsDialog *dialog;
+
+ dialog = (CalendarPrefsDialog *) g_object_new (calendar_prefs_dialog_get_type (), NULL);
+ calendar_prefs_dialog_construct (dialog);
+
+ return (GtkWidget *) dialog;
+}
+
+/* called by libglade to create our custom EDateEdit widgets. */
+GtkWidget *
+cal_prefs_dialog_create_time_edit (void)
+{
+ GtkWidget *dedit;
+
+ dedit = e_date_edit_new ();
+
+ e_date_edit_set_use_24_hour_format (E_DATE_EDIT (dedit), calendar_config_get_24_hour_format ());
+ e_date_edit_set_time_popup_range (E_DATE_EDIT (dedit), 0, 24);
+ e_date_edit_set_show_date (E_DATE_EDIT (dedit), FALSE);
+
+ return dedit;
}
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.glade b/calendar/gui/dialogs/cal-prefs-dialog.glade
index 8ea5b6a371..ac04905704 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.glade
+++ b/calendar/gui/dialogs/cal-prefs-dialog.glade
@@ -2,10 +2,10 @@
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
-<requires lib="gnome"/>
-<widget class="GtkDialog" id="cal-prefs-dialog">
- <property name="title" translatable="yes">Calendar and Tasks Settings</property>
+<widget class="GtkWindow" id="window1">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">window1</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
@@ -14,95 +14,63 @@
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="has_separator">False</property>
- <child internal-child="vbox">
- <widget class="GtkVBox" id="vbox1">
+ <child>
+ <widget class="GtkNotebook" id="toplevel-notebook">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">True</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="hbuttonbox1">
+ <child>
+ <widget class="GtkVBox" id="general">
+ <property name="border_width">12</property>
<property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">0</property>
- </widget>
- </child>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkButton" id="button2">
+ <widget class="GtkLabel" id="label4">
<property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-apply</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">0</property>
+ <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Time&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
</child>
<child>
- <widget class="GtkButton" id="button3">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">0</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkNotebook" id="toplevel-notebook">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_tabs">True</property>
- <property name="show_border">True</property>
- <property name="tab_pos">GTK_POS_TOP</property>
- <property name="scrollable">False</property>
- <property name="enable_popup">False</property>
-
- <child>
- <widget class="GtkVBox" id="vbox10">
- <property name="border_width">12</property>
+ <widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label51">
+ <widget class="GtkLabel" id="label7">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Time&lt;/b&gt;</property>
+ <property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
- <property name="use_markup">True</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -115,202 +83,185 @@
</child>
<child>
- <widget class="GtkHBox" id="hbox26">
+ <widget class="GtkTable" id="time">
<property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Time _zone:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
<child>
- <widget class="GtkLabel" id="label52">
+ <widget class="GtkLabel" id="label11">
<property name="visible">True</property>
- <property name="label" translatable="yes"></property>
+ <property name="label" translatable="yes">Time format:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0.5</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkTable" id="table5">
+ <widget class="Custom" id="timezone">
+ <property name="visible">True</property>
+ <property name="creation_function">make_timezone_entry</property>
+ <property name="int1">0</property>
+ <property name="int2">0</property>
+ <property name="last_modification_time">Thu, 13 Jan 2005 04:18:03 GMT</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox4">
<property name="visible">True</property>
- <property name="n_rows">2</property>
- <property name="n_columns">3</property>
<property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label22">
+ <widget class="GtkRadioButton" id="use_12_hour">
<property name="visible">True</property>
- <property name="label" translatable="yes">Time _zone:</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_12 hour (AM/PM)</property>
<property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">timezone</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label20">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Time format:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox10">
- <property name="visible">True</property>
- <property name="homogeneous">True</property>
- <property name="spacing">4</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xscale">3.35276e-08</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkRadioButton" id="use_12_hour">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_12 hour (AM/PM)</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkRadioButton" id="use_24_hour">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_24 hour</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <property name="group">use_12_hour</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="Custom" id="timezone">
+ <widget class="GtkRadioButton" id="use_24_hour">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="creation_function">make_timezone_entry</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Wed, 20 Jun 2001 02:22:46 GMT</property>
+ <property name="label" translatable="yes">_24 hour</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">use_12_hour</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Work Week&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label49">
+ <widget class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Work Week&lt;/b&gt;</property>
- <property name="use_underline">True</property>
- <property name="use_markup">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -323,467 +274,387 @@
</child>
<child>
- <widget class="GtkHBox" id="hbox25">
+ <widget class="GtkTable" id="workWeek">
<property name="visible">True</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
<child>
- <widget class="GtkLabel" id="label50">
+ <widget class="GtkLabel" id="label12">
<property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
+ <property name="label" translatable="yes">W_eek starts:</property>
+ <property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0.5</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkTable" id="table8">
+ <widget class="GtkLabel" id="label13">
<property name="visible">True</property>
- <property name="n_rows">4</property>
- <property name="n_columns">4</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox17">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkCheckButton" id="mon_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Mon</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Monday</atkproperty>
- </accessibility>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="tue_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Tue</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Tuesday</atkproperty>
- </accessibility>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="label" translatable="yes">Work days:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkCheckButton" id="wed_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Wed</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Wednesday</atkproperty>
- </accessibility>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkLabel" id="label14">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Day begins:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkCheckButton" id="thu_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">T_hu</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Thursday</atkproperty>
- </accessibility>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkLabel" id="label15">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Day _ends:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkCheckButton" id="fri_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Fri</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Friday</atkproperty>
- </accessibility>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="Custom" id="start_of_day">
+ <property name="visible">True</property>
+ <property name="creation_function">cal_prefs_dialog_create_time_edit</property>
+ <property name="int1">0</property>
+ <property name="int2">0</property>
+ <property name="last_modification_time">Thu, 13 Jan 2005 04:23:55 GMT</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkCheckButton" id="sat_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Sat</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Saturday</atkproperty>
- </accessibility>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <child>
+ <widget class="Custom" id="end_of_day">
+ <property name="visible">True</property>
+ <property name="creation_function">cal_prefs_dialog_create_time_edit</property>
+ <property name="int1">0</property>
+ <property name="int2">0</property>
+ <property name="last_modification_time">Thu, 13 Jan 2005 04:24:06 GMT</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkCheckButton" id="sun_button">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">S_un</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">Sunday</atkproperty>
- </accessibility>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">4</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options">fill</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkHBox" id="hbox5">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkAlignment" id="alignment3">
+ <widget class="GtkCheckButton" id="mon_button">
<property name="visible">True</property>
- <property name="xalign">7.45058e-09</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">1</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkOptionMenu" id="first_day_of_week">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="history">0</property>
-
- <child internal-child="menu">
- <widget class="GtkMenu" id="convertwidget1">
- <property name="visible">True</property>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Monday</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Tuesday</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Wednesday</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Thursday</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Friday</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Saturday</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Sunday</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Mon</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Monday</atkproperty>
+ </accessibility>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label32">
+ <widget class="GtkCheckButton" id="tue_button">
<property name="visible">True</property>
- <property name="label" translatable="yes">W_eek starts:</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Tue</property>
<property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">first_day_of_week</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Tuesday</atkproperty>
+ </accessibility>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label31">
+ <widget class="GtkCheckButton" id="wed_button">
<property name="visible">True</property>
- <property name="label" translatable="yes">Work days:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Wed</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Wednesday</atkproperty>
+ </accessibility>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="end_of_day_label">
+ <widget class="GtkCheckButton" id="thu_button">
<property name="visible">True</property>
- <property name="label" translatable="yes">Day _ends:</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">T_hu</property>
<property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_RIGHT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">end_of_day</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Thursday</atkproperty>
+ </accessibility>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="start_of_day_label">
+ <widget class="GtkCheckButton" id="fri_button">
<property name="visible">True</property>
- <property name="label" translatable="yes">_Day begins:</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Fri</property>
<property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">start_of_day</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Friday</atkproperty>
+ </accessibility>
</widget>
<packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="Custom" id="start_of_day">
+ <widget class="GtkCheckButton" id="sat_button">
<property name="visible">True</property>
- <property name="creation_function">cal_prefs_dialog_create_time_edit</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Thu, 30 May 2002 19:26:53 GMT</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Sat</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
<accessibility>
- <atkrelation target="start_of_day_label" type="labelled-by"/>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Saturday</atkproperty>
</accessibility>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">4</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="Custom" id="end_of_day">
+ <widget class="GtkCheckButton" id="sun_button">
<property name="visible">True</property>
- <property name="creation_function">cal_prefs_dialog_create_time_edit</property>
- <property name="int1">0</property>
- <property name="int2">0</property>
- <property name="last_modification_time">Thu, 30 May 2002 19:27:35 GMT</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">S_un</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
<accessibility>
- <atkrelation target="end_of_day_label" type="labelled-by"/>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Sunday</atkproperty>
</accessibility>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">4</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="x_options">fill</property>
- <property name="y_options">fill</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="week_start_day">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Monday
+Tuesday
+Wednesday
+Thursday
+Friday
+Saturday
+Sunday</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Alerts&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label53">
+ <widget class="GtkLabel" id="label9">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Alerts&lt;/b&gt;</property>
+ <property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
- <property name="use_markup">True</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -796,24 +667,22 @@
</child>
<child>
- <widget class="GtkHBox" id="hbox27">
+ <widget class="GtkVBox" id="alerts">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label54">
+ <widget class="GtkCheckButton" id="confirm_delete">
<property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Ask for confirmation when deleting items</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -823,17 +692,16 @@
</child>
<child>
- <widget class="GtkVBox" id="vbox13">
+ <widget class="GtkHBox" id="hbox6">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">0</property>
+ <property name="spacing">4</property>
<child>
- <widget class="GtkCheckButton" id="confirm-delete">
- <property name="border_width">3</property>
+ <widget class="GtkCheckButton" id="default_reminder">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">_Ask for confirmation when deleting items</property>
+ <property name="label" translatable="yes">Sh_ow a reminder</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -849,130 +717,51 @@
</child>
<child>
- <widget class="GtkHBox" id="hbox19">
- <property name="border_width">3</property>
+ <widget class="GtkSpinButton" id="default_reminder_interval">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">3</property>
-
- <child>
- <widget class="GtkCheckButton" id="default-reminder">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Sh_ow a reminder</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="default-reminder-interval">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">0 0 9999 1 10 10</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="xalign">7.45058e-09</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkOptionMenu" id="default-reminder-units">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="history">0</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose reminder units</atkproperty>
- </accessibility>
-
- <child internal-child="menu">
- <widget class="GtkMenu" id="convertwidget9">
- <property name="visible">True</property>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Minutes</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Hours</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">0 0 9999 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkMenuItem" id="convertwidget12">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Days</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkComboBox" id="default_reminder_units">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Minutes
+Hours
+Days</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkLabel" id="label35">
- <property name="visible">True</property>
- <property name="label" translatable="yes">before every appointment</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkLabel" id="label16">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">before every appointment</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -990,53 +779,87 @@
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">False</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">General</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="display">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label21">
+ <widget class="GtkLabel" id="label17">
<property name="visible">True</property>
- <property name="label" translatable="yes">General</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0.5</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
- <property name="type">tab</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox8">
- <property name="border_width">12</property>
+ <widget class="GtkHBox" id="hbox7">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label55">
+ <widget class="GtkLabel" id="label19">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;General&lt;/b&gt;</property>
+ <property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
- <property name="use_markup">True</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -1049,162 +872,31 @@
</child>
<child>
- <widget class="GtkHBox" id="hbox28">
+ <widget class="GtkVBox" id="displayGeneral">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label56">
- <property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox16">
+ <widget class="GtkHBox" id="hbox10">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkHBox" id="hbox12">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Time divisions:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">time_divisions</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkOptionMenu" id="time_divisions">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="history">0</property>
-
- <child internal-child="menu">
- <widget class="GtkMenu" id="convertwidget13">
- <property name="visible">True</property>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget14">
- <property name="visible">True</property>
- <property name="label" translatable="yes">60 minutes</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget15">
- <property name="visible">True</property>
- <property name="label" translatable="yes">30 minutes</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget16">
- <property name="visible">True</property>
- <property name="label" translatable="yes">15 minutes</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget17">
- <property name="visible">True</property>
- <property name="label" translatable="yes">10 minutes</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget18">
- <property name="visible">True</property>
- <property name="label" translatable="yes">05 minutes</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="show_end_times">
+ <widget class="GtkLabel" id="label23">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Show appointment end times in week and month views</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkCheckButton" id="compress_weekend">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Compress weekends in month view</property>
+ <property name="label" translatable="yes">_Time divisions:</property>
<property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">time_divisions</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -1214,21 +906,18 @@
</child>
<child>
- <widget class="GtkCheckButton" id="dnav_show_week_no">
+ <widget class="GtkComboBox" id="time_divisions">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Show week _numbers in date navigator</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
+ <property name="items" translatable="yes">60 minutes
+30 minutes
+15 minutes
+10 minutes
+05 minutes</property>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -1238,24 +927,115 @@
<property name="fill">True</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkCheckButton" id="show_end_times">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Show appointment end times in week and month view</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="compress_weekend">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Compress weekends in month view</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="dnav_show_week_no">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Show week _numbers in date navigator</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label18">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Task List&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox8">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label57">
+ <widget class="GtkLabel" id="label20">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Task List&lt;/b&gt;</property>
+ <property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
- <property name="use_markup">True</property>
+ <property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0</property>
+ <property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -1268,134 +1048,128 @@
</child>
<child>
- <widget class="GtkHBox" id="hbox29">
+ <widget class="GtkVBox" id="taskList">
<property name="visible">True</property>
<property name="homogeneous">False</property>
- <property name="spacing">12</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkLabel" id="label58">
+ <widget class="GtkTable" id="table2">
<property name="visible">True</property>
- <property name="label" translatable="yes"></property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label21">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">T_asks due today:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">tasks_due_today_color</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label22">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Overdue tasks:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">tasks_overdue_color</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkColorButton" id="tasks_due_today_color">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="use_alpha">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkColorButton" id="tasks_overdue_color">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="use_alpha">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options"></property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox12">
+ <widget class="GtkHBox" id="hbox9">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
- <widget class="GtkTable" id="table7">
+ <widget class="GtkCheckButton" id="tasks_hide_completed">
<property name="visible">True</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">6</property>
- <property name="column_spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label28">
- <property name="visible">True</property>
- <property name="label" translatable="yes">T_asks due today:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">tasks_due_today_color</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label29">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Overdue tasks:</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="mnemonic_widget">tasks_overdue_color</property>
- </widget>
- <packing>
- <property name="left_attach">0</property>
- <property name="right_attach">1</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GnomeColorPicker" id="tasks_overdue_color">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="dither">True</property>
- <property name="use_alpha">False</property>
- <property name="title" translatable="yes">Color for overdue tasks</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
-
- <child>
- <widget class="GnomeColorPicker" id="tasks_due_today_color">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="dither">True</property>
- <property name="use_alpha">False</property>
- <property name="title" translatable="yes">Color for tasks due today</property>
- <property name="focus_on_click">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">0</property>
- <property name="bottom_attach">1</property>
- <property name="x_options">fill</property>
- <property name="y_options"></property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Hide completed tasks after</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -1405,99 +1179,35 @@
</child>
<child>
- <widget class="GtkHBox" id="hbox15">
+ <widget class="GtkSpinButton" id="tasks_hide_completed_interval">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkCheckButton" id="tasks-hide-completed-checkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">_Hide completed tasks after</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">False</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkSpinButton" id="tasks-hide-completed-spinbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="climb_rate">1</property>
- <property name="digits">0</property>
- <property name="numeric">False</property>
- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
- <property name="snap_to_ticks">False</property>
- <property name="wrap">False</property>
- <property name="adjustment">1 0 9999 1 10 10</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkOptionMenu" id="tasks-hide-completed-optionmenu">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="history">0</property>
- <accessibility>
- <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose time units</atkproperty>
- </accessibility>
-
- <child internal-child="menu">
- <widget class="GtkMenu" id="convertwidget19">
- <property name="visible">True</property>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget20">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Minutes</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkMenuItem" id="convertwidget21">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Hours</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">1 0 9999 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkMenuItem" id="convertwidget22">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Days</property>
- <property name="use_underline">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkComboBox" id="tasks_hide_completed_units">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Minutes
+Hours
+Days</property>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
@@ -1510,45 +1220,79 @@
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">False</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Display</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="freebusy">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
<child>
- <widget class="GtkLabel" id="label7">
+ <widget class="GtkLabel" id="label25">
<property name="visible">True</property>
- <property name="label" translatable="yes">Display</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Default Free/Busy Server&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">0.5</property>
+ <property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
- <property name="type">tab</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkVBox" id="vbox17">
- <property name="border_width">12</property>
+ <widget class="GtkHBox" id="hbox12">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
- <widget class="GtkFrame" id="frame2">
+ <widget class="GtkLabel" id="label27">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
@@ -1857,122 +1601,78 @@
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame1">
+ <widget class="GtkVBox" id="vbox7">
<property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="label_yalign">0.5</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkAlignment" id="alignment7">
+ <widget class="GtkHBox" id="hbox18">
<property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">1</property>
- <property name="yscale">1</property>
- <property name="top_padding">12</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">12</property>
- <property name="right_padding">0</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
<child>
- <widget class="GtkVBox" id="vbox18">
+ <widget class="GtkLabel" id="label33">
<property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkHBox" id="hbox30">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">12</property>
-
- <child>
- <widget class="GtkLabel" id="label61">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Template:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="template_url">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes"></property>
- <property name="has_frame">True</property>
- <property name="invisible_char" translatable="yes">*</property>
- <property name="activates_default">False</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <property name="label" translatable="yes">Template:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkLabel" id="label62">
- <property name="visible">True</property>
- <property name="label" translatable="yes">&lt;i&gt;%u and %d will be replaced by user and domain from the email address.&lt;/i&gt;</property>
- <property name="use_underline">False</property>
- <property name="use_markup">True</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0.49</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkEntry" id="template_url">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">False</property>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
</child>
</widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
</child>
<child>
- <widget class="GtkLabel" id="label59">
+ <widget class="GtkLabel" id="label32">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Default Free/Busy Server&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;i&gt;%u and %d will be replaced by user and domain from the email address.&lt;/i&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
+ <property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@@ -1980,46 +1680,48 @@
<property name="ypad">0</property>
</widget>
<packing>
- <property name="type">label_item</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
- <property name="tab_expand">False</property>
- <property name="tab_fill">True</property>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
</packing>
</child>
+ </widget>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
- <child>
- <widget class="GtkLabel" id="label42">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Free/Busy</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- </packing>
- </child>
+ <child>
+ <widget class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Free/Busy</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
</widget>
<packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="type">tab</property>
</packing>
</child>
</widget>
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.h b/calendar/gui/dialogs/cal-prefs-dialog.h
index 5c92570d37..ab717d85a9 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.h
+++ b/calendar/gui/dialogs/cal-prefs-dialog.h
@@ -2,10 +2,10 @@
/*
* Author :
+ * David Trowbridge <trowbrds cs colorado edu>
* Damon Chaplin <damon@ximian.com>
*
- * Copyright 2000, Ximian, Inc.
- * Copyright 2000, Ximian, Inc.
+ * Copyright (C) 2005 Novell, Inc. (www.novell.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
@@ -18,13 +18,8 @@
*
* 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
- */
-
-/*
- * CalPrefsDialog - a GtkObject which handles a libglade-loaded dialog
- * to edit the calendar preference settings.
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
*/
#ifndef _CAL_PREFS_DIALOG_H_
@@ -32,28 +27,22 @@
#include <gtk/gtk.h>
#include <glade/glade.h>
-#include <gconf/gconf.h>
#include <gconf/gconf-client.h>
-#include "../e-pub-utils.h"
#include "evolution-config-control.h"
G_BEGIN_DECLS
-enum {
- URL_LIST_ENABLED_COLUMN,
- URL_LIST_LOCATION_COLUMN,
- URL_LIST_FREE_BUSY_URL_COLUMN,
- URL_LIST_N_COLUMNS
-};
+typedef struct _CalendarPrefsDialog CalendarPrefsDialog;
+typedef struct _CalendarPrefsDialogClass CalendarPrefsDialogClass;
-struct _DialogData {
- /* Glade XML data */
- GladeXML *xml;
-
- GConfClient *gconf;
+struct _CalendarPrefsDialog {
+ GtkVBox parent;
- GtkWidget *page;
+ GladeXML *gui;
+ GConfClient *gconf;
+
+ /* General tab */
GtkWidget *timezone;
GtkWidget *working_days[7];
GtkWidget *week_start_day;
@@ -61,41 +50,40 @@ struct _DialogData {
GtkWidget *end_of_day;
GtkWidget *use_12_hour;
GtkWidget *use_24_hour;
+ GtkWidget *confirm_delete;
+ GtkWidget *default_reminder;
+ GtkWidget *default_reminder_interval;
+ GtkWidget *default_reminder_units;
+
+ /* Display tab */
GtkWidget *time_divisions;
GtkWidget *show_end_times;
GtkWidget *compress_weekend;
GtkWidget *dnav_show_week_no;
-
- /* Widgets for the task list options */
GtkWidget *tasks_due_today_color;
GtkWidget *tasks_overdue_color;
+ GtkWidget *tasks_hide_completed;
+ GtkWidget *tasks_hide_completed_interval;
+ GtkWidget *tasks_hide_completed_units;
- GtkWidget *tasks_hide_completed_checkbutton;
- GtkWidget *tasks_hide_completed_spinbutton;
- GtkWidget *tasks_hide_completed_optionmenu;
-
- /* Widgets for the Free/Busy options */
+ /* Free/Busy tab */
GtkWidget *url_add;
GtkWidget *url_edit;
GtkWidget *url_remove;
GtkWidget *url_enable;
- GtkTreeView *url_list;
- gboolean url_editor;
- GtkWidget* url_editor_dlg;
+ GtkWidget *url_enable_label;
+ GtkWidget *url_enable_image;
+ GtkWidget *url_list;
+ GtkWidget *template_url;
guint destroyed : 1;
+};
- /* widgets for the Free/Busy template */
- GtkWidget *template_url;
-
- /* Other page options */
- GtkWidget *confirm_delete;
- GtkWidget *default_reminder;
- GtkWidget *default_reminder_interval;
- GtkWidget *default_reminder_units;
+struct _CalendarPrefsDialogClass {
+ GtkVBoxClass parent;
};
-typedef struct _DialogData DialogData;
-EvolutionConfigControl *cal_prefs_dialog_new (void);
+GType calendar_prefs_dialog_get_type (void);
+GtkWidget *calendar_prefs_dialog_new (void);
G_END_DECLS
diff --git a/calendar/gui/e-cal-config.c b/calendar/gui/e-cal-config.c
index b243afc844..7c8902677d 100644
--- a/calendar/gui/e-cal-config.c
+++ b/calendar/gui/e-cal-config.c
@@ -55,6 +55,9 @@ ecp_target_free (EConfig *ec, EConfigTarget *t)
p->source_changed_id = 0;
}
break; }
+ case EC_CONFIG_TARGET_PREFS: {
+ /* ECalConfigTargetPrefs *s = (ECalConfigTargetPrefs *)t; */
+ break; }
}
}
@@ -64,6 +67,11 @@ ecp_target_free (EConfig *ec, EConfigTarget *t)
if (s->source)
g_object_unref (s->source);
break; }
+ case EC_CONFIG_TARGET_PREFS: {
+ ECalConfigTargetPrefs *s = (ECalConfigTargetPrefs *)t;
+ if (s->gconf)
+ g_object_unref (s->gconf);
+ break; }
}
((EConfigClass *) ecp_parent_class)->target_free (ec, t);
@@ -89,6 +97,9 @@ ecp_set_target (EConfig *ec, EConfigTarget *t)
p->source_changed_id = g_signal_connect (s->source, "changed", G_CALLBACK (ecp_source_changed), ec);
break; }
+ case EC_CONFIG_TARGET_PREFS: {
+ /* ECalConfigTargetPrefs *s = (ECalConfigTargetPrefs *)t; */
+ break; }
}
}
}
@@ -143,12 +154,25 @@ e_cal_config_target_new_source (ECalConfig *ecp, struct _ESource *source)
return t;
}
+ECalConfigTargetPrefs *
+e_cal_config_target_new_prefs (ECalConfig *ecp, struct _GConfClient *gconf)
+{
+ ECalConfigTargetPrefs *t = e_config_target_new (&ecp->config, EC_CONFIG_TARGET_PREFS, sizeof (*t));
+
+ t->gconf = gconf;
+ if (gconf)
+ g_object_ref (gconf);
+
+ return t;
+}
+
static const EConfigHookTargetMask ecph_no_masks[] = {
{ 0 }
};
static const EConfigHookTargetMap ecph_targets[] = {
{ "source", EC_CONFIG_TARGET_SOURCE, ecph_no_masks },
+ { "prefs", EC_CONFIG_TARGET_PREFS, ecph_no_masks },
{ 0 },
};
diff --git a/calendar/gui/e-cal-config.h b/calendar/gui/e-cal-config.h
index 1a6f41635e..0ccc40ba16 100644
--- a/calendar/gui/e-cal-config.h
+++ b/calendar/gui/e-cal-config.h
@@ -45,9 +45,11 @@ struct _ECalConfigClass {
enum _e_cal_config_target_t {
EC_CONFIG_TARGET_SOURCE,
+ EC_CONFIG_TARGET_PREFS,
};
typedef struct _ECalConfigTargetSource ECalConfigTargetSource;
+typedef struct _ECalConfigTargetPrefs ECalConfigTargetPrefs;
struct _ECalConfigTargetSource {
EConfigTarget target;
@@ -56,12 +58,19 @@ struct _ECalConfigTargetSource {
ECalSourceType source_type;
};
+struct _ECalConfigTargetPrefs {
+ EConfigTarget target;
+
+ struct _GConfClient *gconf;
+};
+
typedef struct _EConfigItem ECalConfigItem;
GType e_cal_config_get_type (void);
ECalConfig *e_cal_config_new (int type, const char *menuid);
ECalConfigTargetSource *e_cal_config_target_new_source (ECalConfig *ecp, struct _ESource *source);
+ECalConfigTargetPrefs *e_cal_config_target_new_prefs (ECalConfig *ecp, struct _GConfClient *gconf);
/* ********************************************************************** */
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index 4cf2b3e368..02e0d57c84 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -54,7 +54,6 @@
#include "e-calendar-view.h"
#include "e-comp-editor-registry.h"
#include "itip-utils.h"
-#include "e-pub-utils.h"
#include "dialogs/delete-comp.h"
#include "dialogs/delete-error.h"
#include "dialogs/event-editor.h"
@@ -1200,7 +1199,7 @@ transfer_item_to (ECalendarViewEvent *event, ECal *dest_client, gboolean remove_
icalcomponent_free (orig_icalcomp);
- if (!e_cal_modify_object (dest_client, event->comp_data->icalcomp, CALOBJ_MOD_ALL, NULL))
+ if (!e_cal_modify_object (dest_client, event->comp_data->icalcomp, CALOBJ_MOD_ALL, NULL))
return;
} else {
orig_icalcomp = icalcomponent_new_clone (event->comp_data->icalcomp);
@@ -1416,12 +1415,6 @@ on_forward (EPopup *ep, EPopupItem *pitem, void *data)
}
static void
-on_publish (EPopup *ep, EPopupItem *pitem, void *data)
-{
- e_pub_publish (TRUE);
-}
-
-static void
on_delete_appointment (EPopup *ep, EPopupItem *pitem, void *data)
{
ECalendarView *cal_view = data;
@@ -1554,11 +1547,6 @@ static EPopupItem ecv_main_items [] = {
{ E_POPUP_ITEM, "61.today", N_("Select T_oday"), on_goto_today, NULL, GTK_STOCK_HOME },
{ E_POPUP_ITEM, "62.todate", N_("_Select Date..."), on_goto_date, NULL, GTK_STOCK_JUMP_TO },
-
- { E_POPUP_BAR, "70." },
-
- /* TODO: Why is this in a context menu when it applies globally? */
- { E_POPUP_ITEM, "70.publish", N_("_Publish Free/Busy Information"), on_publish, },
};
static EPopupItem ecv_child_items [] = {
diff --git a/calendar/gui/main.c b/calendar/gui/main.c
index 44a880f120..3d2fcfe26b 100644
--- a/calendar/gui/main.c
+++ b/calendar/gui/main.c
@@ -146,8 +146,6 @@ initialize (void)
launch_alarm_daemon ();
- /* Initialize Calendar Publishing */
- calendar_component_init_publishing ();
/* Initialize plugin system */
e_plugin_hook_register_type (e_cal_popup_hook_get_type());
@@ -187,9 +185,16 @@ factory (BonoboGenericFactory *factory,
return object;
} else if (strcmp (component_id, ITIP_CONTROL_ID) == 0)
return BONOBO_OBJECT (itip_bonobo_control_new ());
- else if (strcmp (component_id, CONFIG_CONTROL_ID) == 0)
- return BONOBO_OBJECT (cal_prefs_dialog_new ());
- else if (strcmp (component_id, COMP_EDITOR_FACTORY_ID) == 0)
+ else if (strcmp (component_id, CONFIG_CONTROL_ID) == 0) {
+ GtkWidget *prefs;
+ EvolutionConfigControl *control;
+
+ prefs = calendar_prefs_dialog_new ();
+ gtk_widget_show_all (prefs);
+ control = evolution_config_control_new (prefs);
+
+ return BONOBO_OBJECT (control);
+ } else if (strcmp (component_id, COMP_EDITOR_FACTORY_ID) == 0)
return BONOBO_OBJECT (comp_editor_factory_fn ());
g_warning (FACTORY_ID ": Don't know what to do with %s", component_id);
diff --git a/configure.in b/configure.in
index 6bc846810d..56aa2e6bc7 100644
--- a/configure.in
+++ b/configure.in
@@ -1394,7 +1394,7 @@ AC_SUBST_FILE(EVO_PLUGIN_RULE)
AC_ARG_ENABLE(plugins, [ --enable-plugins=[no/base/all/experimental/list] Enable plugins.],enable_plugins="$enableval",enable_plugins=all)
dnl Add any new plugins here
-plugins_base_always="calendar-file calendar-http calendar-weather itip-formatter plugin-manager default-source addressbook-file startup-wizard print-message mark-all-read groupwise-features groupwise-account-setup hula-account-setup mail-account-disable"
+plugins_base_always="calendar-file calendar-http calendar-weather itip-formatter plugin-manager default-source addressbook-file startup-wizard print-message mark-all-read groupwise-features groupwise-account-setup hula-account-setup mail-account-disable publish-calendar"
plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $EXCHANGE_PLUGIN $MONO_PLUGIN"
all_plugins_base="$plugins_base_always sa-junk-plugin exchange-operations mono"
@@ -1702,6 +1702,7 @@ plugins/groupwise-features/Makefile
plugins/mail-account-disable/Makefile
plugins/sa-junk-plugin/Makefile
plugins/ipod-sync/Makefile
+plugins/publish-calendar/Makefile
smime/Makefile
smime/lib/Makefile
smime/gui/Makefile
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index 0ab1993a3b..1519cf9bdc 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,11 @@
+2005-12-19 Chenthill Palanisamy <pchenthill@novell.com>
+
+ committing for David Trowbridge <trowbrds cs colorado edu>
+
+ * e-dialog-widgets.[ch] (e_dialog_combo_box_set),
+ (e_dialog_combo_box_get): Added new functions to get/set
+ combox values.
+
2005-12-18 Tor Lillqvist <tml@novell.com>
* e-dialog-utils.c (e_file_dialog_save_folder): Silence unused
diff --git a/e-util/e-dialog-widgets.c b/e-util/e-dialog-widgets.c
index d245917682..6d17a3d1f1 100644
--- a/e-util/e-dialog-widgets.c
+++ b/e-util/e-dialog-widgets.c
@@ -28,6 +28,7 @@
#include <gtk/gtkmenu.h>
#include <gtk/gtkmenuitem.h>
#include <gtk/gtkoptionmenu.h>
+#include <gtk/gtkcombobox.h>
#include <gtk/gtkradiobutton.h>
#include <gtk/gtksignal.h>
#include <gtk/gtkspinbutton.h>
@@ -631,6 +632,63 @@ e_dialog_option_menu_get (GtkWidget *widget, const int *value_map)
}
/**
+ * e_dialog_combo_box_set:
+ * @widget: A #GtkComboBox.
+ * @value: Enumerated value.
+ * @value_map: Map from enumeration values to array indices.
+ *
+ * Sets the selected item in a #GtkComboBox. Please read the description of
+ * e_dialog_radio_set() to see how @value_map maps enumeration values to item
+ * indices.
+ **/
+void
+e_dialog_combo_box_set (GtkWidget *widget, int value, const int *value_map)
+{
+ int i;
+
+ g_return_if_fail (widget != NULL);
+ g_return_if_fail (GTK_IS_COMBO_BOX (widget));
+ g_return_if_fail (value_map != NULL);
+
+ i = value_to_index (value_map, value);
+
+ if (i != -1)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), i);
+ else
+ g_message ("e_dialog_combo_box_set(): could not find value %d in value map!",
+ value);
+}
+
+/**
+ * e_dialog_combo_box_get:
+ * @widget: A #GtkComboBox.
+ * @value_map: Map from enumeration values to array indices.
+ *
+ * Queries the selected item in a #GtkComboBox. Please read the description
+ * of e_dialog_radio_set() to see how @value_map maps enumeration values to item
+ * indices.
+ *
+ * Return value: Enumeration value which corresponds to the selected item in the
+ * combo box.
+ **/
+int
+e_dialog_combo_box_get (GtkWidget *widget, const int *value_map)
+{
+ int i;
+
+ g_return_val_if_fail (widget != NULL, -1);
+ g_return_val_if_fail (GTK_IS_COMBO_BOX (widget), -1);
+ g_return_val_if_fail (value_map != NULL, -1);
+
+ i = index_to_value (value_map, gtk_combo_box_get_active (GTK_COMBO_BOX (widget)));
+ if (i == -1) {
+ g_message ("e_dialog_combo_box_get(): could not find index %d in value map!", i);
+ return -1;
+ }
+ return i;
+}
+
+/**
* e_dialog_dateedit_set:
* @widget: A #GnomeDateEdit widget.
* @t: Date/time value.
diff --git a/e-util/e-dialog-widgets.h b/e-util/e-dialog-widgets.h
index a006092e04..5d614d7f2a 100644
--- a/e-util/e-dialog-widgets.h
+++ b/e-util/e-dialog-widgets.h
@@ -44,6 +44,9 @@ int e_dialog_spin_get_int (GtkWidget *widget);
void e_dialog_option_menu_set (GtkWidget *widget, int value, const int *value_map);
int e_dialog_option_menu_get (GtkWidget *widget, const int *value_map);
+void e_dialog_combo_box_set (GtkWidget *widget, int value, const int *value_map);
+int e_dialog_combo_box_get (GtkWidget *widget, const int *value_map);
+
void e_dialog_dateedit_set (GtkWidget *widget, time_t t);
time_t e_dialog_dateedit_get (GtkWidget *widget);
diff --git a/ui/ChangeLog b/ui/ChangeLog
index bb72e7356d..81186e4b3f 100644
--- a/ui/ChangeLog
+++ b/ui/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-19 Chenthill Palanisamy <pchenthill@novell.com>
+
+ committing for David Trowbridge <trowbrds cs colorado edu>
+
+ * evolution-calendar.xml: Removed the Publish FreeBusy menu item.
+
2005-12-16 Shreyas Srinivasan <sshreyas@novell.com>
* evolution-mail-message.xml: Fix #315901, Add shortcut to
diff --git a/ui/evolution-calendar.xml b/ui/evolution-calendar.xml
index 046c84144f..edf0b18a20 100644
--- a/ui/evolution-calendar.xml
+++ b/ui/evolution-calendar.xml
@@ -23,8 +23,7 @@
<cmd name="Delete" _tip="Delete the appointment" accel="*Control*d" pixtype="stock" pixname="gtk-delete"/>
<cmd name="DeleteOccurrence" _tip="Delete this occurrence" pixtype="stock" pixname="gtk-delete"/>
<cmd name="DeleteAllOccurrences" _tip="Delete All Occurrences" pixtype="stock" pixname="gtk-delete"/>
-
- <cmd name="PublishFreeBusy" _tip="Publish Free/Busy information for this calendar"/>
+
<cmd name="CalendarPurge" _label="Purg_e" _tip="Purge old appointments and meetings" accel="*Control*e"/>
</commands>
@@ -69,7 +68,6 @@
<placeholder name="ActionsPlaceholder">
<submenu name="Actions" _label="_Actions">
- <menuitem name="PublishFreeBusy" verb="" _label="_Publish Free/Busy Information"/>
<menuitem name="CalendarPurge" verb=""/>
</submenu>
</placeholder>