aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
authorDamon Chaplin <damon@helixcode.com>2000-10-12 02:19:16 +0800
committerDamon Chaplin <damon@src.gnome.org>2000-10-12 02:19:16 +0800
commit322c0cad7043d9b4b10b7dc71cec028ad00834d9 (patch)
treeafbb90d10c30799fa790d9384c543e71a768854c /calendar/gui/dialogs
parentc865d05f0f66f61975c69ae7acb4bc8878d3e47b (diff)
downloadgsoc2013-evolution-322c0cad7043d9b4b10b7dc71cec028ad00834d9.tar
gsoc2013-evolution-322c0cad7043d9b4b10b7dc71cec028ad00834d9.tar.gz
gsoc2013-evolution-322c0cad7043d9b4b10b7dc71cec028ad00834d9.tar.bz2
gsoc2013-evolution-322c0cad7043d9b4b10b7dc71cec028ad00834d9.tar.lz
gsoc2013-evolution-322c0cad7043d9b4b10b7dc71cec028ad00834d9.tar.xz
gsoc2013-evolution-322c0cad7043d9b4b10b7dc71cec028ad00834d9.tar.zst
gsoc2013-evolution-322c0cad7043d9b4b10b7dc71cec028ad00834d9.zip
call calendar_config_write_on_exit() to write out some special config
2000-10-11 Damon Chaplin <damon@helixcode.com> * gui/main.c (main): call calendar_config_write_on_exit() to write out some special config settings (as the mail component does). * gui/calendar-commands.c (properties_cmd): changed to use the new preferences dialog. (update_all_config_settings): new function to iterate over all the calendars and update the config settings. * gui/dialogs/cal-prefs-dialog.glade: preferences dialog. * gui/dialogs/cal-prefs-dialog.[hc]: new files for the preferences dialog. * gui/calendar-config.[hc]: new files to handle loading/saving config settings. * cal-util/cal-recur.c: fixed bug in YEARLY when no filters were set, plus minor changes. * cal-util/test-recur.c: updated. * gui/e-day-view-time-item.c: * gui/popup-menu.c: update to #include <gal/widgets/e-gui-utils.h> * gui/component-factory.c (owner_set_cb): called calendar_config_init. (owner_set_cb): (owner_unset_cb): updated the prototypes. * gui/main.c (main): added call to calendar_config_write_on_exit(). * gui/component-factory.h: * gui/component-factory.c (owner_set_cb): added global evolution_dir just like the mail component, so we know we to store config stuff. svn path=/trunk/; revision=5856
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/Makefile.am8
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.c464
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.glade1243
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.glade.h67
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.h69
5 files changed, 1849 insertions, 2 deletions
diff --git a/calendar/gui/dialogs/Makefile.am b/calendar/gui/dialogs/Makefile.am
index 98646769c1..b39c2a7eac 100644
--- a/calendar/gui/dialogs/Makefile.am
+++ b/calendar/gui/dialogs/Makefile.am
@@ -16,15 +16,19 @@ noinst_LIBRARIES = libcal-dialogs.a
libcal_dialogs_a_SOURCES = \
alarm-notify-dialog.c \
alarm-notify-dialog.h \
+ cal-prefs-dialog.c \
+ cal-prefs-dialog.h \
task-editor.c \
task-editor.h
glade_DATA = \
alarm-notify.glade \
+ cal-prefs-dialog.glade \
task-editor-dialog.glade
-glade_messages = \
- alarm-notify.glade.h \
+glade_messages = \
+ alarm-notify.glade.h \
+ cal-prefs-dialog.glade.h \
task-editor-dialog.glade.h
EXTRA_DIST = \
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c
new file mode 100644
index 0000000000..9a50db60b6
--- /dev/null
+++ b/calendar/gui/dialogs/cal-prefs-dialog.c
@@ -0,0 +1,464 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * Author :
+ * Damon Chaplin <damon@helixcode.com>
+ *
+ * Copyright 2000, Helix Code, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+/*
+ * CalPrefsDialog - a GtkObject which handles a libglade-loaded dialog
+ * to edit the calendar preference settings.
+ */
+
+#include <config.h>
+#include <gnome.h>
+#include <glade/glade.h>
+#include <gal/util/e-util.h>
+#include <e-util/e-dialog-widgets.h>
+#include <widgets/misc/e-dateedit.h>
+#include "cal-prefs-dialog.h"
+#include "../calendar-config.h"
+#include "../calendar-commands.h"
+
+
+typedef struct {
+ /* Glade XML data */
+ GladeXML *xml;
+
+ GtkWidget *dialog;
+
+ GtkWidget *working_days[7];
+ GtkWidget *week_start_day;
+ GtkWidget *start_of_day;
+ GtkWidget *end_of_day;
+ GtkWidget *use_12_hour;
+ GtkWidget *use_24_hour;
+ GtkWidget *time_divisions;
+ GtkWidget *show_end_times;
+ GtkWidget *compress_weekend;
+ GtkWidget *dnav_show_week_no;
+} CalPrefsDialogPrivate;
+
+static const int week_start_day_map[] = {
+ 1, 2, 3, 4, 5, 6, 0, -1
+};
+
+static const int time_division_map[] = {
+ 60, 30, 15, 10, 5, -1
+};
+
+static void cal_prefs_dialog_class_init (CalPrefsDialogClass *class);
+static void cal_prefs_dialog_init (CalPrefsDialog *prefs);
+static gboolean get_widgets (CalPrefsDialog *prefs);
+static void cal_prefs_dialog_destroy (GtkObject *object);
+static void cal_prefs_dialog_init_widgets (CalPrefsDialog *prefs);
+static void cal_prefs_dialog_button_clicked (GtkWidget *dialog,
+ gint button,
+ CalPrefsDialog *prefs);
+static void cal_prefs_dialog_use_24_hour_toggled(GtkWidget *button,
+ CalPrefsDialog *prefs);
+static void cal_prefs_dialog_show_config (CalPrefsDialog *prefs);
+static void cal_prefs_dialog_update_config (CalPrefsDialog *prefs);
+
+GtkWidget* cal_prefs_dialog_create_time_edit (void);
+
+static GtkObjectClass *parent_class;
+
+E_MAKE_TYPE (cal_prefs_dialog, "CalPrefsDialog", CalPrefsDialog,
+ cal_prefs_dialog_class_init, cal_prefs_dialog_init,
+ GTK_TYPE_OBJECT)
+
+
+static void
+cal_prefs_dialog_class_init (CalPrefsDialogClass *class)
+{
+ GtkObjectClass *object_class;
+
+ object_class = (GtkObjectClass *) class;
+
+ parent_class = gtk_type_class (GTK_TYPE_OBJECT);
+
+ object_class->destroy = cal_prefs_dialog_destroy;
+}
+
+
+static void
+cal_prefs_dialog_init (CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+
+ priv = g_new0 (CalPrefsDialogPrivate, 1);
+ prefs->priv = priv;
+
+}
+
+
+/**
+ * cal_prefs_dialog_new:
+ * @Returns: a new #CalPrefsDialog.
+ *
+ * Creates a new #CalPrefsDialog.
+ **/
+CalPrefsDialog *
+cal_prefs_dialog_new (void)
+{
+ CalPrefsDialog *prefs;
+
+ prefs = CAL_PREFS_DIALOG (gtk_type_new (cal_prefs_dialog_get_type ()));
+ return cal_prefs_dialog_construct (prefs);
+}
+
+
+/**
+ * cal_prefs_dialog_construct:
+ * @prefs: A #CalPrefsDialog.
+ *
+ * Constructs a task editor by loading its Glade XML file.
+ *
+ * Return value: The same object as @prefs, or NULL if the widgets could not be
+ * created. In the latter case, the task editor will automatically be
+ * destroyed.
+ **/
+CalPrefsDialog *
+cal_prefs_dialog_construct (CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+
+ g_return_val_if_fail (IS_CAL_PREFS_DIALOG (prefs), NULL);
+
+ priv = prefs->priv;
+
+ /* Load the content widgets */
+
+ priv->xml = glade_xml_new (EVOLUTION_GLADEDIR "/cal-prefs-dialog.glade", NULL);
+ if (!priv->xml) {
+ g_message ("cal_prefs_dialog_construct(): Could not load the Glade XML file!");
+ goto error;
+ }
+
+ if (!get_widgets (prefs)) {
+ g_message ("cal_prefs_dialog_construct(): Could not find all widgets in the XML file!");
+ goto error;
+ }
+
+ cal_prefs_dialog_init_widgets (prefs);
+
+ cal_prefs_dialog_show_config (prefs);
+
+ gtk_widget_show (priv->dialog);
+
+ return prefs;
+
+ error:
+
+ gtk_object_unref (GTK_OBJECT (prefs));
+ return NULL;
+}
+
+
+/* Gets the widgets from the XML file and returns if they are all available.
+ */
+static gboolean
+get_widgets (CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+
+ priv = prefs->priv;
+
+#define GW(name) glade_xml_get_widget (priv->xml, name)
+
+ priv->dialog = GW ("cal-prefs-dialog");
+
+ /* The indices must match the mktime() values. */
+ priv->working_days[0] = GW ("sun_button");
+ priv->working_days[1] = GW ("mon_button");
+ priv->working_days[2] = GW ("tue_button");
+ priv->working_days[3] = GW ("wed_button");
+ priv->working_days[4] = GW ("thu_button");
+ priv->working_days[5] = GW ("fri_button");
+ priv->working_days[6] = GW ("sat_button");
+
+ priv->week_start_day = GW ("first_day_of_week");
+ priv->start_of_day = GW ("start_of_day");
+ priv->end_of_day = GW ("end_of_day");
+ priv->use_12_hour = GW ("use_12_hour");
+ priv->use_24_hour = GW ("use_24_hour");
+ priv->time_divisions = GW ("time_divisions");
+ priv->show_end_times = GW ("show_end_times");
+ priv->compress_weekend = GW ("compress_weekend");
+ priv->dnav_show_week_no = GW ("dnav_show_week_no");
+
+#undef GW
+
+ return (priv->dialog
+ && priv->working_days[0]
+ && priv->working_days[1]
+ && priv->working_days[2]
+ && priv->working_days[3]
+ && priv->working_days[4]
+ && priv->working_days[5]
+ && priv->working_days[6]
+ && priv->week_start_day
+ && priv->start_of_day
+ && priv->end_of_day
+ && priv->use_12_hour
+ && priv->use_24_hour
+ && priv->time_divisions
+ && priv->show_end_times
+ && priv->compress_weekend
+ && priv->dnav_show_week_no);
+}
+
+
+static void
+cal_prefs_dialog_destroy (GtkObject *object)
+{
+ CalPrefsDialog *prefs;
+ CalPrefsDialogPrivate *priv;
+
+ g_return_if_fail (IS_CAL_PREFS_DIALOG (object));
+
+ prefs = CAL_PREFS_DIALOG (object);
+ priv = prefs->priv;
+
+
+ g_free (priv);
+ prefs->priv = NULL;
+
+ if (GTK_OBJECT_CLASS (parent_class)->destroy)
+ (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+}
+
+
+/* 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_time_popup_range (E_DATE_EDIT (dedit), 0, 24);
+ e_date_edit_set_show_date (E_DATE_EDIT (dedit), FALSE);
+
+ return dedit;
+}
+
+
+void
+cal_prefs_dialog_show (CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+
+ g_return_if_fail (IS_CAL_PREFS_DIALOG (prefs));
+
+ priv = prefs->priv;
+
+ /* If the dialog is already show just raise it, otherwise refresh the
+ config settings and show it. */
+ if (GTK_WIDGET_MAPPED (priv->dialog)) {
+ gdk_window_raise (priv->dialog->window);
+ } else {
+ cal_prefs_dialog_show_config (prefs);
+ gtk_widget_show (priv->dialog);
+ }
+}
+
+
+/* Connects any necessary signal handlers. */
+static void
+cal_prefs_dialog_init_widgets (CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+
+ priv = prefs->priv;
+
+ gtk_signal_connect (GTK_OBJECT (priv->dialog), "clicked",
+ GTK_SIGNAL_FUNC (cal_prefs_dialog_button_clicked),
+ prefs);
+
+ gtk_signal_connect (GTK_OBJECT (priv->use_24_hour), "toggled",
+ GTK_SIGNAL_FUNC (cal_prefs_dialog_use_24_hour_toggled),
+ prefs);
+}
+
+
+static void
+cal_prefs_dialog_button_clicked (GtkWidget *dialog,
+ gint button,
+ CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+
+ g_return_if_fail (IS_CAL_PREFS_DIALOG (prefs));
+
+ priv = prefs->priv;
+
+ /* OK & Apply buttons update the config settings. */
+ if (button == 0 || button == 1)
+ cal_prefs_dialog_update_config (prefs);
+
+ /* OK & Close buttons close the dialog. */
+ if (button == 0 || button == 2)
+ gtk_widget_hide (priv->dialog);
+}
+
+
+static void
+cal_prefs_dialog_use_24_hour_toggled (GtkWidget *button,
+ CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+ gboolean use_24_hour;
+
+ priv = prefs->priv;
+
+ g_print ("In cal_prefs_dialog_use_24_hour_toggled\n");
+
+ use_24_hour = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->use_24_hour));
+
+ e_date_edit_set_use_24_hour_format (E_DATE_EDIT (priv->start_of_day),
+ use_24_hour);
+ e_date_edit_set_use_24_hour_format (E_DATE_EDIT (priv->end_of_day),
+ use_24_hour);
+}
+
+
+/* Shows the current config settings in the dialog. */
+static void
+cal_prefs_dialog_show_config (CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+ CalWeekdays working_days;
+ gint mask, day, week_start_day, time_divisions;
+
+ priv = prefs->priv;
+
+ /* Working Days. */
+ working_days = calendar_config_get_working_days ();
+ mask = 1 << 0;
+ for (day = 0; day < 7; day++) {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->working_days[day]), (working_days & mask) ? TRUE : FALSE);
+ mask <<= 1;
+ }
+
+ /* Week Start Day. */
+ week_start_day = calendar_config_get_week_start_day ();
+ e_dialog_option_menu_set (priv->week_start_day, week_start_day,
+ week_start_day_map);
+
+ /* Start of Day. */
+ e_date_edit_set_time_of_day (E_DATE_EDIT (priv->start_of_day),
+ calendar_config_get_day_start_hour (),
+ calendar_config_get_day_start_minute ());
+
+ /* End of Day. */
+ e_date_edit_set_time_of_day (E_DATE_EDIT (priv->end_of_day),
+ calendar_config_get_day_end_hour (),
+ calendar_config_get_day_end_minute ());
+
+ /* 12/24 Hour Format. */
+ if (calendar_config_get_24_hour_format ())
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_24_hour), TRUE);
+ else
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_12_hour), TRUE);
+
+ /* Time Divisions. */
+ time_divisions = calendar_config_get_time_divisions ();
+ e_dialog_option_menu_set (priv->time_divisions, time_divisions,
+ time_division_map);
+
+ /* Show Appointment End Times. */
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->show_end_times),
+ calendar_config_get_show_event_end ());
+
+ /* Compress Weekend. */
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->compress_weekend), calendar_config_get_compress_weekend ());
+
+ /* Date Navigator - Show Week Numbers. */
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->dnav_show_week_no), calendar_config_get_dnav_show_week_no ());
+}
+
+
+/* Updates the config values based on the settings in the dialog. */
+static void
+cal_prefs_dialog_update_config (CalPrefsDialog *prefs)
+{
+ CalPrefsDialogPrivate *priv;
+ CalWeekdays working_days;
+ gint mask, day, week_start_day, time_divisions, hour, minute;
+
+ priv = prefs->priv;
+
+ /* Working Days. */
+ working_days = 0;
+ mask = 1 << 0;
+ for (day = 0; day < 7; day++) {
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->working_days[day])))
+ working_days |= mask;
+ mask <<= 1;
+ }
+ calendar_config_set_working_days (working_days);
+
+ /* Week Start Day. */
+ week_start_day = e_dialog_option_menu_get (priv->week_start_day,
+ week_start_day_map);
+ calendar_config_set_week_start_day (week_start_day);
+
+ /* Start of Day. */
+ if (e_date_edit_get_time_of_day (E_DATE_EDIT (priv->start_of_day),
+ &hour, &minute)) {
+ calendar_config_set_day_start_hour (hour);
+ calendar_config_set_day_start_minute (minute);
+ } else {
+ /* FIXME: Show error dialog? */
+ g_warning ("Couldn't parse start of day");
+ }
+
+ /* End of Day. */
+ if (e_date_edit_get_time_of_day (E_DATE_EDIT (priv->end_of_day),
+ &hour, &minute)) {
+ calendar_config_set_day_end_hour (hour);
+ calendar_config_set_day_end_minute (minute);
+ } else {
+ /* FIXME: Show error dialog? */
+ g_warning ("Couldn't parse end of day");
+ }
+
+ /* 12/24 Hour Format. */
+ calendar_config_set_24_hour_format (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->use_24_hour)));
+
+ /* Time Divisions. */
+ time_divisions = e_dialog_option_menu_get (priv->time_divisions,
+ time_division_map);
+ calendar_config_set_time_divisions (time_divisions);
+
+ /* Show Appointment End Times. */
+ calendar_config_set_show_event_end (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->show_end_times)));
+
+ /* Compress Weekend. */
+ calendar_config_set_compress_weekend (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->compress_weekend)));
+
+ /* Date Navigator - Show Week Numbers. */
+ calendar_config_set_dnav_show_week_no (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->dnav_show_week_no)));
+
+ calendar_config_write ();
+ update_all_config_settings ();
+}
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.glade b/calendar/gui/dialogs/cal-prefs-dialog.glade
new file mode 100644
index 0000000000..c0e225764b
--- /dev/null
+++ b/calendar/gui/dialogs/cal-prefs-dialog.glade
@@ -0,0 +1,1243 @@
+<?xml version="1.0"?>
+<GTK-Interface>
+
+<project>
+ <name>preferences</name>
+ <program_name>preferences</program_name>
+ <directory></directory>
+ <source_directory>src</source_directory>
+ <pixmaps_directory>pixmaps</pixmaps_directory>
+ <language>C</language>
+ <gnome_support>True</gnome_support>
+ <gettext_support>True</gettext_support>
+ <output_translatable_strings>True</output_translatable_strings>
+ <translatable_strings_file>cal-prefs-dialog.glade.h</translatable_strings_file>
+</project>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>cal-prefs-dialog</name>
+ <title>Calendar Preferences</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>True</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>vbox1</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>hbuttonbox1</name>
+ <layout_style>GTK_BUTTONBOX_END</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button1</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button2</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>button3</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <stock_button>GNOME_STOCK_BUTTON_CLOSE</stock_button>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkNotebook</class>
+ <name>notebook1</name>
+ <can_focus>True</can_focus>
+ <show_tabs>True</show_tabs>
+ <show_border>True</show_border>
+ <tab_pos>GTK_POS_TOP</tab_pos>
+ <scrollable>False</scrollable>
+ <tab_hborder>2</tab_hborder>
+ <tab_vborder>2</tab_vborder>
+ <popup_enable>False</popup_enable>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox8</name>
+ <border_width>4</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>6</spacing>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame9</name>
+ <label>Work week</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox9</name>
+ <border_width>4</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>3</spacing>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox8</name>
+ <homogeneous>True</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>mon_button</name>
+ <can_focus>True</can_focus>
+ <label>Mon</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>tue_button</name>
+ <can_focus>True</can_focus>
+ <label>Tue</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>wed_button</name>
+ <can_focus>True</can_focus>
+ <label>Wed</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>thu_button</name>
+ <can_focus>True</can_focus>
+ <label>Thu</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>fri_button</name>
+ <can_focus>True</can_focus>
+ <label>Fri</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>sat_button</name>
+ <can_focus>True</can_focus>
+ <label>Sat</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>sun_button</name>
+ <can_focus>True</can_focus>
+ <label>Sun</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox9</name>
+ <homogeneous>False</homogeneous>
+ <spacing>4</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label16</name>
+ <label>First day of week:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkOptionMenu</class>
+ <name>first_day_of_week</name>
+ <can_focus>True</can_focus>
+ <items>Monday
+Tuesday
+Wednesday
+Thursday
+Friday
+Saturday
+Sunday
+</items>
+ <initial_choice>0</initial_choice>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox11</name>
+ <homogeneous>False</homogeneous>
+ <spacing>4</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label17</name>
+ <label>Start of day:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>Custom</class>
+ <name>start_of_day</name>
+ <creation_function>cal_prefs_dialog_create_time_edit</creation_function>
+ <int1>0</int1>
+ <int2>0</int2>
+ <last_modification_time>Tue, 10 Oct 2000 15:12:12 GMT</last_modification_time>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label18</name>
+ <label>End of day:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>Custom</class>
+ <name>end_of_day</name>
+ <creation_function>cal_prefs_dialog_create_time_edit</creation_function>
+ <int1>0</int1>
+ <int2>0</int2>
+ <last_modification_time>Tue, 10 Oct 2000 15:12:21 GMT</last_modification_time>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame10</name>
+ <label>Display options</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>table4</name>
+ <border_width>4</border_width>
+ <rows>4</rows>
+ <columns>3</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>4</column_spacing>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label19</name>
+ <label>Time divisions:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>7.45058e-09</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label20</name>
+ <label>Time format:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>show_end_times</name>
+ <can_focus>True</can_focus>
+ <label>Show appointment end times</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>3</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>compress_weekend</name>
+ <can_focus>True</can_focus>
+ <label>Compress weekends</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>3</right_attach>
+ <top_attach>3</top_attach>
+ <bottom_attach>4</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox10</name>
+ <homogeneous>True</homogeneous>
+ <spacing>4</spacing>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>3</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>True</yfill>
+ </child>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>use_12_hour</name>
+ <can_focus>True</can_focus>
+ <label>12 hour (am/pm)</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>time_format_group</group>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>use_24_hour</name>
+ <can_focus>True</can_focus>
+ <label>24 hour</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>time_format_group</group>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkAlignment</class>
+ <name>alignment4</name>
+ <xalign>7.45058e-09</xalign>
+ <yalign>0.5</yalign>
+ <xscale>0</xscale>
+ <yscale>1</yscale>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkOptionMenu</class>
+ <name>time_divisions</name>
+ <can_focus>True</can_focus>
+ <items>60 minutes
+30 minutes
+15 minutes
+10 minutes
+05 minutes
+</items>
+ <initial_choice>0</initial_choice>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame11</name>
+ <label>Date navigator options</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>dnav_show_week_no</name>
+ <border_width>4</border_width>
+ <can_focus>True</can_focus>
+ <label>Show week numbers</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label7</name>
+ <label>Calendar</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox3</name>
+ <border_width>4</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>4</spacing>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox4</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame3</name>
+ <label>Show</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox4</name>
+ <border_width>4</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton1</name>
+ <can_focus>True</can_focus>
+ <label>Due Date</label>
+ <active>True</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton2</name>
+ <can_focus>True</can_focus>
+ <label>Time Until Due</label>
+ <active>True</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton3</name>
+ <can_focus>True</can_focus>
+ <label>Priority</label>
+ <active>True</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame4</name>
+ <label>Highlight</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox5</name>
+ <border_width>4</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton4</name>
+ <can_focus>True</can_focus>
+ <label>Overdue Items</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton5</name>
+ <can_focus>True</can_focus>
+ <label>Items Due Today</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton6</name>
+ <can_focus>True</can_focus>
+ <label>Items Not Yet Due</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame5</name>
+ <label>Colors</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>table3</name>
+ <border_width>4</border_width>
+ <rows>3</rows>
+ <columns>2</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>4</row_spacing>
+ <column_spacing>4</column_spacing>
+
+ <widget>
+ <class>GnomeColorPicker</class>
+ <name>colorpicker1</name>
+ <can_focus>True</can_focus>
+ <dither>True</dither>
+ <use_alpha>False</use_alpha>
+ <title>Pick a color</title>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GnomeColorPicker</class>
+ <name>colorpicker2</name>
+ <can_focus>True</can_focus>
+ <dither>True</dither>
+ <use_alpha>False</use_alpha>
+ <title>Pick a color</title>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GnomeColorPicker</class>
+ <name>colorpicker3</name>
+ <can_focus>True</can_focus>
+ <dither>True</dither>
+ <use_alpha>False</use_alpha>
+ <title>Pick a color</title>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkAlignment</class>
+ <name>alignment1</name>
+ <xalign>1</xalign>
+ <yalign>0.5</yalign>
+ <xscale>1</xscale>
+ <yscale>1</yscale>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>True</yfill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label8</name>
+ <label>Items Not Yet Due:</label>
+ <justify>GTK_JUSTIFY_RIGHT</justify>
+ <wrap>False</wrap>
+ <xalign>1</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkAlignment</class>
+ <name>alignment2</name>
+ <xalign>1</xalign>
+ <yalign>0.5</yalign>
+ <xscale>1</xscale>
+ <yscale>1</yscale>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>True</yfill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label9</name>
+ <label>Items Due Today:</label>
+ <justify>GTK_JUSTIFY_RIGHT</justify>
+ <wrap>True</wrap>
+ <xalign>1</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkAlignment</class>
+ <name>alignment3</name>
+ <xalign>1</xalign>
+ <yalign>0.5</yalign>
+ <xscale>1</xscale>
+ <yscale>1</yscale>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>True</yfill>
+ </child>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label10</name>
+ <label>Overdue Items:</label>
+ <justify>GTK_JUSTIFY_RIGHT</justify>
+ <wrap>False</wrap>
+ <xalign>1</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label11</name>
+ <label>TaskPad</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox6</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame6</name>
+ <border_width>4</border_width>
+ <label>Defaults</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>4</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox5</name>
+ <border_width>4</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton7</name>
+ <border_width>2</border_width>
+ <can_focus>True</can_focus>
+ <label>Remind me of all appointments</label>
+ <active>True</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>spinbutton1</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>1</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label12</name>
+ <label>minutes before they occur.</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>3</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame7</name>
+ <border_width>4</border_width>
+ <label>Visual Alarms</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>4</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton8</name>
+ <border_width>4</border_width>
+ <can_focus>True</can_focus>
+ <label>Beep when alarm windows appear.</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>frame8</name>
+ <border_width>4</border_width>
+ <label>Audio Alarms</label>
+ <label_xalign>0</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>4</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>vbox7</name>
+ <border_width>4</border_width>
+ <homogeneous>False</homogeneous>
+ <spacing>4</spacing>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox6</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton9</name>
+ <can_focus>True</can_focus>
+ <label>Alarms timeout after</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>spinbutton2</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>5</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label13</name>
+ <label>seconds.</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>hbox7</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>checkbutton10</name>
+ <can_focus>True</can_focus>
+ <label>Enable snoozing for</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>spinbutton3</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>600</value>
+ <lower>0</lower>
+ <upper>1000</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>label14</name>
+ <label>seconds.</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>label15</name>
+ <label>Reminders</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+</GTK-Interface>
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.glade.h b/calendar/gui/dialogs/cal-prefs-dialog.glade.h
new file mode 100644
index 0000000000..0a29d11999
--- /dev/null
+++ b/calendar/gui/dialogs/cal-prefs-dialog.glade.h
@@ -0,0 +1,67 @@
+/*
+ * Translatable strings file generated by Glade.
+ * Add this file to your project's POTFILES.in.
+ * DO NOT compile it as part of your application.
+ */
+
+gchar *s = N_("Calendar Preferences");
+gchar *s = N_("Work week");
+gchar *s = N_("Mon");
+gchar *s = N_("Tue");
+gchar *s = N_("Wed");
+gchar *s = N_("Thu");
+gchar *s = N_("Fri");
+gchar *s = N_("Sat");
+gchar *s = N_("Sun");
+gchar *s = N_("First day of week:");
+gchar *s = N_("Monday");
+gchar *s = N_("Tuesday");
+gchar *s = N_("Wednesday");
+gchar *s = N_("Thursday");
+gchar *s = N_("Friday");
+gchar *s = N_("Saturday");
+gchar *s = N_("Sunday");
+gchar *s = N_("Start of day:");
+gchar *s = N_("End of day:");
+gchar *s = N_("Display options");
+gchar *s = N_("Time divisions:");
+gchar *s = N_("Time format:");
+gchar *s = N_("Show appointment end times");
+gchar *s = N_("Compress weekends");
+gchar *s = N_("12 hour (am/pm)");
+gchar *s = N_("24 hour");
+gchar *s = N_("60 minutes");
+gchar *s = N_("30 minutes");
+gchar *s = N_("15 minutes");
+gchar *s = N_("10 minutes");
+gchar *s = N_("05 minutes");
+gchar *s = N_("Date navigator options");
+gchar *s = N_("Show week numbers");
+gchar *s = N_("Calendar");
+gchar *s = N_("Show");
+gchar *s = N_("Due Date");
+gchar *s = N_("Time Until Due");
+gchar *s = N_("Priority");
+gchar *s = N_("Highlight");
+gchar *s = N_("Overdue Items");
+gchar *s = N_("Items Due Today");
+gchar *s = N_("Items Not Yet Due");
+gchar *s = N_("Colors");
+gchar *s = N_("Pick a color");
+gchar *s = N_("Pick a color");
+gchar *s = N_("Pick a color");
+gchar *s = N_("Items Not Yet Due:");
+gchar *s = N_("Items Due Today:");
+gchar *s = N_("Overdue Items:");
+gchar *s = N_("TaskPad");
+gchar *s = N_("Defaults");
+gchar *s = N_("Remind me of all appointments");
+gchar *s = N_("minutes before they occur.");
+gchar *s = N_("Visual Alarms");
+gchar *s = N_("Beep when alarm windows appear.");
+gchar *s = N_("Audio Alarms");
+gchar *s = N_("Alarms timeout after");
+gchar *s = N_("seconds.");
+gchar *s = N_("Enable snoozing for");
+gchar *s = N_("seconds.");
+gchar *s = N_("Reminders");
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.h b/calendar/gui/dialogs/cal-prefs-dialog.h
new file mode 100644
index 0000000000..52f115e0ac
--- /dev/null
+++ b/calendar/gui/dialogs/cal-prefs-dialog.h
@@ -0,0 +1,69 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * Author :
+ * Damon Chaplin <damon@helixcode.com>
+ *
+ * Copyright 2000, Helix Code, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+/*
+ * CalPrefsDialog - a GtkObject which handles a libglade-loaded dialog
+ * to edit the calendar preference settings.
+ */
+
+#ifndef _CAL_PREFS_DIALOG_H_
+#define _CAL_PREFS_DIALOG_H_
+
+#include <gtk/gtkobject.h>
+#include <libgnome/gnome-defs.h>
+
+BEGIN_GNOME_DECLS
+
+
+#define CAL_PREFS_DIALOG(obj) GTK_CHECK_CAST (obj, cal_prefs_dialog_get_type (), CalPrefsDialog)
+#define CAL_PREFS_DIALOG_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, cal_prefs_dialog_get_type (), CalPrefsDialogClass)
+#define IS_CAL_PREFS_DIALOG(obj) GTK_CHECK_TYPE (obj, cal_prefs_dialog_get_type ())
+
+
+typedef struct _CalPrefsDialog CalPrefsDialog;
+typedef struct _CalPrefsDialogClass CalPrefsDialogClass;
+
+struct _CalPrefsDialog
+{
+ GtkObject object;
+
+ /* Private data */
+ gpointer priv;
+};
+
+struct _CalPrefsDialogClass
+{
+ GtkObjectClass parent_class;
+};
+
+
+GtkType cal_prefs_dialog_get_type (void);
+CalPrefsDialog* cal_prefs_dialog_construct (CalPrefsDialog *prefs);
+CalPrefsDialog* cal_prefs_dialog_new (void);
+
+void cal_prefs_dialog_show (CalPrefsDialog *prefs);
+
+END_GNOME_DECLS
+
+#endif /* _CAL_PREFS_DIALOG_H_ */