From c4f6855cebd5b13deca8109e79f0beb7dabdd0ce Mon Sep 17 00:00:00 2001 From: Damon Chaplin Date: Mon, 1 May 2000 00:27:17 +0000 Subject: new function to see if the event dates have changed (including any 2000-05-01 Damon Chaplin * cal-util/calobj.c (ical_object_compare_dates): new function to see if the event dates have changed (including any recurrence rules). It is used for optimization when we get the "object_changed" signal. We have to do far less work if the dates are unchanged. * gui/e-week-view.c: * gui/e-day-view.c: only draw the selection when we have the keyboard focus, since the user expects to be able to type in a new event when the selection is shown. Also keep the selection when we lose focus, but just don't show it. Also quite a few changes to cope with the new client/server architecture. * gui/e-day-view-top-item.c (e_day_view_top_item_draw): * gui/e-day-view-main-item.c (e_day_view_main_item_draw): * gui/e-week-view-main-item.c (e_week_view_main_item_draw_day): only draw the selection if the widget has the keyboard focus. * gui/gnome-cal.c (mark_gtk_calendar_day): fixed so it works with events longer than one day. And changed the code for updating events in the new views. svn path=/trunk/; revision=2701 --- calendar/gui/e-day-view.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'calendar/gui/e-day-view.h') diff --git a/calendar/gui/e-day-view.h b/calendar/gui/e-day-view.h index ac967f030c..ea49fff0ee 100644 --- a/calendar/gui/e-day-view.h +++ b/calendar/gui/e-day-view.h @@ -314,6 +314,11 @@ struct _EDayView gint editing_event_day; gint editing_event_num; + /* This is TRUE if we are editing an event which we have just created. + We ignore the "update_event" callback which we will get from the + server when the event is added. */ + gboolean editing_new_event; + /* This is a GnomeCanvasRect which is placed around an item while it is being resized, so we can raise it above all other EText items. */ GnomeCanvasItem *resize_long_event_rect_item; @@ -414,15 +419,18 @@ void e_day_view_set_selected_time_range (EDayView *day_view, time_t start_time, time_t end_time); +/* This reloads all calendar events. */ +void e_day_view_update_all_events (EDayView *day_view); -/* This is called when one or more events have been updated, either within the - EDayView itself, or via another calendar view or application. If only one - event has changed, it is passed in the ico argument and the flags indicate - the change - whether it is a new event, or just the summary has changed. */ +/* This is called when one event has been added or updated. */ void e_day_view_update_event (EDayView *day_view, - iCalObject *ico, - int flags); + const gchar *uid); +/* This removes all the events associated with the given uid. Note that for + recurring events there may be more than one. If any events are found and + removed we need to layout the events again. */ +void e_day_view_remove_event (EDayView *day_view, + const gchar *uid); /* The number of days shown in the EDayView, from 1 to 7. This is normally either 1 or 5 (for the Work-Week view). */ -- cgit v1.2.3