aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog27
-rw-r--r--calendar/gui/Makefile.am5
-rw-r--r--calendar/gui/calendar-config-keys.h71
-rw-r--r--calendar/gui/calendar-config.c273
-rw-r--r--calendar/gui/calendar-config.h17
-rw-r--r--calendar/gui/e-day-view-config.c443
-rw-r--r--calendar/gui/e-day-view-config.h59
-rw-r--r--calendar/gui/e-itip-control.c3
-rw-r--r--calendar/gui/e-week-view-config.c299
-rw-r--r--calendar/gui/e-week-view-config.h59
-rw-r--r--calendar/gui/e-week-view.c4
-rw-r--r--calendar/gui/gnome-cal.c78
12 files changed, 1158 insertions, 180 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index ac913678b6..64d3db8b87 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,30 @@
+2003-10-27 JP Rosevear <jpr@ximian.com>
+
+ * gui/gnome-cal.c (setup_widgets): store config objects as well
+ (gnome_calendar_set_default_uri): return FALSE if the
+ pre-condition fails
+ (gnome_calendar_update_config_settings): remove settings that are
+ now handled by the config objects
+
+ * gui/e-week-view.c (e_week_view_set_compress_weekend): queue a
+ draw
+
+ * gui/e-itip-control.c (start_default_server): comment out
+
+ * gui/e-day-view-config.[hc]: a class to track config changes of
+ interest to day views
+
+ * gui/e-week-view.[hc]: ditto for week views
+
+ * gui/calendar-config.h: add protos
+
+ * gui/calendar-config.c: use the #defines for the keys and add
+ notification routines
+
+ * gui/calendar-config-keys.h: a list of defines for gconf keys
+
+ * gui/Makefile.am: build new files
+
2003-10-27 Rodrigo Moya <rodrigo@ximian.com>
* gui/e-cal-model.h: changed fill_component_from_model virtual
diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am
index 0106a248c6..5b65905f60 100644
--- a/calendar/gui/Makefile.am
+++ b/calendar/gui/Makefile.am
@@ -81,6 +81,7 @@ libevolution_calendar_la_SOURCES = \
cal-search-bar.h \
calendar-config.c \
calendar-config.h \
+ calendar-config-keys.h \
calendar-commands.c \
calendar-commands.h \
calendar-component.c \
@@ -117,6 +118,8 @@ libevolution_calendar_la_SOURCES = \
e-comp-editor-registry.h \
e-date-time-list.c \
e-date-time-list.h \
+ e-day-view-config.c \
+ e-day-view-config.h \
e-day-view-layout.c \
e-day-view-layout.h \
e-day-view-main-item.c \
@@ -146,6 +149,8 @@ libevolution_calendar_la_SOURCES = \
e-select-names-editable.h \
e-select-names-renderer.c \
e-select-names-renderer.h \
+ e-week-view-config.c \
+ e-week-view-config.h \
e-week-view-event-item.c \
e-week-view-event-item.h \
e-week-view-layout.c \
diff --git a/calendar/gui/calendar-config-keys.h b/calendar/gui/calendar-config-keys.h
new file mode 100644
index 0000000000..f6e7c023c6
--- /dev/null
+++ b/calendar/gui/calendar-config-keys.h
@@ -0,0 +1,71 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Authors :
+ * JP Rosevear <jpr@ximian.com>
+ *
+ * Copyright 2003, Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#ifndef _CALENDAR_CONFIG_KEYS_H_
+#define _CALENDAR_CONFIG_KEYS_H_
+
+G_BEGIN_DECLS
+
+#define CALENDAR_CONFIG_PREFIX "/apps/evolution/calendar"
+
+/* Display settings */
+#define CALENDAR_CONFIG_TIMEZONE CALENDAR_CONFIG_PREFIX "/display/timezone"
+#define CALENDAR_CONFIG_24HOUR CALENDAR_CONFIG_PREFIX "/display/use_24hour_format"
+#define CALENDAR_CONFIG_WEEK_START CALENDAR_CONFIG_PREFIX "/display/week_start_day"
+#define CALENDAR_CONFIG_DAY_START_HOUR CALENDAR_CONFIG_PREFIX "/display/day_start_hour"
+#define CALENDAR_CONFIG_DAY_START_MINUTE CALENDAR_CONFIG_PREFIX "/display/day_start_minute"
+#define CALENDAR_CONFIG_DAY_END_HOUR CALENDAR_CONFIG_PREFIX "/display/day_end_hour"
+#define CALENDAR_CONFIG_DAY_END_MINUTE CALENDAR_CONFIG_PREFIX "/display/day_end_minute"
+#define CALENDAR_CONFIG_TIME_DIVISIONS CALENDAR_CONFIG_PREFIX "/display/time_divisions"
+#define CALENDAR_CONFIG_TIME_DIVISIONS CALENDAR_CONFIG_PREFIX "/display/time_divisions"
+#define CALENDAR_CONFIG_DEFAULT_VIEW CALENDAR_CONFIG_PREFIX "/display/default_view"
+#define CALENDAR_CONFIG_HPANE_POS CALENDAR_CONFIG_PREFIX "/display/hpane_position"
+#define CALENDAR_CONFIG_VPANE_POS CALENDAR_CONFIG_PREFIX "/display/vpane_position"
+#define CALENDAR_CONFIG_MONTH_HPANE_POS CALENDAR_CONFIG_PREFIX "/display/month_hpane_position"
+#define CALENDAR_CONFIG_MONTH_VPANE_POS CALENDAR_CONFIG_PREFIX "/display/month_vpane_position"
+#define CALENDAR_CONFIG_TASK_VPANE_POS CALENDAR_CONFIG_PREFIX "/display/task_vpane_position"
+#define CALENDAR_CONFIG_COMPRESS_WEEKEND CALENDAR_CONFIG_PREFIX "/display/compress_weekend"
+#define CALENDAR_CONFIG_SHOW_EVENT_END CALENDAR_CONFIG_PREFIX "/display/show_event_end"
+#define CALENDAR_CONFIG_WORKING_DAYS CALENDAR_CONFIG_PREFIX "/display/working_days"
+
+/* Date navigator settings */
+#define CALENDAR_CONFIG_DN_SHOW_WEEK_NUMBERS CALENDAR_CONFIG_PREFIX "/date_navigator/show_week_numbers"
+
+/* Task display settings */
+#define CALENDAR_CONFIG_TASKS_HIDE_COMPLETED CALENDAR_CONFIG_PREFIX "/tasks/hide_completed"
+#define CALENDAR_CONFIG_TASKS_HIDE_COMPLETED_UNITS CALENDAR_CONFIG_PREFIX "/tasks/hide_completed_units"
+#define CALENDAR_CONFIG_TASKS_HIDE_COMPLETED_VALUE CALENDAR_CONFIG_PREFIX "/tasks/hide_completed_value"
+#define CALENDAR_CONFIG_TASKS_DUE_TODAY_COLOR CALENDAR_CONFIG_PREFIX "/tasks/colors/due_today"
+#define CALENDAR_CONFIG_TASKS_OVERDUE_COLOR CALENDAR_CONFIG_PREFIX "/tasks/colors/overdue"
+
+/* Prompt settings */
+#define CALENDAR_CONFIG_PROMPT_DELETE CALENDAR_CONFIG_PREFIX "/prompts/confirm_delete"
+#define CALENDAR_CONFIG_PROMPT_PURGE CALENDAR_CONFIG_PREFIX "/prompts/confirm_purge"
+
+/* Default reminder */
+#define CALENDAR_CONFIG_DEFAULT_REMINDER CALENDAR_CONFIG_PREFIX "/other/use_default_reminder"
+#define CALENDAR_CONFIG_DEFAULT_REMINDER_INTERVAL CALENDAR_CONFIG_PREFIX "/other/default_reminder_interval"
+#define CALENDAR_CONFIG_DEFAULT_REMINDER_UNITS CALENDAR_CONFIG_PREFIX "/other/default_reminder_units"
+
+G_END_DECLS
+
+#endif
diff --git a/calendar/gui/calendar-config.c b/calendar/gui/calendar-config.c
index 2ac2a4062b..fe5bb487d4 100644
--- a/calendar/gui/calendar-config.c
+++ b/calendar/gui/calendar-config.c
@@ -27,7 +27,10 @@
* calendar-config.c - functions to load/save/get/set user settings.
*/
+#ifdef HAVE_CONFIG_H
#include <config.h>
+#endif
+
#include <string.h>
#include <time.h>
#include <gtk/gtksignal.h>
@@ -41,11 +44,12 @@
#include "calendar-commands.h"
#include "e-tasks.h"
#include "e-cell-date-edit-text.h"
+#include "calendar-config-keys.h"
#include "calendar-config.h"
-#include "e-util/e-config-listener.h"
-static EConfigListener *config = NULL;
+
+static GConfClient *config = NULL;
static void on_timezone_set (GnomeDialog *dialog,
int button,
@@ -67,8 +71,16 @@ calendar_config_init (void)
if (config)
return;
- config = e_config_listener_new ();
+ config = gconf_client_get_default ();
g_atexit ((GVoidFunc) do_cleanup);
+
+ gconf_client_add_dir (config, CALENDAR_CONFIG_PREFIX, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
+}
+
+void
+calendar_config_remove_notification (guint id)
+{
+ gconf_client_notify_remove (config, id);
}
/* Returns TRUE if the locale has 'am' and 'pm' strings defined, in which
@@ -110,33 +122,23 @@ units_to_string (CalUnits units)
/* The current timezone, e.g. "Europe/London". It may be NULL, in which case
you should assume UTC (though Evolution will show the timezone-setting
dialog the next time a calendar or task folder is selected). */
-gchar*
+gchar *
calendar_config_get_timezone (void)
{
- static char *timezone = NULL;
-
- if (timezone)
- g_free (timezone);
-
- timezone = e_config_listener_get_string_with_default (config,
- "/apps/evolution/calendar/display/timezone",
- "UTC", NULL);
- if (!timezone)
- timezone = g_strdup ("UTC");
-
- return timezone;
+ /* FIXME Guard against NULL? */
+ return gconf_client_get_string (config, CALENDAR_CONFIG_TIMEZONE, NULL);
}
/* Sets the timezone. If set to NULL it defaults to UTC.
FIXME: Should check it is being set to a valid timezone. */
void
-calendar_config_set_timezone (gchar *timezone)
+calendar_config_set_timezone (gchar *timezone)
{
if (timezone && timezone[0])
- e_config_listener_set_string (config, "/apps/evolution/calendar/display/timezone", timezone);
+ gconf_client_set_string (config, CALENDAR_CONFIG_TIMEZONE, timezone, NULL);
else
- e_config_listener_set_string (config, "/apps/evolution/calendar/display/timezone", "UTC");
+ gconf_client_set_string (config, CALENDAR_CONFIG_TIMEZONE, "UTC", NULL);
}
@@ -148,10 +150,8 @@ calendar_config_get_24_hour_format (void)
choice of 12-hour or 24-hour time format, with 12-hour as the
default. If the locale doesn't have 'am' and 'pm' strings we have
to use 24-hour format, or strftime()/strptime() won't work. */
- if (calendar_config_locale_supports_12_hour_format ()) {
- return e_config_listener_get_boolean_with_default (
- config, "/apps/evolution/calendar/display/use_24hour_format", FALSE, NULL);
- }
+ if (calendar_config_locale_supports_12_hour_format ())
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_24HOUR, NULL);
return TRUE;
}
@@ -160,109 +160,172 @@ calendar_config_get_24_hour_format (void)
void
calendar_config_set_24_hour_format (gboolean use_24_hour)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/display/use_24hour_format", use_24_hour);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_24HOUR, use_24_hour, NULL);
}
+guint
+calendar_config_add_notification_24_hour_format (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_24HOUR, func, data, NULL, NULL);
+
+ return id;
+}
/* The start day of the week (0 = Sun to 6 = Mon). */
gint
calendar_config_get_week_start_day (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/week_start_day", 1, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_WEEK_START, NULL);
}
void
calendar_config_set_week_start_day (gint week_start_day)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/week_start_day", week_start_day);
+ gconf_client_set_int (config, CALENDAR_CONFIG_WEEK_START, week_start_day, NULL);
}
+guint
+calendar_config_add_notification_week_start_day (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_WEEK_START, func, data, NULL, NULL);
+
+ return id;
+}
/* The start and end times of the work-day. */
gint
calendar_config_get_day_start_hour (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/day_start_hour", 9, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_DAY_START_HOUR, NULL);
}
void
calendar_config_set_day_start_hour (gint day_start_hour)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/day_start_hour", day_start_hour);
+ gconf_client_set_int (config, CALENDAR_CONFIG_DAY_START_HOUR, day_start_hour, NULL);
}
+guint
+calendar_config_add_notification_day_start_hour (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_DAY_START_HOUR, func, data, NULL, NULL);
+
+ return id;
+}
gint
calendar_config_get_day_start_minute (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/day_start_minute", 0, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_DAY_START_MINUTE, NULL);
}
void
calendar_config_set_day_start_minute (gint day_start_min)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/day_start_minute", day_start_min);
+ gconf_client_set_int (config, CALENDAR_CONFIG_DAY_START_MINUTE, day_start_min, NULL);
}
+guint
+calendar_config_add_notification_day_start_minute (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_DAY_START_MINUTE, func, data, NULL, NULL);
+
+ return id;
+}
gint
calendar_config_get_day_end_hour (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/day_end_hour", 17, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_DAY_END_HOUR, NULL);
}
void
calendar_config_set_day_end_hour (gint day_end_hour)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/day_end_hour", day_end_hour);
+ gconf_client_set_int (config, CALENDAR_CONFIG_DAY_END_HOUR, day_end_hour, NULL);
}
+guint
+calendar_config_add_notification_day_end_hour (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_DAY_END_HOUR, func, data, NULL, NULL);
+
+ return id;
+}
gint
calendar_config_get_day_end_minute (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/day_end_minute", 0, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_DAY_END_MINUTE, NULL);
}
void
calendar_config_set_day_end_minute (gint day_end_min)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/day_end_minute", day_end_min);
+ gconf_client_set_int (config, CALENDAR_CONFIG_DAY_END_MINUTE, day_end_min, NULL);
}
+guint
+calendar_config_add_notification_day_end_minute (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_DAY_END_MINUTE, func, data, NULL, NULL);
+
+ return id;
+}
/* The time divisions in the Day/Work-Week view in minutes (5/10/15/30/60). */
gint
calendar_config_get_time_divisions (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/time_divisions", 30, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_TIME_DIVISIONS, NULL);
}
void
calendar_config_set_time_divisions (gint divisions)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/time_divisions", divisions);
+ gconf_client_set_int (config, CALENDAR_CONFIG_TIME_DIVISIONS, divisions, NULL);
}
+guint
+calendar_config_add_notification_time_divisions (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_TIME_DIVISIONS, func, data, NULL, NULL);
+
+ return id;
+}
/* Whether we show week numbers in the Date Navigator. */
gboolean
calendar_config_get_dnav_show_week_no (void)
{
- return e_config_listener_get_boolean_with_default (config, "/apps/evolution/calendar/date_navigator/show_week_numbers", FALSE, NULL);
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_DN_SHOW_WEEK_NUMBERS, NULL);
}
void
calendar_config_set_dnav_show_week_no (gboolean show_week_no)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/date_navigator/show_week_numbers", show_week_no);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_DN_SHOW_WEEK_NUMBERS, show_week_no, NULL);
}
@@ -270,14 +333,14 @@ calendar_config_set_dnav_show_week_no (gboolean show_week_no)
gint
calendar_config_get_default_view (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/default_view", 0, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_DEFAULT_VIEW, NULL);
}
void
calendar_config_set_default_view (gint view)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/default_view", view);
+ gconf_client_set_int (config, CALENDAR_CONFIG_DEFAULT_VIEW, view, NULL);
}
@@ -285,71 +348,69 @@ calendar_config_set_default_view (gint view)
gint
calendar_config_get_hpane_pos (void)
{
- return e_config_listener_get_long_with_default (config,
- "/apps/evolution/calendar/display/hpane_position",
- 400, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_HPANE_POS, NULL);
}
void
calendar_config_set_hpane_pos (gint hpane_pos)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/hpane_position", hpane_pos);
+ gconf_client_set_int (config, CALENDAR_CONFIG_HPANE_POS, hpane_pos, NULL);
}
gint
calendar_config_get_vpane_pos (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/vpane_position", 150, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_VPANE_POS, NULL);
}
void
calendar_config_set_vpane_pos (gint vpane_pos)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/vpane_position", vpane_pos);
+ gconf_client_set_int (config, CALENDAR_CONFIG_VPANE_POS, vpane_pos, NULL);
}
gint
calendar_config_get_month_hpane_pos (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/month_hpane_position", 32000, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_MONTH_HPANE_POS, NULL);
}
void
calendar_config_set_month_hpane_pos (gint hpane_pos)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/month_hpane_position", hpane_pos);
+ gconf_client_set_int (config, CALENDAR_CONFIG_MONTH_HPANE_POS, hpane_pos, NULL);
}
gint
calendar_config_get_month_vpane_pos (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/month_vpane_position", 150, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_MONTH_VPANE_POS, NULL);
}
void
calendar_config_set_month_vpane_pos (gint vpane_pos)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/month_vpane_position", vpane_pos);
+ gconf_client_set_int (config, CALENDAR_CONFIG_MONTH_VPANE_POS, vpane_pos, NULL);
}
gint
calendar_config_get_task_vpane_pos (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/display/task_vpane_position", 400, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_TASK_VPANE_POS, NULL);
}
void
calendar_config_set_task_vpane_pos (gint vpane_pos)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/task_vpane_position", vpane_pos);
+ gconf_client_set_int (config, CALENDAR_CONFIG_TASK_VPANE_POS, vpane_pos, NULL);
}
@@ -357,61 +418,86 @@ calendar_config_set_task_vpane_pos (gint vpane_pos)
gboolean
calendar_config_get_compress_weekend (void)
{
- return e_config_listener_get_boolean_with_default (config, "/apps/evolution/calendar/display/compress_weekend", TRUE, NULL);
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_COMPRESS_WEEKEND, NULL);
}
void
calendar_config_set_compress_weekend (gboolean compress)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/display/compress_weekend", compress);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_COMPRESS_WEEKEND, compress, NULL);
}
+guint
+calendar_config_add_notification_compress_weekend (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_COMPRESS_WEEKEND, func, data, NULL, NULL);
+
+ return id;
+}
/* Whether we show event end times. */
gboolean
calendar_config_get_show_event_end (void)
{
- return e_config_listener_get_boolean_with_default (config, "/apps/evolution/calendar/display/show_event_end", TRUE, NULL);
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_SHOW_EVENT_END, NULL);
}
void
calendar_config_set_show_event_end (gboolean show_end)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/display/show_event_end", show_end);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_SHOW_EVENT_END, show_end, NULL);
}
+guint
+calendar_config_add_notification_show_event_end (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_SHOW_EVENT_END, func, data, NULL, NULL);
+
+ return id;
+}
/* The working days of the week, a bit-wise combination of flags. */
CalWeekdays
calendar_config_get_working_days (void)
{
- return e_config_listener_get_long_with_default (config,
- "/apps/evolution/calendar/display/working_days", CAL_MONDAY | CAL_TUESDAY |
- CAL_WEDNESDAY | CAL_THURSDAY | CAL_FRIDAY, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_WORKING_DAYS, NULL);
}
void
calendar_config_set_working_days (CalWeekdays days)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/display/working_days", days);
+ gconf_client_set_int (config, CALENDAR_CONFIG_WORKING_DAYS, days, NULL);
}
+guint
+calendar_config_add_notification_working_days (GConfClientNotifyFunc func, gpointer data)
+{
+ guint id;
+
+ id = gconf_client_notify_add (config, CALENDAR_CONFIG_WORKING_DAYS , func, data, NULL, NULL);
+
+ return id;
+}
/* Settings to hide completed tasks. */
gboolean
calendar_config_get_hide_completed_tasks (void)
{
- return e_config_listener_get_boolean_with_default (config, "/apps/evolution/calendar/tasks/hide_completed", FALSE, NULL);
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_TASKS_HIDE_COMPLETED, NULL);
}
void
calendar_config_set_hide_completed_tasks (gboolean hide)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/tasks/hide_completed", hide);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_TASKS_HIDE_COMPLETED, hide, NULL);
}
@@ -421,7 +507,7 @@ calendar_config_get_hide_completed_tasks_units (void)
char *units;
CalUnits cu;
- units = e_config_listener_get_string_with_default (config, "/apps/evolution/calendar/tasks/hide_completed_units", "days", NULL);
+ units = gconf_client_get_string (config, CALENDAR_CONFIG_TASKS_HIDE_COMPLETED_UNITS, NULL);
if (!strcmp (units, "minutes"))
cu = CAL_MINUTES;
@@ -452,7 +538,7 @@ calendar_config_set_hide_completed_tasks_units (CalUnits cu)
units = g_strdup ("days");
}
- e_config_listener_set_string (config, "/apps/evolution/calendar/tasks/hide_completed_sunits", units);
+ gconf_client_set_string (config, CALENDAR_CONFIG_TASKS_HIDE_COMPLETED_UNITS, units, NULL);
g_free (units);
}
@@ -461,14 +547,14 @@ calendar_config_set_hide_completed_tasks_units (CalUnits cu)
gint
calendar_config_get_hide_completed_tasks_value (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/tasks/hide_completed_value", 1, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_TASKS_HIDE_COMPLETED_VALUE, NULL);
}
void
calendar_config_set_hide_completed_tasks_value (gint value)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/tasks/hide_completed_value", value);
+ gconf_client_set_int (config, CALENDAR_CONFIG_TASKS_HIDE_COMPLETED_VALUE, value, NULL);
}
/**
@@ -482,7 +568,7 @@ calendar_config_set_hide_completed_tasks_value (gint value)
gboolean
calendar_config_get_confirm_delete (void)
{
- return e_config_listener_get_boolean_with_default (config, "/apps/evolution/calendar/prompts/confirm_delete", TRUE, NULL);
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_PROMPT_DELETE, NULL);
}
/**
@@ -495,7 +581,7 @@ calendar_config_get_confirm_delete (void)
void
calendar_config_set_confirm_delete (gboolean confirm)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/prompts/confirm_delete", confirm);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_PROMPT_DELETE, confirm, NULL);
}
/**
@@ -509,7 +595,7 @@ calendar_config_set_confirm_delete (gboolean confirm)
gboolean
calendar_config_get_confirm_purge (void)
{
- return e_config_listener_get_boolean_with_default (config, "/apps/evolution/calendar/prompts/confirm_purge", TRUE, NULL);
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_PROMPT_PURGE, NULL);
}
/**
@@ -522,7 +608,7 @@ calendar_config_get_confirm_purge (void)
void
calendar_config_set_confirm_purge (gboolean confirm)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/prompts/confirm_purge", confirm);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_PROMPT_PURGE, confirm, NULL);
}
/* This sets all the common config settings for an ECalendar widget.
@@ -725,7 +811,7 @@ calendar_config_get_tasks_due_today_color (void)
if (color)
g_free (color);
- color = e_config_listener_get_string_with_default (config, "/apps/evolution/calendar/tasks/colors/due_today", "blue", NULL);
+ color = gconf_client_get_string (config, CALENDAR_CONFIG_TASKS_DUE_TODAY_COLOR, NULL);
return color;
}
@@ -740,7 +826,7 @@ calendar_config_set_tasks_due_today_color (const char *color)
{
g_return_if_fail (color != NULL);
- e_config_listener_set_string (config, "/apps/evolution/calendar/tasks/colors/due_today", color);
+ gconf_client_set_string (config, CALENDAR_CONFIG_TASKS_DUE_TODAY_COLOR, color, NULL);
}
/**
@@ -758,7 +844,7 @@ calendar_config_get_tasks_overdue_color (void)
if (color)
g_free (color);
- color = e_config_listener_get_string_with_default (config, "/apps/evolution/calendar/tasks/colors/overdue", "red", NULL);
+ color = gconf_client_get_string (config, CALENDAR_CONFIG_TASKS_OVERDUE_COLOR, NULL);
return color;
}
@@ -773,7 +859,7 @@ calendar_config_set_tasks_overdue_color (const char *color)
{
g_return_if_fail (color != NULL);
- e_config_listener_set_string (config, "/apps/evolution/calendar/tasks/colors/overdue", color);
+ gconf_client_set_string (config, CALENDAR_CONFIG_TASKS_OVERDUE_COLOR, color, NULL);
}
/**
@@ -789,7 +875,7 @@ calendar_config_set_tasks_overdue_color (const char *color)
gboolean
calendar_config_get_use_default_reminder (void)
{
- return e_config_listener_get_boolean_with_default (config, "/apps/evolution/calendar/other/use_default_reminder", FALSE, NULL);
+ return gconf_client_get_bool (config, CALENDAR_CONFIG_DEFAULT_REMINDER, NULL);
}
/**
@@ -802,7 +888,7 @@ calendar_config_get_use_default_reminder (void)
void
calendar_config_set_use_default_reminder (gboolean value)
{
- e_config_listener_set_boolean (config, "/apps/evolution/calendar/other/use_default_reminder", value);
+ gconf_client_set_bool (config, CALENDAR_CONFIG_DEFAULT_REMINDER, value, NULL);
}
/**
@@ -816,7 +902,7 @@ calendar_config_set_use_default_reminder (gboolean value)
int
calendar_config_get_default_reminder_interval (void)
{
- return e_config_listener_get_long_with_default (config, "/apps/evolution/calendar/other/default_reminder_interval", 15, NULL);
+ return gconf_client_get_int (config, CALENDAR_CONFIG_DEFAULT_REMINDER_INTERVAL, NULL);
}
/**
@@ -829,7 +915,7 @@ calendar_config_get_default_reminder_interval (void)
void
calendar_config_set_default_reminder_interval (int interval)
{
- e_config_listener_set_long (config, "/apps/evolution/calendar/other/default_reminder_interval", interval);
+ gconf_client_set_int (config, CALENDAR_CONFIG_DEFAULT_REMINDER_INTERVAL, interval, NULL);
}
/**
@@ -846,17 +932,14 @@ calendar_config_get_default_reminder_units (void)
char *units;
CalUnits cu;
- units = e_config_listener_get_string_with_default (config, "/apps/evolution/calendar/other/default_reminder_units", "minutes", NULL);
+ units = gconf_client_get_string (config, CALENDAR_CONFIG_DEFAULT_REMINDER_UNITS, NULL);
- if (!strcmp (units, "days"))
+ if (units && !strcmp (units, "days"))
cu = CAL_DAYS;
- else if (!strcmp (units, "hours"))
+ else if (units && !strcmp (units, "hours"))
cu = CAL_HOURS;
else
- cu = CAL_MINUTES; /* changed from above because
- * if bonobo-config fucks up
- * we want minutes, not days!
- */
+ cu = CAL_MINUTES;
g_free (units);
return cu;
@@ -871,7 +954,7 @@ calendar_config_get_default_reminder_units (void)
void
calendar_config_set_default_reminder_units (CalUnits units)
{
- e_config_listener_set_string (config, "/apps/evolution/calendar/other/default_reminder_units", units_to_string(units));
+ gconf_client_set_string (config, CALENDAR_CONFIG_DEFAULT_REMINDER_UNITS, units_to_string(units), NULL);
}
/**
@@ -934,21 +1017,3 @@ calendar_config_get_hide_completed_tasks_sexp (void)
return sexp;
}
-char *
-calendar_config_default_calendar_folder (void)
-{
- char *uri;
-
- uri = e_config_listener_get_string_with_default (config, "/apps/evolution/shell/default_folders/calendar_uri", NULL, NULL);
- return uri;
-}
-
-char *
-calendar_config_default_tasks_folder (void)
-{
- char *uri;
-
- uri = e_config_listener_get_string_with_default (config, "/apps/evolution/shell/default_folders/tasks_uri", NULL, NULL);
- return uri;
-}
-
diff --git a/calendar/gui/calendar-config.h b/calendar/gui/calendar-config.h
index 48f2e4f2e0..fa695673b6 100644
--- a/calendar/gui/calendar-config.h
+++ b/calendar/gui/calendar-config.h
@@ -30,6 +30,7 @@
#ifndef _CALENDAR_CONFIG_H_
#define _CALENDAR_CONFIG_H_
+#include <gconf/gconf-client.h>
#include <widgets/misc/e-calendar.h>
#include <widgets/misc/e-dateedit.h>
#include <widgets/misc/e-cell-date-edit.h>
@@ -61,7 +62,7 @@ typedef enum
void calendar_config_init (void);
-
+void calendar_config_remove_notification (guint id);
/*
* Calendar Settings.
@@ -74,39 +75,49 @@ void calendar_config_set_timezone (gchar *timezone);
/* The working days of the week, a bit-wise combination of flags. */
CalWeekdays calendar_config_get_working_days (void);
void calendar_config_set_working_days (CalWeekdays days);
+guint calendar_config_add_notification_working_days (GConfClientNotifyFunc func, gpointer data);
/* The start day of the week (0 = Sun to 6 = Sat). */
gint calendar_config_get_week_start_day (void);
void calendar_config_set_week_start_day (gint week_start_day);
+guint calendar_config_add_notification_week_start_day (GConfClientNotifyFunc func, gpointer data);
/* The start and end times of the work-day. */
gint calendar_config_get_day_start_hour (void);
void calendar_config_set_day_start_hour (gint day_start_hour);
+guint calendar_config_add_notification_day_start_hour (GConfClientNotifyFunc func, gpointer data);
gint calendar_config_get_day_start_minute (void);
void calendar_config_set_day_start_minute (gint day_start_min);
+guint calendar_config_add_notification_day_start_minute (GConfClientNotifyFunc func, gpointer data);
gint calendar_config_get_day_end_hour (void);
void calendar_config_set_day_end_hour (gint day_end_hour);
+guint calendar_config_add_notification_day_end_hour (GConfClientNotifyFunc func, gpointer data);
gint calendar_config_get_day_end_minute (void);
void calendar_config_set_day_end_minute (gint day_end_min);
+guint calendar_config_add_notification_day_end_minute (GConfClientNotifyFunc func, gpointer data);
/* Whether we use 24-hour format or 12-hour format (AM/PM). */
gboolean calendar_config_get_24_hour_format (void);
void calendar_config_set_24_hour_format (gboolean use_24_hour);
+guint calendar_config_add_notification_24_hour_format (GConfClientNotifyFunc func, gpointer data);
/* The time divisions in the Day/Work-Week view in minutes (5/10/15/30/60). */
gint calendar_config_get_time_divisions (void);
void calendar_config_set_time_divisions (gint divisions);
+guint calendar_config_add_notification_time_divisions (GConfClientNotifyFunc func, gpointer data);
/* Whether we show event end times. */
gboolean calendar_config_get_show_event_end (void);
void calendar_config_set_show_event_end (gboolean show_end);
+guint calendar_config_add_notification_show_event_end (GConfClientNotifyFunc func, gpointer data);
/* Whether we compress the weekend in the week/month views. */
gboolean calendar_config_get_compress_weekend (void);
void calendar_config_set_compress_weekend (gboolean compress);
+guint calendar_config_add_notification_compress_weekend (GConfClientNotifyFunc func, gpointer data);
/* Whether we show week numbers in the Date Navigator. */
gboolean calendar_config_get_dnav_show_week_no (void);
@@ -183,8 +194,4 @@ void calendar_config_check_timezone_set (void);
supports 12-hour time format. */
gboolean calendar_config_locale_supports_12_hour_format(void);
-/* Default folders, read-only */
-char *calendar_config_default_calendar_folder (void);
-char *calendar_config_default_tasks_folder (void);
-
#endif /* _CALENDAR_CONFIG_H_ */
diff --git a/calendar/gui/e-day-view-config.c b/calendar/gui/e-day-view-config.c
new file mode 100644
index 0000000000..4e34370aff
--- /dev/null
+++ b/calendar/gui/e-day-view-config.c
@@ -0,0 +1,443 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * Author :
+ * Rodrigo Moya <rodrigo@ximian.com>
+ *
+ * Copyright 2003, Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#include "calendar-config.h"
+#include "e-day-view-config.h"
+
+struct _EDayViewConfigPrivate {
+ EDayView *view;
+
+ GList *notifications;
+};
+
+static GObjectClass *parent_class = NULL;
+
+/* Property IDs */
+enum props {
+ PROP_0,
+ PROP_VIEW,
+};
+
+static void
+e_day_view_config_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
+{
+ EDayViewConfig *view_config;
+ EDayViewConfigPrivate *priv;
+
+ view_config = E_DAY_VIEW_CONFIG (object);
+ priv = view_config->priv;
+
+ switch (property_id) {
+ case PROP_VIEW:
+ e_day_view_config_set_view (view_config, g_value_get_object (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+e_day_view_config_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
+{
+ EDayViewConfig *view_config;
+ EDayViewConfigPrivate *priv;
+
+ view_config = E_DAY_VIEW_CONFIG (object);
+ priv = view_config->priv;
+
+ switch (property_id) {
+ case PROP_VIEW:
+ g_value_set_object (value, e_day_view_config_get_view (view_config));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+e_day_view_config_dispose (GObject *object)
+{
+ EDayViewConfig *view_config = E_DAY_VIEW_CONFIG (object);
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ e_day_view_config_set_view (view_config, NULL);
+
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+e_day_view_config_finalize (GObject *object)
+{
+ EDayViewConfig *view_config = E_DAY_VIEW_CONFIG (object);
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ g_free (priv);
+
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+e_day_view_config_class_init (ECalViewClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GParamSpec *spec;
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ /* Method override */
+ gobject_class->set_property = e_day_view_config_set_property;
+ gobject_class->get_property = e_day_view_config_get_property;
+ gobject_class->dispose = e_day_view_config_dispose;
+ gobject_class->finalize = e_day_view_config_finalize;
+
+ spec = g_param_spec_object ("view", NULL, NULL, e_day_view_get_type (),
+ G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT);
+ g_object_class_install_property (gobject_class, PROP_VIEW, spec);
+}
+
+static void
+e_day_view_config_init (EDayViewConfig *view_config, EDayViewConfigClass *klass)
+{
+ view_config->priv = g_new0 (EDayViewConfigPrivate, 1);
+
+}
+
+E_MAKE_TYPE (e_day_view_config, "EDayViewConfig", EDayViewConfig, e_day_view_config_class_init,
+ e_day_view_config_init, G_TYPE_OBJECT);
+
+EDayViewConfig *
+e_day_view_config_new (EDayView *day_view)
+{
+ EDayViewConfig *view_config;
+
+ view_config = g_object_new (e_day_view_config_get_type (), "view", day_view, NULL);
+
+ return view_config;
+}
+
+EDayView *
+e_day_view_config_get_view (EDayViewConfig *view_config)
+{
+ EDayViewConfigPrivate *priv;
+
+ g_return_val_if_fail (view_config != NULL, NULL);
+ g_return_val_if_fail (E_IS_DAY_VIEW_CONFIG (view_config), NULL);
+
+ priv = view_config->priv;
+
+ return priv->view;
+}
+
+static void
+set_week_start (EDayView *day_view)
+{
+ int week_start_day;
+
+ week_start_day = calendar_config_get_week_start_day ();
+
+ /* Convert it to 0 (Mon) to 6 (Sun), which is what we use. */
+ week_start_day = (week_start_day + 6) % 7;
+
+ e_day_view_set_week_start_day (day_view, week_start_day);
+}
+
+static void
+week_start_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_week_start (priv->view);
+}
+
+static void
+set_twentyfour_hour (EDayView *day_view)
+{
+ gboolean use_24_hour;
+
+ use_24_hour = calendar_config_get_24_hour_format ();
+
+ e_day_view_set_24_hour_format (day_view, use_24_hour);
+}
+
+static void
+twentyfour_hour_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_twentyfour_hour (priv->view);
+}
+
+static void
+set_working_days (EDayView *day_view)
+{
+ CalWeekdays working_days;
+
+ working_days = calendar_config_get_working_days ();
+
+ e_day_view_set_working_days (day_view, working_days);
+}
+
+static void
+working_days_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_working_days (priv->view);
+}
+
+static void
+set_day_start_hour (EDayView *day_view)
+{
+ int start_hour, start_minute, end_hour, end_minute;
+
+ e_day_view_get_working_day (day_view, &start_hour, &start_minute, &end_hour, &end_minute);
+
+ start_hour = calendar_config_get_day_start_hour ();
+
+ e_day_view_set_working_day (day_view, start_hour, start_minute, end_hour, end_minute);
+}
+
+static void
+day_start_hour_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_day_start_hour (priv->view);
+}
+
+static void
+set_day_start_minute (EDayView *day_view)
+{
+ int start_hour, start_minute, end_hour, end_minute;
+
+ e_day_view_get_working_day (day_view, &start_hour, &start_minute, &end_hour, &end_minute);
+
+ start_minute = calendar_config_get_day_start_minute ();
+
+ e_day_view_set_working_day (day_view, start_hour, start_minute, end_hour, end_minute);
+}
+
+static void
+day_start_minute_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_day_start_minute (priv->view);
+}
+
+static void
+set_day_end_hour (EDayView *day_view)
+{
+ int start_hour, start_minute, end_hour, end_minute;
+
+ e_day_view_get_working_day (day_view, &start_hour, &start_minute, &end_hour, &end_minute);
+
+ end_hour = calendar_config_get_day_end_hour ();
+
+ e_day_view_set_working_day (day_view, start_hour, start_minute, end_hour, end_minute);
+}
+
+static void
+day_end_hour_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_day_end_hour (priv->view);
+}
+
+
+static void
+set_day_end_minute (EDayView *day_view)
+{
+ int start_hour, start_minute, end_hour, end_minute;
+
+ e_day_view_get_working_day (day_view, &start_hour, &start_minute, &end_hour, &end_minute);
+
+ end_minute = calendar_config_get_day_end_minute ();
+
+ e_day_view_set_working_day (day_view, start_hour, start_minute, end_hour, end_minute);
+}
+
+static void
+day_end_minute_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_day_end_minute (priv->view);
+}
+
+static void
+set_time_divisions (EDayView *day_view)
+{
+ int time_divisions;
+
+ time_divisions = calendar_config_get_time_divisions ();
+
+ e_day_view_set_mins_per_row (day_view, time_divisions);
+}
+
+static void
+time_divisions_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_time_divisions (priv->view);
+}
+
+static void
+set_show_event_end (EDayView *day_view)
+{
+ gboolean show_event_end;
+
+ show_event_end = calendar_config_get_show_event_end ();
+
+ e_day_view_set_show_event_end_times (day_view, show_event_end);
+}
+
+static void
+show_event_end_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EDayViewConfig *view_config = data;
+ EDayViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_show_event_end (priv->view);
+}
+
+void
+e_day_view_config_set_view (EDayViewConfig *view_config, EDayView *day_view)
+{
+ EDayViewConfigPrivate *priv;
+ guint not;
+ GList *l;
+
+ g_return_if_fail (view_config != NULL);
+ g_return_if_fail (E_IS_DAY_VIEW_CONFIG (view_config));
+
+ priv = view_config->priv;
+
+ if (priv->view) {
+ g_object_unref (priv->view);
+ priv->view = NULL;
+ }
+
+ for (l = priv->notifications; l; l = l->next)
+ calendar_config_remove_notification (GPOINTER_TO_UINT (l->data));
+
+ g_list_free (priv->notifications);
+ priv->notifications = NULL;
+
+ /* If the new view is NULL, return right now */
+ if (!day_view)
+ return;
+
+ priv->view = g_object_ref (day_view);
+
+ /* Week start */
+ set_week_start (day_view);
+
+ not = calendar_config_add_notification_week_start_day (week_start_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* 24 Hour format */
+ set_twentyfour_hour (day_view);
+
+ not = calendar_config_add_notification_24_hour_format (twentyfour_hour_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Working days */
+ set_working_days (day_view);
+
+ not = calendar_config_add_notification_working_days (working_days_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Day start hour */
+ set_day_start_hour (day_view);
+
+ not = calendar_config_add_notification_day_start_hour (day_start_hour_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Day start minute */
+ set_day_start_minute (day_view);
+
+ not = calendar_config_add_notification_day_start_minute (day_start_minute_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Day end hour */
+ set_day_end_hour (day_view);
+
+ not = calendar_config_add_notification_day_end_hour (day_end_hour_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Day start minute */
+ set_day_end_minute (day_view);
+
+ not = calendar_config_add_notification_day_end_minute (day_end_minute_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Time divisions */
+ set_time_divisions (day_view);
+
+ not = calendar_config_add_notification_time_divisions (time_divisions_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Showing event end */
+ set_show_event_end (day_view);
+
+ not = calendar_config_add_notification_show_event_end (show_event_end_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+}
+
diff --git a/calendar/gui/e-day-view-config.h b/calendar/gui/e-day-view-config.h
new file mode 100644
index 0000000000..79e49513bd
--- /dev/null
+++ b/calendar/gui/e-day-view-config.h
@@ -0,0 +1,59 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Author :
+ * JP Rosevear <jpr@ximian.com>
+ *
+ * Copyright 2003, Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#ifndef _E_DAY_VIEW_CONFIG_H_
+#define _E_DAY_VIEW_CONFIG_H_
+
+#include "e-day-view.h"
+
+G_BEGIN_DECLS
+
+/*
+ * EView - base widget class for the calendar views.
+ */
+
+#define E_DAY_VIEW_CONFIG(obj) GTK_CHECK_CAST (obj, e_day_view_config_get_type (), EDayViewConfig)
+#define E_DAY_VIEW_CONFIG_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, e_day_view_config_get_type (), EDayViewConfigClass)
+#define E_IS_DAY_VIEW_CONFIG(obj) GTK_CHECK_TYPE (obj, e_day_view_config_get_type ())
+
+typedef struct _EDayViewConfig EDayViewConfig;
+typedef struct _EDayViewConfigClass EDayViewConfigClass;
+typedef struct _EDayViewConfigPrivate EDayViewConfigPrivate;
+
+struct _EDayViewConfig {
+ ECalView parent;
+
+ EDayViewConfigPrivate *priv;
+};
+
+struct _EDayViewConfigClass {
+ ECalViewClass parent_class;
+};
+
+GType e_day_view_config_get_type (void);
+EDayViewConfig *e_day_view_config_new (EDayView *day_view);
+EDayView *e_day_view_config_get_view (EDayViewConfig *view_config);
+void e_day_view_config_set_view (EDayViewConfig *view_config, EDayView *day_view);
+
+G_END_DECLS
+
+#endif
diff --git a/calendar/gui/e-itip-control.c b/calendar/gui/e-itip-control.c
index d5e24c8936..257d10fd71 100644
--- a/calendar/gui/e-itip-control.c
+++ b/calendar/gui/e-itip-control.c
@@ -151,10 +151,12 @@ start_calendar_server (EItipControl *itip, char *uri)
static gboolean
start_default_server (EItipControl *itip, CalClient *client, gboolean tasks)
{
+#if 0
if (tasks)
return cal_client_open_default_tasks (client, FALSE);
else
return cal_client_open_default_calendar (client, FALSE);
+#endif
}
#if 0 /* EPFIXME, rewrite this */
@@ -2206,7 +2208,6 @@ object_requested_cb (GtkHTML *html, GtkHTMLEmbedded *eb, gpointer data)
context->itip = itip;
context->eb = eb;
- /* FIXME: use the default URIs */
switch (vtype) {
case CAL_COMPONENT_EVENT:
context->client = cal_client_new ("", CALOBJ_TYPE_EVENT);
diff --git a/calendar/gui/e-week-view-config.c b/calendar/gui/e-week-view-config.c
new file mode 100644
index 0000000000..8c9e2cfb70
--- /dev/null
+++ b/calendar/gui/e-week-view-config.c
@@ -0,0 +1,299 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * Author :
+ * Rodrigo Moya <rodrigo@ximian.com>
+ *
+ * Copyright 2003, Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#include "calendar-config.h"
+#include "e-week-view-config.h"
+
+struct _EWeekViewConfigPrivate {
+ EWeekView *view;
+
+ GList *notifications;
+};
+
+static GObjectClass *parent_class = NULL;
+
+/* Property IDs */
+enum props {
+ PROP_0,
+ PROP_VIEW,
+};
+
+static void
+e_week_view_config_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
+{
+ EWeekViewConfig *view_config;
+ EWeekViewConfigPrivate *priv;
+
+ view_config = E_WEEK_VIEW_CONFIG (object);
+ priv = view_config->priv;
+
+ switch (property_id) {
+ case PROP_VIEW:
+ e_week_view_config_set_view (view_config, g_value_get_object (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+e_week_view_config_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
+{
+ EWeekViewConfig *view_config;
+ EWeekViewConfigPrivate *priv;
+
+ view_config = E_WEEK_VIEW_CONFIG (object);
+ priv = view_config->priv;
+
+ switch (property_id) {
+ case PROP_VIEW:
+ g_value_set_object (value, e_week_view_config_get_view (view_config));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+e_week_view_config_dispose (GObject *object)
+{
+ EWeekViewConfig *view_config = E_WEEK_VIEW_CONFIG (object);
+ EWeekViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ e_week_view_config_set_view (view_config, NULL);
+
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+e_week_view_config_finalize (GObject *object)
+{
+ EWeekViewConfig *view_config = E_WEEK_VIEW_CONFIG (object);
+ EWeekViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ g_free (priv);
+
+ if (G_OBJECT_CLASS (parent_class)->finalize)
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+e_week_view_config_class_init (ECalViewClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ GParamSpec *spec;
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ /* Method override */
+ gobject_class->set_property = e_week_view_config_set_property;
+ gobject_class->get_property = e_week_view_config_get_property;
+ gobject_class->dispose = e_week_view_config_dispose;
+ gobject_class->finalize = e_week_view_config_finalize;
+
+ spec = g_param_spec_object ("view", NULL, NULL, e_week_view_get_type (),
+ G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT);
+ g_object_class_install_property (gobject_class, PROP_VIEW, spec);
+}
+
+static void
+e_week_view_config_init (EWeekViewConfig *view_config, EWeekViewConfigClass *klass)
+{
+ view_config->priv = g_new0 (EWeekViewConfigPrivate, 1);
+
+}
+
+E_MAKE_TYPE (e_week_view_config, "EWeekViewConfig", EWeekViewConfig, e_week_view_config_class_init,
+ e_week_view_config_init, G_TYPE_OBJECT);
+
+EWeekViewConfig *
+e_week_view_config_new (EWeekView *week_view)
+{
+ EWeekViewConfig *view_config;
+
+ view_config = g_object_new (e_week_view_config_get_type (), "view", week_view, NULL);
+
+ return view_config;
+}
+
+EWeekView *
+e_week_view_config_get_view (EWeekViewConfig *view_config)
+{
+ EWeekViewConfigPrivate *priv;
+
+ g_return_val_if_fail (view_config != NULL, NULL);
+ g_return_val_if_fail (E_IS_WEEK_VIEW_CONFIG (view_config), NULL);
+
+ priv = view_config->priv;
+
+ return priv->view;
+}
+
+static void
+set_week_start (EWeekView *week_view)
+{
+ int week_start_week;
+
+ week_start_week = calendar_config_get_week_start_day ();
+
+ /* Convert it to 0 (Mon) to 6 (Sun), which is what we use. */
+ week_start_week = (week_start_week + 6) % 7;
+
+ e_week_view_set_week_start_day (week_view, week_start_week);
+}
+
+static void
+week_start_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EWeekViewConfig *view_config = data;
+ EWeekViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_week_start (priv->view);
+}
+
+static void
+set_twentyfour_hour (EWeekView *week_view)
+{
+ gboolean use_24_hour;
+
+ use_24_hour = calendar_config_get_24_hour_format ();
+
+ e_week_view_set_24_hour_format (week_view, use_24_hour);
+}
+
+static void
+twentyfour_hour_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EWeekViewConfig *view_config = data;
+ EWeekViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_twentyfour_hour (priv->view);
+}
+
+static void
+set_show_event_end (EWeekView *week_view)
+{
+ gboolean show_event_end;
+
+ show_event_end = calendar_config_get_show_event_end ();
+
+ e_week_view_set_show_event_end_times (week_view, show_event_end);
+}
+
+static void
+show_event_end_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EWeekViewConfig *view_config = data;
+ EWeekViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_show_event_end (priv->view);
+}
+
+static void
+set_compress_weekend (EWeekView *week_view)
+{
+ gboolean compress_weekend;
+
+ compress_weekend = calendar_config_get_compress_weekend ();
+
+ e_week_view_set_compress_weekend (week_view, compress_weekend);
+}
+
+static void
+compress_weekend_changed_cb (GConfClient *client, guint id, GConfEntry *entry, gpointer data)
+{
+ EWeekViewConfig *view_config = data;
+ EWeekViewConfigPrivate *priv;
+
+ priv = view_config->priv;
+
+ set_compress_weekend (priv->view);
+}
+
+void
+e_week_view_config_set_view (EWeekViewConfig *view_config, EWeekView *week_view)
+{
+ EWeekViewConfigPrivate *priv;
+ guint not;
+ GList *l;
+
+ g_return_if_fail (view_config != NULL);
+ g_return_if_fail (E_IS_WEEK_VIEW_CONFIG (view_config));
+
+ priv = view_config->priv;
+
+ if (priv->view) {
+ g_object_unref (priv->view);
+ priv->view = NULL;
+ }
+
+ for (l = priv->notifications; l; l = l->next)
+ calendar_config_remove_notification (GPOINTER_TO_UINT (l->data));
+
+ g_list_free (priv->notifications);
+ priv->notifications = NULL;
+
+ /* If the new view is NULL, return right now */
+ if (!week_view)
+ return;
+
+ priv->view = g_object_ref (week_view);
+
+ /* Week start */
+ set_week_start (week_view);
+
+ not = calendar_config_add_notification_week_start_day (week_start_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* 24 Hour format */
+ set_twentyfour_hour (week_view);
+
+ not = calendar_config_add_notification_24_hour_format (twentyfour_hour_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Show event end */
+ set_show_event_end (week_view);
+
+ not = calendar_config_add_notification_show_event_end (show_event_end_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+
+ /* Compress weekend */
+ set_compress_weekend (week_view);
+
+ not = calendar_config_add_notification_compress_weekend (compress_weekend_changed_cb, view_config);
+ priv->notifications = g_list_prepend (priv->notifications, GUINT_TO_POINTER (not));
+}
+
diff --git a/calendar/gui/e-week-view-config.h b/calendar/gui/e-week-view-config.h
new file mode 100644
index 0000000000..ab2fa6b025
--- /dev/null
+++ b/calendar/gui/e-week-view-config.h
@@ -0,0 +1,59 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Author :
+ * JP Rosevear <jpr@ximian.com>
+ *
+ * Copyright 2003, Ximian, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#ifndef _E_WEEK_VIEW_CONFIG_H_
+#define _E_WEEK_VIEW_CONFIG_H_
+
+#include "e-week-view.h"
+
+G_BEGIN_DECLS
+
+/*
+ * EView - base widget class for the calendar views.
+ */
+
+#define E_WEEK_VIEW_CONFIG(obj) GTK_CHECK_CAST (obj, e_week_view_config_get_type (), EWeekViewConfig)
+#define E_WEEK_VIEW_CONFIG_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, e_week_view_config_get_type (), EWeekViewConfigClass)
+#define E_IS_WEEK_VIEW_CONFIG(obj) GTK_CHECK_TYPE (obj, e_week_view_config_get_type ())
+
+typedef struct _EWeekViewConfig EWeekViewConfig;
+typedef struct _EWeekViewConfigClass EWeekViewConfigClass;
+typedef struct _EWeekViewConfigPrivate EWeekViewConfigPrivate;
+
+struct _EWeekViewConfig {
+ ECalView parent;
+
+ EWeekViewConfigPrivate *priv;
+};
+
+struct _EWeekViewConfigClass {
+ ECalViewClass parent_class;
+};
+
+GType e_week_view_config_get_type (void);
+EWeekViewConfig *e_week_view_config_new (EWeekView *week_view);
+EWeekView *e_week_view_config_get_view (EWeekViewConfig *view_config);
+void e_week_view_config_set_view (EWeekViewConfig *view_config, EWeekView *week_view);
+
+G_END_DECLS
+
+#endif
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 9e622ff381..4a042f36e3 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -1644,9 +1644,11 @@ e_week_view_set_compress_weekend (EWeekView *week_view,
week_view->events_need_reshape = TRUE;
e_week_view_check_layout (week_view);
}
-}
+ gtk_widget_queue_draw (week_view->main_canvas);
+}
+
/* Whether we display event end times. */
gboolean
e_week_view_get_show_event_end_times (EWeekView *week_view)
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 6e572484c8..da0bacdd91 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -46,8 +46,10 @@
#include "comp-util.h"
#include "e-cal-model-calendar.h"
#include "e-day-view.h"
+#include "e-day-view-config.h"
#include "e-day-view-time-item.h"
#include "e-week-view.h"
+#include "e-week-view-config.h"
#include "e-cal-list-view.h"
#include "evolution-calendar.h"
#include "gnome-cal.h"
@@ -121,6 +123,7 @@ struct _GnomeCalendarPrivate {
positions of the panes. range_selected is TRUE if a range of dates
was selected in the date navigator to show the view. */
ECalView *views[GNOME_CAL_LAST_VIEW];
+ GObject *configs[GNOME_CAL_LAST_VIEW];
GnomeCalendarViewType current_view_type;
gboolean range_selected;
@@ -949,10 +952,15 @@ setup_widgets (GnomeCalendar *gcal)
connect_list_view_focus (gcal, E_CAL_LIST_VIEW (priv->list_view));
priv->views[GNOME_CAL_DAY_VIEW] = E_CAL_VIEW (priv->day_view);
+ priv->configs[GNOME_CAL_DAY_VIEW] = e_day_view_config_new (E_DAY_VIEW (priv->views[GNOME_CAL_DAY_VIEW]));
priv->views[GNOME_CAL_WORK_WEEK_VIEW] = E_CAL_VIEW (priv->work_week_view);
+ priv->configs[GNOME_CAL_WORK_WEEK_VIEW] = e_day_view_config_new (E_DAY_VIEW (priv->views[GNOME_CAL_WORK_WEEK_VIEW]));
priv->views[GNOME_CAL_WEEK_VIEW] = E_CAL_VIEW (priv->week_view);
+ priv->configs[GNOME_CAL_WEEK_VIEW] = e_week_view_config_new (E_WEEK_VIEW (priv->views[GNOME_CAL_WEEK_VIEW]));
priv->views[GNOME_CAL_MONTH_VIEW] = E_CAL_VIEW (priv->month_view);
+ priv->configs[GNOME_CAL_MONTH_VIEW] = e_week_view_config_new (E_WEEK_VIEW (priv->views[GNOME_CAL_MONTH_VIEW]));
priv->views[GNOME_CAL_LIST_VIEW] = E_CAL_VIEW (priv->list_view);
+ priv->configs[GNOME_CAL_LIST_VIEW] = NULL;
for (i = 0; i < GNOME_CAL_LAST_VIEW; i++) {
gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
@@ -2220,7 +2228,7 @@ gnome_calendar_set_default_uri (GnomeCalendar *gcal, const char *uri)
CalClient *client;
int i;
- g_return_if_fail (GNOME_IS_CALENDAR (gcal));
+ g_return_val_if_fail (GNOME_IS_CALENDAR (gcal), FALSE);
priv = gcal->priv;
@@ -2246,10 +2254,6 @@ gnome_calendar_update_config_settings (GnomeCalendar *gcal,
gboolean initializing)
{
GnomeCalendarPrivate *priv;
- CalWeekdays working_days;
- gint week_start_day, time_divisions;
- gint start_hour, start_minute, end_hour, end_minute;
- gboolean use_24_hour, show_event_end, compress_weekend;
char *location;
GList *l;
int i;
@@ -2258,70 +2262,6 @@ gnome_calendar_update_config_settings (GnomeCalendar *gcal,
priv = gcal->priv;
- working_days = calendar_config_get_working_days ();
- /* CalWeekdays and EDayViewDays use the same bit-masks, so we can
- use the same value. */
- e_day_view_set_working_days (E_DAY_VIEW (priv->day_view),
- (EDayViewDays) working_days);
- e_day_view_set_working_days (E_DAY_VIEW (priv->work_week_view),
- (EDayViewDays) working_days);
-
- /* Note that this is 0 (Sun) to 6 (Sat). */
- week_start_day = calendar_config_get_week_start_day ();
-
- /* Convert it to 0 (Mon) to 6 (Sun), which is what we use. */
- week_start_day = (week_start_day + 6) % 7;
-
- e_day_view_set_week_start_day (E_DAY_VIEW (priv->day_view),
- week_start_day);
- e_day_view_set_week_start_day (E_DAY_VIEW (priv->work_week_view),
- week_start_day);
- e_week_view_set_week_start_day (E_WEEK_VIEW (priv->week_view),
- week_start_day);
- e_week_view_set_week_start_day (E_WEEK_VIEW (priv->month_view),
- week_start_day);
-
- start_hour = calendar_config_get_day_start_hour ();
- start_minute = calendar_config_get_day_start_minute ();
- end_hour = calendar_config_get_day_end_hour ();
- end_minute = calendar_config_get_day_end_minute ();
- e_day_view_set_working_day (E_DAY_VIEW (priv->day_view),
- start_hour, start_minute,
- end_hour, end_minute);
- e_day_view_set_working_day (E_DAY_VIEW (priv->work_week_view),
- start_hour, start_minute,
- end_hour, end_minute);
-
- use_24_hour = calendar_config_get_24_hour_format ();
- e_day_view_set_24_hour_format (E_DAY_VIEW (priv->day_view),
- use_24_hour);
- e_day_view_set_24_hour_format (E_DAY_VIEW (priv->work_week_view),
- use_24_hour);
- e_week_view_set_24_hour_format (E_WEEK_VIEW (priv->week_view),
- use_24_hour);
- e_week_view_set_24_hour_format (E_WEEK_VIEW (priv->month_view),
- use_24_hour);
-
- time_divisions = calendar_config_get_time_divisions ();
- e_day_view_set_mins_per_row (E_DAY_VIEW (priv->day_view),
- time_divisions);
- e_day_view_set_mins_per_row (E_DAY_VIEW (priv->work_week_view),
- time_divisions);
-
- show_event_end = calendar_config_get_show_event_end ();
- e_day_view_set_show_event_end_times (E_DAY_VIEW (priv->day_view),
- show_event_end);
- e_day_view_set_show_event_end_times (E_DAY_VIEW (priv->work_week_view),
- show_event_end);
- e_week_view_set_show_event_end_times (E_WEEK_VIEW (priv->week_view),
- show_event_end);
- e_week_view_set_show_event_end_times (E_WEEK_VIEW (priv->month_view),
- show_event_end);
-
- compress_weekend = calendar_config_get_compress_weekend ();
- e_week_view_set_compress_weekend (E_WEEK_VIEW (priv->month_view),
- compress_weekend);
-
calendar_config_configure_e_calendar (E_CALENDAR (priv->date_navigator));
calendar_config_configure_e_calendar_table (E_CALENDAR_TABLE (priv->todo));