From b7e0730aab5e67535dd8bcd70e400869fa55601b Mon Sep 17 00:00:00 2001 From: Damon Chaplin Date: Mon, 30 Jul 2001 22:21:13 +0000 Subject: started some code to show the currently displayed dates in the folder 2001-07-30 Damon Chaplin * gui/gnome-cal.c: * gui/calendar-commands.c (clear_folder_bar_label): started some code to show the currently displayed dates in the folder title bar. Unfinished. * gui/e-itip-control.c (set_date_label): * conduits/todo/todo-conduit.c (local_record_from_comp): * conduits/calendar/calendar-conduit.c (local_record_from_comp): free the CalComponentDateTimes. (Note the iTIP control needs updating for timezone support.) * cal-util/cal-component.c: Changed CalComponentDateTime so that the TZID is malloc'ed and freed rather than being a pointer to a static string. This was causing problems as sometimes we were freeing the string that was being pointed to, so we got corrupted TZIDs. * gui/comp-util.c (cal_comp_util_add_exdate): set TZID to NULL. DATE values do not have timezones. * gui/e-week-view.c: * gui/e-day-view.c: Moved 'Paste' after the New Appointment commands, since I think they are more commonly-used. Also added underlined accelerator keys. * gui/e-calendar-table.c: changed 'Edit this task' to 'Open' in the popup menu to be consistent with other folders, and separated from the clipboard commands. Also changed to use EPopupMenu so the accelerators work, and the masks may be useful at some point. * gui/dialogs/recurrence-page.c: use DATE values for UNTIL, since that makes it simpler. Fixes bug #5034. * gui/calendar-config.c (calendar_config_set_timezone): strdup the location string. Fixes bug #4990. * gui/tag-calendar.c (tag_calendar_cb): take 1 off iend as the times don't include the end time. * gui/e-week-view-layout.c (e_week_view_layout_event): fixed days_shown. Fixes bug #5709. * cal-client/cal-client.c (cal_client_get_timezone): took out some debugging messages. svn path=/trunk/; revision=11494 --- calendar/gui/gnome-cal.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'calendar/gui/gnome-cal.c') diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 7a50df5389..96f7fbc405 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -137,6 +137,16 @@ struct _GnomeCalendarPrivate { icaltimezone *zone; }; +/* Signal IDs */ + +enum { + DATES_SHOWN_CHANGED, + LAST_SIGNAL +}; + +static guint gnome_calendar_signals[LAST_SIGNAL]; + + static void gnome_calendar_class_init (GnomeCalendarClass *class); @@ -158,6 +168,8 @@ static void gnome_calendar_on_date_navigator_date_range_changed (ECalendarItem * GnomeCalendar *gcal); static void gnome_calendar_on_date_navigator_selection_changed (ECalendarItem *calitem, GnomeCalendar *gcal); +static void gnome_calendar_notify_dates_shown_changed (GnomeCalendar *gcal); + static GtkVBoxClass *parent_class; @@ -197,7 +209,22 @@ gnome_calendar_class_init (GnomeCalendarClass *class) parent_class = gtk_type_class (GTK_TYPE_VBOX); + gnome_calendar_signals[DATES_SHOWN_CHANGED] = + gtk_signal_new ("dates_shown_changed", + GTK_RUN_LAST, + object_class->type, + GTK_SIGNAL_OFFSET (GnomeCalendarClass, + dates_shown_changed), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + + gtk_object_class_add_signals (object_class, + gnome_calendar_signals, + LAST_SIGNAL); + object_class->destroy = gnome_calendar_destroy; + + class->dates_shown_changed = NULL; } /** @@ -496,6 +523,7 @@ gnome_calendar_goto (GnomeCalendar *gcal, time_t new_time) gnome_calendar_update_view_times (gcal); gnome_calendar_update_date_navigator (gcal); + gnome_calendar_notify_dates_shown_changed (gcal); } @@ -588,6 +616,7 @@ gnome_calendar_direction (GnomeCalendar *gcal, int direction) gnome_calendar_update_view_times (gcal); gnome_calendar_update_date_navigator (gcal); + gnome_calendar_notify_dates_shown_changed (gcal); } void @@ -784,6 +813,7 @@ gnome_calendar_set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type, set_view (gcal, view_type, range_selected, grab_focus); gnome_calendar_update_view_times (gcal); gnome_calendar_update_date_navigator (gcal); + gnome_calendar_notify_dates_shown_changed (gcal); } /* Callback used when the view collection asks us to display a particular view */ @@ -1366,6 +1396,7 @@ gnome_calendar_update_config_settings (GnomeCalendar *gcal, /* The range of days shown may have changed, so we update the date navigator if needed. */ gnome_calendar_update_date_navigator (gcal); + gnome_calendar_notify_dates_shown_changed (gcal); } @@ -1713,11 +1744,13 @@ gnome_calendar_on_date_navigator_selection_changed (ECalendarItem *calitem, set_view (gcal, GNOME_CAL_MONTH_VIEW, TRUE, FALSE); gnome_calendar_update_date_navigator (gcal); + gnome_calendar_notify_dates_shown_changed (gcal); } else if (new_days_shown == 7 && starts_on_week_start_day) { e_week_view_set_first_day_shown (E_WEEK_VIEW (priv->week_view), &new_start_date); set_view (gcal, GNOME_CAL_WEEK_VIEW, TRUE, FALSE); gnome_calendar_update_date_navigator (gcal); + gnome_calendar_notify_dates_shown_changed (gcal); } else { gint start_year, start_month, start_day; gint end_year, end_month, end_day; @@ -2013,3 +2046,12 @@ gnome_calendar_get_timezone (GnomeCalendar *gcal) return gcal->priv->zone; } + +static void +gnome_calendar_notify_dates_shown_changed (GnomeCalendar *gcal) +{ + g_return_if_fail (GNOME_IS_CALENDAR (gcal)); + + gtk_signal_emit (GTK_OBJECT (gcal), + gnome_calendar_signals[DATES_SHOWN_CHANGED]); +} -- cgit