diff options
Diffstat (limited to 'calendar/pcs')
-rw-r--r-- | calendar/pcs/calobj.c | 18 | ||||
-rw-r--r-- | calendar/pcs/calobj.h | 7 |
2 files changed, 25 insertions, 0 deletions
diff --git a/calendar/pcs/calobj.c b/calendar/pcs/calobj.c index 47d8c8a97e..624a179b05 100644 --- a/calendar/pcs/calobj.c +++ b/calendar/pcs/calobj.c @@ -1102,3 +1102,21 @@ ical_object_compute_end (iCalObject *ico) ico->recur->_enddate = 0; ical_object_generate_events (ico, ico->dtstart, 0, duration_callback, &count); } + +int +alarm_compute_offset (CalendarAlarm *a) +{ + if (!a->enabled) + return -1; + switch (a->units){ + case ALARM_MINUTES: + a->offset = a->count * 60; + break; + case ALARM_HOURS: + a->offset = a->count * 3600; + break; + case ALARM_DAYS: + a->offset = a->count * 24 * 3600; + } + return a->offset; +} diff --git a/calendar/pcs/calobj.h b/calendar/pcs/calobj.h index 26b0acf35b..60483c68ad 100644 --- a/calendar/pcs/calobj.h +++ b/calendar/pcs/calobj.h @@ -32,6 +32,10 @@ typedef struct { int count; enum AlarmUnit units; char *data; + + /* Does not get saved, internally used */ + time_t offset; + time_t trigger; /* Widgets */ void *w_count; /* A GtkEntry */ @@ -180,6 +184,9 @@ void ical_object_generate_events (iCalObject *ico, time_t start, time /* Computes the enddate field of the recurrence based on the duration */ void ical_object_compute_end (iCalObject *ico); +/* Returns the number of seconds configured to trigger the alarm in advance to an event */ +int alarm_compute_offset (CalendarAlarm *a); + END_GNOME_DECLS #endif |