aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog15
-rw-r--r--calendar/gncal-day-panel.c19
-rw-r--r--calendar/gncal-day-panel.h9
-rw-r--r--calendar/gncal-week-view.c20
-rw-r--r--calendar/gncal-week-view.h9
-rw-r--r--calendar/gnome-cal.c2
-rw-r--r--calendar/gui/gncal-day-panel.c19
-rw-r--r--calendar/gui/gncal-day-panel.h9
-rw-r--r--calendar/gui/gncal-week-view.c20
-rw-r--r--calendar/gui/gncal-week-view.h9
-rw-r--r--calendar/gui/gnome-cal.c2
11 files changed, 113 insertions, 20 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index a53f21bb85..5def8c8840 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,18 @@
+1999-02-03 Federico Mena Quintero <federico@nuclecu.unam.mx>
+
+ * gncal-week-view.c (gncal_week_view_new): Make the calendar start
+ weeks on Monday if appropriate.
+ (gncal_week_view_time_format_changed): New function to notify the
+ week view that the time format has changed.
+
+ * gncal-day-panel.c (gncal_day_panel_new): Make the calendar start
+ weeks on Monday if appropriate.
+ (gncal_day_panel_time_format_changed): New function to notify the
+ day panel that the time format has changed.
+
+ * gnome-cal.c (gnome_calendar_time_format_changed): Tell the day
+ and week views that the time format has changed.
+
1999-02-01 Federico Mena Quintero <federico@nuclecu.unam.mx>
* eventedit.c (event_editor_init): Set the title of the event
diff --git a/calendar/gncal-day-panel.c b/calendar/gncal-day-panel.c
index 0c69026278..b847cf8168 100644
--- a/calendar/gncal-day-panel.c
+++ b/calendar/gncal-day-panel.c
@@ -150,7 +150,10 @@ gncal_day_panel_new (GnomeCalendar *calendar, time_t start_of_day)
w = gtk_calendar_new ();
dpanel->gtk_calendar = GTK_CALENDAR (w);
gtk_calendar_display_options (dpanel->gtk_calendar,
- GTK_CALENDAR_SHOW_HEADING | GTK_CALENDAR_SHOW_DAY_NAMES);
+ (GTK_CALENDAR_SHOW_HEADING
+ | GTK_CALENDAR_SHOW_DAY_NAMES
+ | (week_starts_on_monday
+ ? GTK_CALENDAR_WEEK_START_MONDAY : 0)));
gtk_calendar_select_month (dpanel->gtk_calendar, tm->tm_mon, tm->tm_year + 1900);
gtk_calendar_select_day (dpanel->gtk_calendar, tm->tm_mday);
dpanel->day_selected_id = gtk_signal_connect (GTK_OBJECT (dpanel->gtk_calendar),
@@ -245,3 +248,17 @@ gncal_day_panel_set (GncalDayPanel *dpanel, time_t start_of_day)
update (dpanel, FALSE, NULL, 0);
}
+
+void
+gncal_day_panel_time_format_changed (GncalDayPanel *dpanel)
+{
+ g_return_if_fail (dpanel != NULL);
+ g_return_if_fail (GNCAL_IS_DAY_PANEL (dpanel));
+
+ gtk_calendar_display_options (dpanel->gtk_calendar,
+ (week_starts_on_monday
+ ? (dpanel->gtk_calendar->display_flags
+ | GTK_CALENDAR_WEEK_START_MONDAY)
+ : (dpanel->gtk_calendar->display_flags
+ & ~GTK_CALENDAR_WEEK_START_MONDAY)));
+}
diff --git a/calendar/gncal-day-panel.h b/calendar/gncal-day-panel.h
index 87bce9732f..48ba6f38b1 100644
--- a/calendar/gncal-day-panel.h
+++ b/calendar/gncal-day-panel.h
@@ -49,11 +49,12 @@ struct _GncalDayPanelClass {
};
-guint gncal_day_panel_get_type (void);
-GtkWidget *gncal_day_panel_new (GnomeCalendar *calendar, time_t start_of_day);
+guint gncal_day_panel_get_type (void);
+GtkWidget *gncal_day_panel_new (GnomeCalendar *calendar, time_t start_of_day);
-void gncal_day_panel_update (GncalDayPanel *dpanel, iCalObject *ico, int flags);
-void gncal_day_panel_set (GncalDayPanel *dpanel, time_t start_of_day);
+void gncal_day_panel_update (GncalDayPanel *dpanel, iCalObject *ico, int flags);
+void gncal_day_panel_set (GncalDayPanel *dpanel, time_t start_of_day);
+void gncal_day_panel_time_format_changed (GncalDayPanel *dpanel);
END_GNOME_DECLS
diff --git a/calendar/gncal-week-view.c b/calendar/gncal-week-view.c
index 63255702a7..41b2596016 100644
--- a/calendar/gncal-week-view.c
+++ b/calendar/gncal-week-view.c
@@ -10,6 +10,7 @@
#include <string.h>
#include <gtk/gtk.h>
#include "gncal-week-view.h"
+#include "main.h"
#include "timeutil.h"
static void gncal_week_view_init (GncalWeekView *wview);
@@ -140,7 +141,11 @@ gncal_week_view_new (GnomeCalendar *calendar, time_t start_of_week)
GTK_SIGNAL_FUNC(sync_week), wview);
gtk_calendar_display_options (wview->gtk_calendar,
- GTK_CALENDAR_SHOW_HEADING | GTK_CALENDAR_SHOW_DAY_NAMES);
+ (GTK_CALENDAR_SHOW_HEADING
+ | GTK_CALENDAR_SHOW_DAY_NAMES
+ | (week_starts_on_monday
+ ? GTK_CALENDAR_WEEK_START_MONDAY : 0)));
+
gtk_table_attach (GTK_TABLE (table), GTK_WIDGET (wview->gtk_calendar),
0, 3,
1, 2,
@@ -235,3 +240,16 @@ gncal_week_view_set (GncalWeekView *wview, time_t start_of_week)
}
}
+void
+gncal_week_view_time_format_changed (GncalWeekView *wview)
+{
+ g_return_if_fail (wview != NULL);
+ g_return_if_fail (GNCAL_IS_WEEK_VIEW (wview));
+
+ gtk_calendar_display_options (wview->gtk_calendar,
+ (week_starts_on_monday
+ ? (wview->gtk_calendar->display_flags
+ | GTK_CALENDAR_WEEK_START_MONDAY)
+ : (wview->gtk_calendar->display_flags
+ & ~GTK_CALENDAR_WEEK_START_MONDAY)));
+}
diff --git a/calendar/gncal-week-view.h b/calendar/gncal-week-view.h
index 19d1e36b78..ab06161844 100644
--- a/calendar/gncal-week-view.h
+++ b/calendar/gncal-week-view.h
@@ -44,11 +44,12 @@ struct _GncalWeekViewClass {
};
-guint gncal_week_view_get_type (void);
-GtkWidget *gncal_week_view_new (GnomeCalendar *calendar, time_t start_of_week);
+guint gncal_week_view_get_type (void);
+GtkWidget *gncal_week_view_new (GnomeCalendar *calendar, time_t start_of_week);
-void gncal_week_view_update (GncalWeekView *wview, iCalObject *ico, int flags);
-void gncal_week_view_set (GncalWeekView *wview, time_t start_of_week);
+void gncal_week_view_update (GncalWeekView *wview, iCalObject *ico, int flags);
+void gncal_week_view_set (GncalWeekView *wview, time_t start_of_week);
+void gncal_week_view_time_format_changed (GncalWeekView *wview);
END_GNOME_DECLS
diff --git a/calendar/gnome-cal.c b/calendar/gnome-cal.c
index 51cda3472f..5b59cb379c 100644
--- a/calendar/gnome-cal.c
+++ b/calendar/gnome-cal.c
@@ -465,7 +465,9 @@ gnome_calendar_time_format_changed (GnomeCalendar *gcal)
/* FIXME: the queue resizes will do until we rewrite those views... */
+ gncal_day_panel_time_format_changed (GNCAL_DAY_PANEL (gcal->day_view));
gtk_widget_queue_resize (gcal->day_view);
+ gncal_week_view_time_format_changed (GNCAL_WEEK_VIEW (gcal->week_view));
gtk_widget_queue_resize (gcal->week_view);
month_view_time_format_changed (MONTH_VIEW (gcal->month_view));
year_view_time_format_changed (YEAR_VIEW (gcal->year_view));
diff --git a/calendar/gui/gncal-day-panel.c b/calendar/gui/gncal-day-panel.c
index 0c69026278..b847cf8168 100644
--- a/calendar/gui/gncal-day-panel.c
+++ b/calendar/gui/gncal-day-panel.c
@@ -150,7 +150,10 @@ gncal_day_panel_new (GnomeCalendar *calendar, time_t start_of_day)
w = gtk_calendar_new ();
dpanel->gtk_calendar = GTK_CALENDAR (w);
gtk_calendar_display_options (dpanel->gtk_calendar,
- GTK_CALENDAR_SHOW_HEADING | GTK_CALENDAR_SHOW_DAY_NAMES);
+ (GTK_CALENDAR_SHOW_HEADING
+ | GTK_CALENDAR_SHOW_DAY_NAMES
+ | (week_starts_on_monday
+ ? GTK_CALENDAR_WEEK_START_MONDAY : 0)));
gtk_calendar_select_month (dpanel->gtk_calendar, tm->tm_mon, tm->tm_year + 1900);
gtk_calendar_select_day (dpanel->gtk_calendar, tm->tm_mday);
dpanel->day_selected_id = gtk_signal_connect (GTK_OBJECT (dpanel->gtk_calendar),
@@ -245,3 +248,17 @@ gncal_day_panel_set (GncalDayPanel *dpanel, time_t start_of_day)
update (dpanel, FALSE, NULL, 0);
}
+
+void
+gncal_day_panel_time_format_changed (GncalDayPanel *dpanel)
+{
+ g_return_if_fail (dpanel != NULL);
+ g_return_if_fail (GNCAL_IS_DAY_PANEL (dpanel));
+
+ gtk_calendar_display_options (dpanel->gtk_calendar,
+ (week_starts_on_monday
+ ? (dpanel->gtk_calendar->display_flags
+ | GTK_CALENDAR_WEEK_START_MONDAY)
+ : (dpanel->gtk_calendar->display_flags
+ & ~GTK_CALENDAR_WEEK_START_MONDAY)));
+}
diff --git a/calendar/gui/gncal-day-panel.h b/calendar/gui/gncal-day-panel.h
index 87bce9732f..48ba6f38b1 100644
--- a/calendar/gui/gncal-day-panel.h
+++ b/calendar/gui/gncal-day-panel.h
@@ -49,11 +49,12 @@ struct _GncalDayPanelClass {
};
-guint gncal_day_panel_get_type (void);
-GtkWidget *gncal_day_panel_new (GnomeCalendar *calendar, time_t start_of_day);
+guint gncal_day_panel_get_type (void);
+GtkWidget *gncal_day_panel_new (GnomeCalendar *calendar, time_t start_of_day);
-void gncal_day_panel_update (GncalDayPanel *dpanel, iCalObject *ico, int flags);
-void gncal_day_panel_set (GncalDayPanel *dpanel, time_t start_of_day);
+void gncal_day_panel_update (GncalDayPanel *dpanel, iCalObject *ico, int flags);
+void gncal_day_panel_set (GncalDayPanel *dpanel, time_t start_of_day);
+void gncal_day_panel_time_format_changed (GncalDayPanel *dpanel);
END_GNOME_DECLS
diff --git a/calendar/gui/gncal-week-view.c b/calendar/gui/gncal-week-view.c
index 63255702a7..41b2596016 100644
--- a/calendar/gui/gncal-week-view.c
+++ b/calendar/gui/gncal-week-view.c
@@ -10,6 +10,7 @@
#include <string.h>
#include <gtk/gtk.h>
#include "gncal-week-view.h"
+#include "main.h"
#include "timeutil.h"
static void gncal_week_view_init (GncalWeekView *wview);
@@ -140,7 +141,11 @@ gncal_week_view_new (GnomeCalendar *calendar, time_t start_of_week)
GTK_SIGNAL_FUNC(sync_week), wview);
gtk_calendar_display_options (wview->gtk_calendar,
- GTK_CALENDAR_SHOW_HEADING | GTK_CALENDAR_SHOW_DAY_NAMES);
+ (GTK_CALENDAR_SHOW_HEADING
+ | GTK_CALENDAR_SHOW_DAY_NAMES
+ | (week_starts_on_monday
+ ? GTK_CALENDAR_WEEK_START_MONDAY : 0)));
+
gtk_table_attach (GTK_TABLE (table), GTK_WIDGET (wview->gtk_calendar),
0, 3,
1, 2,
@@ -235,3 +240,16 @@ gncal_week_view_set (GncalWeekView *wview, time_t start_of_week)
}
}
+void
+gncal_week_view_time_format_changed (GncalWeekView *wview)
+{
+ g_return_if_fail (wview != NULL);
+ g_return_if_fail (GNCAL_IS_WEEK_VIEW (wview));
+
+ gtk_calendar_display_options (wview->gtk_calendar,
+ (week_starts_on_monday
+ ? (wview->gtk_calendar->display_flags
+ | GTK_CALENDAR_WEEK_START_MONDAY)
+ : (wview->gtk_calendar->display_flags
+ & ~GTK_CALENDAR_WEEK_START_MONDAY)));
+}
diff --git a/calendar/gui/gncal-week-view.h b/calendar/gui/gncal-week-view.h
index 19d1e36b78..ab06161844 100644
--- a/calendar/gui/gncal-week-view.h
+++ b/calendar/gui/gncal-week-view.h
@@ -44,11 +44,12 @@ struct _GncalWeekViewClass {
};
-guint gncal_week_view_get_type (void);
-GtkWidget *gncal_week_view_new (GnomeCalendar *calendar, time_t start_of_week);
+guint gncal_week_view_get_type (void);
+GtkWidget *gncal_week_view_new (GnomeCalendar *calendar, time_t start_of_week);
-void gncal_week_view_update (GncalWeekView *wview, iCalObject *ico, int flags);
-void gncal_week_view_set (GncalWeekView *wview, time_t start_of_week);
+void gncal_week_view_update (GncalWeekView *wview, iCalObject *ico, int flags);
+void gncal_week_view_set (GncalWeekView *wview, time_t start_of_week);
+void gncal_week_view_time_format_changed (GncalWeekView *wview);
END_GNOME_DECLS
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 51cda3472f..5b59cb379c 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -465,7 +465,9 @@ gnome_calendar_time_format_changed (GnomeCalendar *gcal)
/* FIXME: the queue resizes will do until we rewrite those views... */
+ gncal_day_panel_time_format_changed (GNCAL_DAY_PANEL (gcal->day_view));
gtk_widget_queue_resize (gcal->day_view);
+ gncal_week_view_time_format_changed (GNCAL_WEEK_VIEW (gcal->week_view));
gtk_widget_queue_resize (gcal->week_view);
month_view_time_format_changed (MONTH_VIEW (gcal->month_view));
year_view_time_format_changed (YEAR_VIEW (gcal->year_view));