diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2003-11-17 21:13:15 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2003-11-17 21:13:15 +0800 |
commit | 000e2ade56eb86a150a5a33e37bb685592e30186 (patch) | |
tree | 3b4c9b7e8e1283e3cf9bd1f554cc24cebbafedd7 /calendar/gui/alarm-notify | |
parent | 6ac2fee6bcda6f8d2db7e0187d5a4216d603e0c3 (diff) | |
download | gsoc2013-evolution-000e2ade56eb86a150a5a33e37bb685592e30186.tar.gz gsoc2013-evolution-000e2ade56eb86a150a5a33e37bb685592e30186.tar.zst gsoc2013-evolution-000e2ade56eb86a150a5a33e37bb685592e30186.zip |
remove the AlarmNotify service, no more need for it, since the alarm
2003-11-17 Rodrigo Moya <rodrigo@ximian.com>
* idl/evolution-calendar.idl: remove the AlarmNotify service, no
more need for it, since the alarm daemon will listen for changes
on the GConf key.
* gui/gnome-cal.c (add_alarms): removed function to talk to the
alarm daemon.
(client_cal_opened_cb): don't call add_alarms().
* gui/alarm-notify/alarm-notify.[ch]: made it a basic GObject.
(AlarmNotify_addCalendar, AlarmNotify_removeCalendar): removed
AlarmNotify interface implementation.
(alarm_notify_class_init): no epv to initialize.
(alarm_notify_remove_calendar): new function, copied from the
CORBA method implementation.
(alarm_notify_factory_fn): return NULL, since there is no objects
that can be created via this factory now.
* gui/alarm-notify/notify-main.c (main): now the factory is the alarm
notification service itself.
(load_calendars): no need to use exceptions here.
* gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in:
now the factory is the alarm notification service itself.
* gui/main.c (launch_alarm_daemon_cb): dont use the AlarmNotify CORBA
types.
svn path=/trunk/; revision=23384
Diffstat (limited to 'calendar/gui/alarm-notify')
-rw-r--r-- | calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in | 10 | ||||
-rw-r--r-- | calendar/gui/alarm-notify/alarm-notify.c | 99 | ||||
-rw-r--r-- | calendar/gui/alarm-notify/alarm-notify.h | 13 | ||||
-rw-r--r-- | calendar/gui/alarm-notify/notify-main.c | 30 |
4 files changed, 51 insertions, 101 deletions
diff --git a/calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in b/calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in index 4b34fbdc7b..24e5d88ed9 100644 --- a/calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in +++ b/calendar/gui/alarm-notify/GNOME_Evolution_Calendar_AlarmNotify.server.in.in @@ -1,6 +1,6 @@ <oaf_info> -<oaf_server iid="OAFIID:GNOME_Evolution_Calendar_AlarmNotify_Factory" +<oaf_server iid="OAFIID:GNOME_Evolution_Calendar_AlarmNotify" type="exe" location="@LIBEXECDIR@/evolution-alarm-notify"> @@ -13,12 +13,4 @@ </oaf_server> -<oaf_server iid="OAFIID:GNOME_Evolution_Calendar_AlarmNotify" - type="factory" - location="OAFIID:GNOME_Evolution_Calendar_AlarmNotify_Factory"> - - <oaf_attribute name="name" type="string" - _value="Evolution Calendar alarm notification service"/> -</oaf_server> - </oaf_info> diff --git a/calendar/gui/alarm-notify/alarm-notify.c b/calendar/gui/alarm-notify/alarm-notify.c index 267a1001ca..fa43e2bab6 100644 --- a/calendar/gui/alarm-notify/alarm-notify.c +++ b/calendar/gui/alarm-notify/alarm-notify.c @@ -43,22 +43,32 @@ static void alarm_notify_class_init (AlarmNotifyClass *klass); static void alarm_notify_init (AlarmNotify *an, AlarmNotifyClass *klass); static void alarm_notify_finalize (GObject *object); -static void AlarmNotify_addCalendar (PortableServer_Servant servant, - const CORBA_char *str_uri, - CORBA_Environment *ev); -static void AlarmNotify_removeCalendar (PortableServer_Servant servant, - const CORBA_char *str_uri, - CORBA_Environment *ev); - static BonoboObjectClass *parent_class; -BONOBO_TYPE_FUNC_FULL (AlarmNotify, - GNOME_Evolution_Calendar_AlarmNotify, - BONOBO_TYPE_OBJECT, - alarm_notify); +GType +alarm_notify_get_type (void) +{ + static GType type = 0; + + if (!type) { + static GTypeInfo info = { + sizeof (AlarmNotifyClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) alarm_notify_class_init, + NULL, NULL, + sizeof (AlarmNotify), + 0, + (GInstanceInitFunc) alarm_notify_init + }; + type = g_type_register_static (G_TYPE_OBJECT, "AlarmNotify", &info, 0); + } + + return type; +} /* Class initialization function for the alarm notify service */ static void @@ -70,9 +80,6 @@ alarm_notify_class_init (AlarmNotifyClass *klass) parent_class = g_type_class_peek_parent (klass); - klass->epv.addCalendar = AlarmNotify_addCalendar; - klass->epv.removeCalendar = AlarmNotify_removeCalendar; - object_class->finalize = alarm_notify_finalize; } @@ -122,8 +129,6 @@ alarm_notify_finalize (GObject *object) -/* CORBA servant implementation */ - /* Looks for a canonicalized URI inside an array of URIs; returns the index * within the array or -1 if not found. */ @@ -228,41 +233,6 @@ remove_uri_to_load (const char *str_uri) free_uris (loaded_uris); } -/* AlarmNotify::addCalendar method */ -static void -AlarmNotify_addCalendar (PortableServer_Servant servant, - const CORBA_char *str_uri, - CORBA_Environment *ev) -{ - AlarmNotify *an; - - an = ALARM_NOTIFY (bonobo_object_from_servant (servant)); - alarm_notify_add_calendar (an, str_uri, TRUE, ev); -} - -/* AlarmNotify::removeCalendar method */ -static void -AlarmNotify_removeCalendar (PortableServer_Servant servant, - const CORBA_char *str_uri, - CORBA_Environment *ev) -{ - AlarmNotify *an; - AlarmNotifyPrivate *priv; - ECal *client; - - an = ALARM_NOTIFY (bonobo_object_from_servant (servant)); - priv = an->priv; - - client = g_hash_table_lookup (priv->uri_client_hash, str_uri); - if (client) { - alarm_queue_remove_client (client); - - g_hash_table_remove (priv->uri_client_hash, str_uri); - } - - remove_uri_to_load (str_uri); -} - /** @@ -288,15 +258,13 @@ alarm_notify_new (void) * @uri: URI of the calendar to load. * @load_afterwards: Whether this calendar should be loaded in the future * when the alarm daemon starts up. - * @ev: CORBA environment for exceptions. * * Tells the alarm notification service to load a calendar and start monitoring * its alarms. It can optionally be made to save the URI of this calendar so * that it can be loaded in the future when the alarm daemon starts up. **/ void -alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_afterwards, - CORBA_Environment *ev) +alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_afterwards) { AlarmNotifyPrivate *priv; ECal *client; @@ -304,7 +272,6 @@ alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_a g_return_if_fail (an != NULL); g_return_if_fail (IS_ALARM_NOTIFY (an)); g_return_if_fail (str_uri != NULL); - g_return_if_fail (ev != NULL); priv = an->priv; @@ -321,10 +288,22 @@ alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_a g_hash_table_insert (priv->uri_client_hash, g_strdup (str_uri), client); } - } else { - CORBA_exception_set (ev, CORBA_USER_EXCEPTION, - ex_GNOME_Evolution_Calendar_AlarmNotify_BackendContactError, - NULL); - return; } } + +void +alarm_notify_remove_calendar (AlarmNotify *an, const char *str_uri) +{ + AlarmNotifyPrivate *priv; + ECal *client; + + priv = an->priv; + + client = g_hash_table_lookup (priv->uri_client_hash, str_uri); + if (client) { + alarm_queue_remove_client (client); + + g_hash_table_remove (priv->uri_client_hash, str_uri); + } + remove_uri_to_load (str_uri); +} diff --git a/calendar/gui/alarm-notify/alarm-notify.h b/calendar/gui/alarm-notify/alarm-notify.h index f3157000c0..418ae23878 100644 --- a/calendar/gui/alarm-notify/alarm-notify.h +++ b/calendar/gui/alarm-notify/alarm-notify.h @@ -22,8 +22,7 @@ #ifndef ALARM_NOTIFY_H #define ALARM_NOTIFY_H -#include <bonobo/bonobo-object.h> -#include "evolution-calendar.h" +#include <glib-object.h> @@ -40,24 +39,22 @@ typedef struct _AlarmNotifyClass AlarmNotifyClass; typedef struct _AlarmNotifyPrivate AlarmNotifyPrivate; struct _AlarmNotify { - BonoboObject xobject; + GObject object; /* Private data */ AlarmNotifyPrivate *priv; }; struct _AlarmNotifyClass { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_Calendar_AlarmNotify__epv epv; + GObjectClass parent_class; }; GType alarm_notify_get_type (void); AlarmNotify *alarm_notify_new (void); -void alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_afterwards, - CORBA_Environment *ev); +void alarm_notify_add_calendar (AlarmNotify *an, const char *str_uri, gboolean load_afterwards); +void alarm_notify_remove_calendar (AlarmNotify *an, const char *str_uri); diff --git a/calendar/gui/alarm-notify/notify-main.c b/calendar/gui/alarm-notify/notify-main.c index bed7de3653..8e492386fa 100644 --- a/calendar/gui/alarm-notify/notify-main.c +++ b/calendar/gui/alarm-notify/notify-main.c @@ -1,8 +1,10 @@ /* Evolution calendar - Alarm notification service main file * * Copyright (C) 2000 Ximian, Inc. + * Copyright (C) 2003 Novell, Inc. * - * Author: Federico Mena-Quintero <federico@ximian.com> + * Authors: Federico Mena-Quintero <federico@ximian.com> + * Rodrigo Moya <rodrigo@ximian.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public @@ -99,8 +101,7 @@ alarm_notify_factory_fn (BonoboGenericFactory *factory, const char *component_id g_assert (alarm_notify_service != NULL); } - bonobo_object_ref (BONOBO_OBJECT (alarm_notify_service)); - return BONOBO_OBJECT (alarm_notify_service); + return NULL; } /* Loads the calendars that the alarm daemon has been told to load in the past */ @@ -126,29 +127,10 @@ load_calendars (gpointer user_data) for (i = 0; i < uris->len; i++) { char *uri; - CORBA_Environment ev; uri = uris->pdata[i]; - CORBA_exception_init (&ev); - alarm_notify_add_calendar (alarm_notify_service, uri, FALSE, &ev); - - if (ev._major == CORBA_USER_EXCEPTION) { - char *ex_id; - - ex_id = CORBA_exception_id (&ev); - if (strcmp (ex_id, ex_GNOME_Evolution_Calendar_AlarmNotify_InvalidURI) == 0) - g_message ("load_calendars(): Invalid URI `%s'; will not load " - "that calendar.", uri); - else if (strcmp (ex_id, - ex_GNOME_Evolution_Calendar_AlarmNotify_BackendContactError) - == 0) - g_message ("load_calendars(): Could not contact the backend " - "while trying to load `%s'", uri); - } else if (ev._major != CORBA_NO_EXCEPTION) - g_message ("load_calendars(): Exception while loading calendar `%s'", uri); - - CORBA_exception_free (&ev); + alarm_notify_add_calendar (alarm_notify_service, uri, FALSE); g_free (uri); } @@ -178,7 +160,7 @@ main (int argc, char **argv) gnome_sound_init ("localhost"); - factory = bonobo_generic_factory_new ("OAFIID:GNOME_Evolution_Calendar_AlarmNotify_Factory", + factory = bonobo_generic_factory_new ("OAFIID:GNOME_Evolution_Calendar_AlarmNotify", (BonoboFactoryCallback) alarm_notify_factory_fn, NULL); if (!factory) g_error (_("Could not create the alarm notify service factory")); |