[evolution-patches] calendar publishing



In the spirit of friendly competition (and financial self-interest ;),
here's my solution for this.

Basically, what I've done for this was to EConfig-ize the calendar
preferences page and move publishing into a plugin (because EPlugin is
just so very slick).  A side effect of this is that the calendar config
page is a lot more consistent in terms of spacing, etc.  As another part
of this, I've folded Free/Busy publishing into the same system, so you
can select "publish as: [free busy/ical]".

Also, I've made the actions->publish menu item part of the shell menus
rather than the component, since try as I might, I just couldn't get
calendar.bonobomenu to cooperate.  If anyone has any advice on this, I'd
be thrilled to hear it.

Should this go in, there are a couple more steps.  Neither of these
should have a significant impact on what's already there:
1. I'd like to add an "automatic" publishing mode that just pushes a new
version whenever a calendar is changed.
2. Simple publish-as HTML option.  I'm thinking at this point that it
can't be too complicated, since if a user wants a good online calendar,
they'll do much better with phpicalendar or another similar piece of
software.

Note that while I've tried to test the new Free/Busy publishing stuff to
avoid regressions, I don't use it personally, so I may have missed
something important in terms of functionality.

Let the games begin :)

-David

Attachment: publishing-plugin.tar.gz
Description: application/compressed-tar

? plugins/publish-calendar
Index: configure.in
===================================================================
RCS file: /cvs/gnome/evolution/configure.in,v
retrieving revision 1.794
diff -u -r1.794 configure.in
--- configure.in	27 Mar 2005 12:20:55 -0000	1.794
+++ configure.in	29 Mar 2005 02:28:25 -0000
@@ -1335,9 +1335,9 @@
 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="calendar-file calendar-http calendar-weather groupwise-account-setup itip-formatter plugin-manager send-options shared-folder groupwise-send-options exchange-account-setup groupwise-status-tracking default-source addressbook-file addressbook-groupwise startup-wizard" 
+plugins_base="calendar-file calendar-http calendar-weather groupwise-account-setup itip-formatter plugin-manager send-options shared-folder groupwise-send-options exchange-account-setup groupwise-status-tracking default-source addressbook-file addressbook-groupwise startup-wizard"
 
-plugins_standard="bbdb subject-thread save-attachments prefer-plain save-calendar select-one-source copy-tool mail-to-task mark-calendar-offline audio-inline mailing-list-actions new-mail-notify" 
+plugins_standard="bbdb subject-thread save-attachments prefer-plain save-calendar select-one-source copy-tool mail-to-task mark-calendar-offline audio-inline mailing-list-actions new-mail-notify publish-calendar"
 
 plugins_experimental="backup-restore folder-unsubscribe mail-to-meeting"
 
@@ -1590,6 +1590,7 @@
 plugins/addressbook-file/Makefile
 plugins/addressbook-groupwise/Makefile
 plugins/startup-wizard/Makefile
+plugins/publish-calendar/Makefile
 smime/Makefile
 smime/lib/Makefile
 smime/gui/Makefile
Index: calendar/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2703
diff -u -r1.2703 ChangeLog
--- calendar/ChangeLog	28 Mar 2005 11:27:17 -0000	1.2703
+++ calendar/ChangeLog	29 Mar 2005 02:28:29 -0000
@@ -1,3 +1,21 @@
+2005-03-28  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-03-28  Rodrigo Moya <rodrigo novell com>
 
 	Fixes #44719
Index: calendar/gui/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/Makefile.am,v
retrieving revision 1.303
diff -u -r1.303 Makefile.am
--- calendar/gui/Makefile.am	7 Jan 2005 11:38:57 -0000	1.303
+++ calendar/gui/Makefile.am	29 Mar 2005 02:28:29 -0000
@@ -167,8 +167,6 @@
 	e-meeting-utils.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		\
Index: calendar/gui/calendar-commands.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-commands.c,v
retrieving revision 1.159
diff -u -r1.159 calendar-commands.c
--- calendar/gui/calendar-commands.c	1 Feb 2005 11:46:33 -0000	1.159
+++ calendar/gui/calendar-commands.c	29 Mar 2005 02:28:29 -0000
@@ -62,7 +62,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 @@
 }
 
 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 @@
 	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
Index: calendar/gui/calendar-component.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-component.c,v
retrieving revision 1.201
diff -u -r1.201 calendar-component.c
--- calendar/gui/calendar-component.c	22 Mar 2005 15:09:10 -0000	1.201
+++ calendar/gui/calendar-component.c	29 Mar 2005 02:28:29 -0000
@@ -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 @@
 	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)
@@ -1655,27 +1635,6 @@
 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)
Index: calendar/gui/calendar-component.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-component.h,v
retrieving revision 1.16
diff -u -r1.16 calendar-component.h
--- calendar/gui/calendar-component.h	13 Oct 2004 18:37:05 -0000	1.16
+++ calendar/gui/calendar-component.h	29 Mar 2005 02:28:29 -0000
@@ -61,7 +61,5 @@
 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_ */
Index: calendar/gui/calendar-config-keys.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-config-keys.h,v
retrieving revision 1.6
diff -u -r1.6 calendar-config-keys.h
--- calendar/gui/calendar-config-keys.h	18 Dec 2004 13:01:17 -0000	1.6
+++ calendar/gui/calendar-config-keys.h	29 Mar 2005 02:28:29 -0000
@@ -71,7 +71,6 @@
 #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
Index: calendar/gui/calendar-config.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-config.c,v
retrieving revision 1.72
diff -u -r1.72 calendar-config.c
--- calendar/gui/calendar-config.c	31 Dec 2004 16:59:18 -0000	1.72
+++ calendar/gui/calendar-config.c	29 Mar 2005 02:28:30 -0000
@@ -1104,20 +1104,6 @@
 	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)
 {
Index: calendar/gui/e-cal-config.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-cal-config.c,v
retrieving revision 1.3
diff -u -r1.3 e-cal-config.c
--- calendar/gui/e-cal-config.c	31 Jan 2005 21:50:54 -0000	1.3
+++ calendar/gui/e-cal-config.c	29 Mar 2005 02:28:30 -0000
@@ -55,6 +55,9 @@
 				p->source_changed_id = 0;
 			}
 			break; }
+		case EC_CONFIG_TARGET_PREFS: {
+			/* ECalConfigTargetPrefs *s = (ECalConfigTargetPrefs *)t; */
+			break; }
 		}
 	}
 
@@ -64,6 +67,11 @@
 		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 @@
 
 			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 @@
 	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 },
 };
 
Index: calendar/gui/e-cal-config.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-cal-config.h,v
retrieving revision 1.1
diff -u -r1.1 e-cal-config.h
--- calendar/gui/e-cal-config.h	4 Nov 2004 04:36:49 -0000	1.1
+++ calendar/gui/e-cal-config.h	29 Mar 2005 02:28:30 -0000
@@ -44,9 +44,11 @@
 
 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;
@@ -54,12 +56,19 @@
 	struct _ESource *source;
 };
 
+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);
 
 /* ********************************************************************** */
 
Index: calendar/gui/e-calendar-view.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-calendar-view.c,v
retrieving revision 1.77
diff -u -r1.77 e-calendar-view.c
--- calendar/gui/e-calendar-view.c	21 Mar 2005 14:29:15 -0000	1.77
+++ calendar/gui/e-calendar-view.c	29 Mar 2005 02:28:30 -0000
@@ -47,7 +47,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"
@@ -1249,12 +1248,6 @@
 }
 
 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;
@@ -1386,11 +1379,6 @@
 	
 	{ E_POPUP_ITEM, "61.today", N_("Select _Today"), 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 [] = {
Index: calendar/gui/main.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/main.c,v
retrieving revision 1.172
diff -u -r1.172 main.c
--- calendar/gui/main.c	7 Jan 2005 11:38:57 -0000	1.172
+++ calendar/gui/main.c	29 Mar 2005 02:28:30 -0000
@@ -140,8 +140,6 @@
 
 	launch_alarm_daemon ();
 	
-	/* Initialize Calendar Publishing */
-	calendar_component_init_publishing ();
 
 	/* Initialize plugin system */
 	e_plugin_hook_register_type (e_cal_popup_hook_get_type());
@@ -173,9 +171,16 @@
 		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);
Index: calendar/gui/dialogs/Makefile.am
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/Makefile.am,v
retrieving revision 1.69
diff -u -r1.69 Makefile.am
--- calendar/gui/dialogs/Makefile.am	8 Jan 2005 10:53:52 -0000	1.69
+++ calendar/gui/dialogs/Makefile.am	29 Mar 2005 02:28:31 -0000
@@ -79,9 +79,7 @@
 	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		\
@@ -94,8 +92,7 @@
 	recurrence-page.glade		\
 	schedule-page.glade		\
 	task-details-page.glade		\
-	task-page.glade			\
-	url-editor-dialog.glade
+	task-page.glade
 
 CLEANFILES = $(BUILT_SOURCES)
 
Index: calendar/gui/dialogs/cal-prefs-dialog.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/cal-prefs-dialog.c,v
retrieving revision 1.41
diff -u -r1.41 cal-prefs-dialog.c
--- calendar/gui/dialogs/cal-prefs-dialog.c	31 Dec 2004 16:59:18 -0000	1.41
+++ calendar/gui/dialogs/cal-prefs-dialog.c	29 Mar 2005 02:28:31 -0000
@@ -1,15 +1,17 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 
 /*
- * Authors :
+ * Authors:
+ *  David Trowbridge <trowbrds cs colorado edu>
  *  Damon Chaplin <damon ximian com>
  *  Ettore Perazzoli <ettore ximian com>
  *
- * 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
- * License as published by the Free Software Foundation.
+ * 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
@@ -18,37 +20,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 <e-util/e-dialog-widgets.h>
+#include "cal-prefs-dialog.h"
 #include <widgets/misc/e-dateedit.h>
-
+#include <e-util/e-dialog-widgets.h>
+#include <libgnome/gnome-i18n.h>
+#include <string.h>
 
 static const int week_start_day_map[] = {
 	1, 2, 3, 4, 5, 6, 0, -1
@@ -67,72 +54,44 @@
 	CAL_MINUTES, CAL_HOURS, CAL_DAYS, -1
 };
 
-static gboolean get_widgets (DialogData *data);
+static GtkVBoxClass *parent_class = NULL;
 
-static void setup_changes (DialogData *data);
+GtkWidget *cal_prefs_dialog_create_time_edit (void);
 
-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 void
+calendar_prefs_dialog_finalize (GObject *obj)
+{
+	CalendarPrefsDialog *prefs = (CalendarPrefsDialog *) obj;
 
-GtkWidget *cal_prefs_dialog_create_time_edit (void);
+	g_object_unref (prefs->gui);
 
-#define PREFS_WINDOW(dialog_data) GTK_WINDOW (gtk_widget_get_ancestor (GTK_WIDGET (dialog_data), GTK_TYPE_WINDOW))
+	((GObjectClass *)(parent_class))->finalize (obj);
+}
 
-/**
- * cal_prefs_dialog_new:
- *
- * Creates a new #CalPrefsDialog.
- *
- * Return value: a new #CalPrefsDialog.
- **/
-EvolutionConfigControl *
-cal_prefs_dialog_new (void)
-{
-	DialogData *dialog_data;
-	EvolutionConfigControl *config_control;
-
-	dialog_data = g_new0 (DialogData, 1);
-
-	/* Load the content widgets */
-
-	dialog_data->xml = glade_xml_new (EVOLUTION_GLADEDIR "/cal-prefs-dialog.glade", NULL, NULL);
-	if (!dialog_data->xml) {
-		g_message ("cal_prefs_dialog_construct(): Could not load the Glade XML file!");
-		return NULL;
-	}
+static void
+calendar_prefs_dialog_class_init (CalendarPrefsDialogClass *klass)
+{
+	GObjectClass *object_class;
 
-	if (!get_widgets (dialog_data)) {
-		g_message ("cal_prefs_dialog_construct(): Could not find all widgets in the XML file!");
-		return NULL;
-	}
+	object_class = (GObjectClass *) klass;
+	parent_class = g_type_class_ref (GTK_TYPE_VBOX);
 
-	init_widgets (dialog_data);
-	show_config (dialog_data);
+	object_class->finalize = calendar_prefs_dialog_finalize;
+}
 
-	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 void
+calendar_prefs_dialog_init (CalendarPrefsDialog *dialog)
+{
+}
+
+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
@@ -142,460 +101,247 @@
 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));
-}
-
-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);
+		e_dialog_option_menu_get (prefs->default_reminder_units, default_reminder_units_map));
 }
 
 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 (G_OBJECT (prefs->working_days[i]), "toggled", G_CALLBACK (working_days_changed), prefs);
 
-	g_signal_connect (dialog_data->template_url, "changed", G_CALLBACK (template_url_changed), dialog_data);
-}
+	g_signal_connect (G_OBJECT (prefs->timezone), "changed", G_CALLBACK (timezone_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)
+	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);
 
-	data->page = GW ("toplevel-notebook");
+	g_signal_connect (G_OBJECT (prefs->week_start_day), "changed", G_CALLBACK (week_start_day_changed), prefs);
 
-	/* 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);
-}
-
-
-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->use_24_hour), "toggled", G_CALLBACK (use_24_hour_toggled), 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->time_divisions), "changed", G_CALLBACK (time_divisions_changed), prefs);
 
-	dedit = e_date_edit_new ();
+	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);
 
-	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;
-}
+	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 (G_OBJECT (prefs->template_url), "changed", G_CALLBACK (template_url_changed), prefs);
 }
 
 /* Sets the color in a color picker from an X color spec */
@@ -607,360 +353,48 @@
 	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 (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;
@@ -969,73 +403,202 @@
 
 	/* 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 },
+};
 
-	e_dialog_toggle_set (dialog_data->confirm_delete, calendar_config_get_confirm_delete ());
+static void
+eccp_free (EConfig *ec, GSList *items, void *data)
+{
+	g_slist_free (items);
+}
 
-	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);
+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;
+}
+
+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;
 }
Index: calendar/gui/dialogs/cal-prefs-dialog.glade
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/cal-prefs-dialog.glade,v
retrieving revision 1.31
diff -u -r1.31 cal-prefs-dialog.glade
--- calendar/gui/dialogs/cal-prefs-dialog.glade	26 Jan 2005 11:48:21 -0000	1.31
+++ calendar/gui/dialogs/cal-prefs-dialog.glade	29 Mar 2005 02:28:32 -0000
@@ -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,254 @@
   <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>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">12</property>
 
 	  <child>
-	    <widget class="GtkButton" id="button1">
+	    <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-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>
+	      <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="button2">
+	    <widget class="GtkHBox" id="hbox1">
 	      <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="homogeneous">False</property>
+	      <property name="spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label7">
+		  <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="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="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="label11">
+		      <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_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="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="homogeneous">False</property>
+		      <property name="spacing">6</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>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</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">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </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>
+		    </packing>
+		  </child>
+		</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">True</property>
+	    </packing>
 	  </child>
 
 	  <child>
-	    <widget class="GtkButton" id="button3">
+	    <widget class="GtkLabel" id="label5">
 	      <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>
+	      <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>
-	</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="hbox2">
 	      <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="label8">
 		  <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 +274,387 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox26">
+		<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="label12">
+		      <property name="visible">True</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</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="label13">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></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_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="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="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="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="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="GtkHBox" id="hbox5">
 		      <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="GtkCheckButton" id="mon_button">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Time _zone:</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">_Mon</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>
+			  <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">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="label20">
+			<widget class="GtkCheckButton" id="tue_button">
 			  <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>
+			  <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="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="GtkHBox" id="hbox10">
+			<widget class="GtkCheckButton" id="wed_button">
 			  <property name="visible">True</property>
-			  <property name="homogeneous">True</property>
-			  <property name="spacing">4</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="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>
+		      <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="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="GtkCheckButton" id="fri_button">
 			  <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">_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="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>
+
+		      <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">False</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="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="label49">
+		<widget class="GtkLabel" id="label9">
 		  <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,24 +667,22 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox25">
+		<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="label50">
+		    <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>
@@ -350,413 +692,81 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkTable" id="table8">
+		    <widget class="GtkHBox" id="hbox6">
 		      <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>
-
-			  <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="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="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="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="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="GtkAlignment" id="alignment3">
-			  <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>
-			</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="spacing">4</property>
 
 		      <child>
-			<widget class="GtkLabel" id="label32">
+			<widget class="GtkCheckButton" id="default_reminder">
 			  <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">Sh_ow a reminder</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>
 			</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="GtkSpinButton" id="default_reminder_interval">
 			  <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="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="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="adjustment">0 0 9999 1 10 10</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>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
 			</packing>
 		      </child>
 
 		      <child>
-			<widget class="GtkLabel" id="end_of_day_label">
+			<widget class="GtkComboBox" id="default_reminder_units">
 			  <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_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="items" translatable="yes">Minutes
+Hours
+Days</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>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
 			</packing>
 		      </child>
 
 		      <child>
-			<widget class="GtkLabel" id="start_of_day_label">
+			<widget class="GtkLabel" id="label16">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Day begins:</property>
-			  <property name="use_underline">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="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>
-			  <property name="mnemonic_widget">start_of_day</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="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, 30 May 2002 19:26:53 GMT</property>
-			  <accessibility>
-			    <atkrelation target="start_of_day_label" type="labelled-by"/>
-			  </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>
-			</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, 30 May 2002 19:27:35 GMT</property>
-			  <accessibility>
-			    <atkrelation target="end_of_day_label" type="labelled-by"/>
-			  </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>
@@ -769,21 +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="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="label17">
+	      <property name="visible">True</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</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="hbox7">
+	      <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="label19">
 		  <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,50 +872,31 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox27">
+		<widget class="GtkVBox" id="displayGeneral">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label54">
-		      <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>
+		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkVBox" id="vbox13">
+		    <widget class="GtkHBox" id="hbox10">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">6</property>
 
 		      <child>
-			<widget class="GtkCheckButton" id="confirm-delete">
-			  <property name="border_width">3</property>
+			<widget class="GtkLabel" id="label23">
 			  <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">_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>
@@ -849,135 +906,18 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkHBox" id="hbox19">
-			  <property name="border_width">3</property>
+			<widget class="GtkComboBox" id="time_divisions">
 			  <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>
-
-				      <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="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>
+			  <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>
@@ -987,248 +927,222 @@
 		      <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="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>
 
 	  <child>
-	    <widget class="GtkLabel" id="label21">
+	    <widget class="GtkLabel" id="label18">
 	      <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;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.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="hbox8">
 	      <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="label20">
 		  <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>
 		</widget>
 		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox28">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</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>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="taskList">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkVBox" id="vbox16">
+		    <widget class="GtkTable" id="table2">
 		      <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">6</property>
+		      <property name="row_spacing">6</property>
+		      <property name="column_spacing">6</property>
 
 		      <child>
-			<widget class="GtkHBox" id="hbox12">
+			<widget class="GtkLabel" id="label21">
 			  <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>
+			  <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="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="GtkCheckButton" id="show_end_times">
+			<widget class="GtkLabel" id="label22">
 			  <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="label" translatable="yes">_Overdue tasks:</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</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="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="GtkCheckButton" id="compress_weekend">
+			<widget class="GtkColorButton" id="tasks_due_today_color">
 			  <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="use_alpha">False</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>
+			  <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="GtkCheckButton" id="dnav_show_week_no">
+			<widget class="GtkColorButton" id="tasks_overdue_color">
 			  <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="use_alpha">False</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>
+			  <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>
@@ -1238,164 +1152,24 @@
 		      <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>
-
-	      <child>
-		<widget class="GtkLabel" id="label57">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Task List&lt;/b&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="hbox29">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label58">
-		      <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="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>
+			  <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="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>
-
-				  <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,466 +1220,165 @@
 		</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>
-		  <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment8">
-		      <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>
-
-		      <child>
-			<widget class="GtkHBox" id="hbox20">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkScrolledWindow" id="scrolledwindow1">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
-			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			      <child>
-				<widget class="GtkTreeView" id="url_list">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="headers_visible">True</property>
-				  <property name="rules_hint">False</property>
-				  <property name="reorderable">False</property>
-				  <property name="enable_search">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="GtkVBox" id="vbox15">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkVButtonBox" id="vbuttonbox3">
-				  <property name="visible">True</property>
-				  <property name="layout_style">GTK_BUTTONBOX_START</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkButton" id="url_add">
-				      <property name="visible">True</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-
-				      <child>
-					<widget class="GtkAlignment" id="alignment5">
-					  <property name="visible">True</property>
-					  <property name="can_default">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="xalign">0.5</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="GtkHBox" id="hbox22">
-					      <property name="visible">True</property>
-					      <property name="homogeneous">False</property>
-					      <property name="spacing">2</property>
-
-					      <child>
-						<widget class="GtkImage" id="image1">
-						  <property name="visible">True</property>
-						  <property name="stock">gtk-add</property>
-						  <property name="icon_size">4</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="labeladd">
-						  <property name="visible">True</property>
-						  <property name="can_default">True</property>
-						  <property name="can_focus">True</property>
-						  <property name="label" translatable="yes">_Add URL</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="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>
-					    </widget>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkButton" id="url_edit">
-				      <property name="visible">True</property>
-				      <property name="sensitive">False</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-
-				      <child>
-					<widget class="GtkAlignment" id="alignment6">
-					  <property name="visible">True</property>
-					  <property name="xalign">0.5</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="GtkHBox" id="hbox23">
-					      <property name="visible">True</property>
-					      <property name="homogeneous">False</property>
-					      <property name="spacing">2</property>
-
-					      <child>
-						<widget class="GtkImage" id="image2">
-						  <property name="visible">True</property>
-						  <property name="stock">gtk-properties</property>
-						  <property name="icon_size">4</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="label47">
-						  <property name="visible">True</property>
-						  <property name="label" translatable="yes">_Edit</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="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>
-					    </widget>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkButton" id="url_remove">
-				      <property name="visible">True</property>
-				      <property name="sensitive">False</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label">gtk-remove</property>
-				      <property name="use_stock">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkButton" id="url_enable">
-				      <property name="visible">True</property>
-				      <property name="can_default">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">E_nable</property>
-				      <property name="use_underline">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkVButtonBox" id="vbuttonbox4">
-				  <property name="visible">True</property>
-				  <property name="layout_style">GTK_BUTTONBOX_START</property>
-				  <property name="spacing">3</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="label46">
-				  <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>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label60">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Publishing&lt;/b&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="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="type">label_item</property>
-		    </packing>
-		  </child>
+		  <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">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>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox18">
-			  <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>
-
-			  <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>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">6</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label33">
+			  <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">*</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>
@@ -1977,46 +1386,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>
Index: calendar/gui/dialogs/cal-prefs-dialog.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/dialogs/cal-prefs-dialog.h,v
retrieving revision 1.11
diff -u -r1.11 cal-prefs-dialog.h
--- calendar/gui/dialogs/cal-prefs-dialog.h	18 Dec 2004 13:01:17 -0000	1.11
+++ calendar/gui/dialogs/cal-prefs-dialog.h	29 Mar 2005 02:28:32 -0000
@@ -1,15 +1,16 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 
-/* 
- * Author : 
+/*
+ * Authors:
+ *  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 
- * License as published by the Free Software Foundation.
+ * 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
@@ -18,13 +19,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 +28,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;
+
+	GladeXML *gui;
 
-	GtkWidget *page;
+	GConfClient *gconf;
 
+	/* General tab */
 	GtkWidget *timezone;
 	GtkWidget *working_days[7];
 	GtkWidget *week_start_day;
@@ -61,41 +51,40 @@
 	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
 
Index: e-util/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/e-util/ChangeLog,v
retrieving revision 1.530
diff -u -r1.530 ChangeLog
--- e-util/ChangeLog	16 Mar 2005 06:50:11 -0000	1.530
+++ e-util/ChangeLog	29 Mar 2005 02:28:32 -0000
@@ -1,3 +1,7 @@
+2005-03-28  David Trowbridge <trowbrds cs colorado edu>
+
+	* e-dialog-widgets.[hc]: Add e_dialog_combo_box_(get|set)
+
 2005-03-14  Not Zed  <NotZed Ximian com>
 
 	** See bug #73550 (related for config pages)
Index: e-util/e-dialog-widgets.c
===================================================================
RCS file: /cvs/gnome/evolution/e-util/e-dialog-widgets.c,v
retrieving revision 1.16
diff -u -r1.16 e-dialog-widgets.c
--- e-util/e-dialog-widgets.c	2 Jan 2003 21:32:14 -0000	1.16
+++ e-util/e-dialog-widgets.c	29 Mar 2005 02:28:32 -0000
@@ -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>
@@ -628,6 +629,63 @@
 	}
 	
 	return v;
+}
+
+/**
+ * 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;
 }
 
 /**
Index: e-util/e-dialog-widgets.h
===================================================================
RCS file: /cvs/gnome/evolution/e-util/e-dialog-widgets.h,v
retrieving revision 1.7
diff -u -r1.7 e-dialog-widgets.h
--- e-util/e-dialog-widgets.h	27 Oct 2001 23:34:13 -0000	1.7
+++ e-util/e-dialog-widgets.h	29 Mar 2005 02:28:32 -0000
@@ -44,6 +44,9 @@
 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);
 
Index: ui/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/ui/ChangeLog,v
retrieving revision 1.408
diff -u -r1.408 ChangeLog
--- ui/ChangeLog	14 Feb 2005 15:55:00 -0000	1.408
+++ ui/ChangeLog	29 Mar 2005 02:28:33 -0000
@@ -1,3 +1,8 @@
+2005-03-28  David Trowbridge <trowbrds cs colorado edu>
+
+	* evolution-calendar.xml: Remove F/B publishing from the core UI,
+	since this is now provided in the calendar-publishing EPlugin
+
 2005-02-14  Rodney Dawes  <dobey novell com>
 
 	* evolution-mail-list.xml:
Index: ui/evolution-calendar.xml
===================================================================
RCS file: /cvs/gnome/evolution/ui/evolution-calendar.xml,v
retrieving revision 1.69
diff -u -r1.69 evolution-calendar.xml
--- ui/evolution-calendar.xml	16 Dec 2004 18:26:54 -0000	1.69
+++ ui/evolution-calendar.xml	29 Mar 2005 02:28:33 -0000
@@ -70,7 +70,6 @@
     <submenu name="Actions" _label="_Actions">
       <placeholder name="ComponentActionsPlaceholder">
         <separator/>
-	<menuitem name="PublishFreeBusy" verb="" _label="_Publish Free/Busy Information"/>
 	<menuitem name="CalendarPurge" verb=""/>
       </placeholder>
     </submenu>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]