diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2003-04-27 00:44:49 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2003-04-27 00:44:49 +0800 |
commit | da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d (patch) | |
tree | 90800ebe3c35b148eb0c1c7a537ebbc13835f7c9 /calendar/cal-client/cal-client.c | |
parent | 49802408e28d3f3938fd9c6c8c7c36a499277983 (diff) | |
download | gsoc2013-evolution-da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d.tar gsoc2013-evolution-da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d.tar.gz gsoc2013-evolution-da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d.tar.bz2 gsoc2013-evolution-da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d.tar.lz gsoc2013-evolution-da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d.tar.xz gsoc2013-evolution-da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d.tar.zst gsoc2013-evolution-da12dd29a85fae5e4ebaffcfb9c40fa6068ec55d.zip |
Fixes #41661
2003-04-24 Rodrigo Moya <rodrigo@ximian.com>
Fixes #41661
* idl/evolution-calendar.idl: added discardAlarm method to
GNOME:Evolution:Calendar:Cal interface.
* pcs/cal.c (cal_class_init): set new epv's method.
(impl_Cal_discardAlarm): implementation of new CORBA method.
* pcs/cal-backend.[ch]: added 'discard_alarm' virtual method, and
CAL_BACKEND_RESULT_NOT_IMPLEMENTED to CalBackendResult enum.
(cal_backend_class_init): initialize new class method.
(cal_backend_discard_alarm): new method.
(cal_backend_update_objects, cal_backend_remove_object): return
proper CalBackendResult values.
* pcs/cal-backend-file.c (cal_backend_file_class_init): initialize
new class method.
(cal_backend_file_discard_alarm): implementation of new method.
* pcs/cal-client.[ch] (cal_client_discard_alarm): new function.
* gui/alarm-notify/alarm-queue.c (remove_qeueud_alarm): don't remove
the alarm directly from the component, call cal_client_discard_alarm
and let the backend deal with it.
svn path=/trunk/; revision=20973
Diffstat (limited to 'calendar/cal-client/cal-client.c')
-rw-r--r-- | calendar/cal-client/cal-client.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/calendar/cal-client/cal-client.c b/calendar/cal-client/cal-client.c index fc90c2a459..539d490a36 100644 --- a/calendar/cal-client/cal-client.c +++ b/calendar/cal-client/cal-client.c @@ -2486,6 +2486,47 @@ cal_client_get_alarms_for_object (CalClient *client, const char *uid, return retval; } +/** + * cal_client_discard_alarm + * @client: A calendar client. + * @comp: The component to discard the alarm from. + * @auid: Unique identifier of the alarm to be discarded. + * + * Tells the calendar backend to get rid of the alarm identified by the + * @auid argument in @comp. Some backends might remove the alarm or + * update internal information about the alarm be discarded, or, like + * the file backend does, ignore the operation. + * + * Return value: a #CalClientResult value indicating the result of the + * operation. + */ +CalClientResult +cal_client_discard_alarm (CalClient *client, CalComponent *comp, const char *auid) +{ + CalClientPrivate *priv; + CalClientResult retval; + CORBA_Environment ev; + const char *uid; + + g_return_val_if_fail (IS_CAL_CLIENT (client), CAL_CLIENT_RESULT_NOT_FOUND); + g_return_val_if_fail (IS_CAL_COMPONENT (comp), CAL_CLIENT_RESULT_NOT_FOUND); + g_return_val_if_fail (auid != NULL, CAL_CLIENT_RESULT_NOT_FOUND); + + cal_component_get_uid (comp, &uid); + + CORBA_exception_init (&ev); + GNOME_Evolution_Calendar_Cal_discardAlarm (priv->cal, uid, auid, &ev); + if (BONOBO_USER_EX (&ev, ex_GNOME_Evolution_Calendar_Cal_NotFound)) + retval = CAL_CLIENT_RESULT_NOT_FOUND; + else if (BONOBO_EX (&ev)) + retval = CAL_CLIENT_RESULT_CORBA_ERROR; + else + retval = CAL_CLIENT_RESULT_SUCCESS; + + CORBA_exception_free (&ev); + return retval; +} + typedef struct _ForeachTZIDCallbackData ForeachTZIDCallbackData; struct _ForeachTZIDCallbackData { CalClient *client; |