#ifndef CALENDAR_H #define CALENDAR_H #include "calobj.h" BEGIN_GNOME_DECLS typedef struct { /* This calendar's title */ char *title; /* backing store for this calendar object */ char *filename; /* The list of events; todo's and journal entries */ GList *events; GList *todo; GList *journal; /* Time at which the calendar was created */ time_t created; /* Timestamp in the filename */ time_t file_time; /* If the calendar was last modified */ int modified; void *temp; } Calendar; /* This is only used by the calendar_get_events_in_range routine to get * a list of objects that recur on a specific date */ typedef struct { time_t ev_start; time_t ev_end; iCalObject *ico; } CalendarObject; Calendar *calendar_new (char *title); char *calendar_load (Calendar *cal, char *fname); void calendar_save (Calendar *cal, char *fname); void calendar_add_object (Calendar *cal, iCalObject *obj); void calendar_remove_object (Calendar *cal, iCalObject *obj); void calendar_destroy (Calendar *cal); GList *calendar_get_objects_in_range (GList *objects, time_t start, time_t end, GCompareFunc sort_func); GList *calendar_get_todo_in_range (Calendar *cal, time_t start, time_t end, GCompareFunc sort_func); GList *calendar_get_journal_in_range (Calendar *cal, time_t start, time_t end, GCompareFunc sort_func); gint calendar_compare_by_dtstart (gpointer a, gpointer b); void calendar_iterate_on_objects (GList *objects, time_t start, time_t end, calendarfn cb, void *closure); void calendar_iterate (Calendar *cal, time_t start, time_t end, calendarfn cb, void *closure); /* Returns a list of CalendarObject structures. These represent the events in the calendar that are * in the specified range. */ GList *calendar_get_events_in_range (Calendar *cal, time_t start, time_t end); /* Destroy list returned by calendar_get_events_in_range() with this function */ void calendar_destroy_event_list (GList *l); /* Informs the calendar that obj information has changed */ void calendar_object_changed (Calendar *cal, iCalObject *obj, int flags); void calendar_notify (time_t time, CalendarAlarm *which, void *data); END_GNOME_DECLS #endif