diff options
Diffstat (limited to 'calendar/gui/alarm-notify/alarm-notify.c')
-rw-r--r-- | calendar/gui/alarm-notify/alarm-notify.c | 161 |
1 files changed, 21 insertions, 140 deletions
diff --git a/calendar/gui/alarm-notify/alarm-notify.c b/calendar/gui/alarm-notify/alarm-notify.c index f0824bd8f4..88d25dafbc 100644 --- a/calendar/gui/alarm-notify/alarm-notify.c +++ b/calendar/gui/alarm-notify/alarm-notify.c @@ -1,7 +1,6 @@ /* Evolution calendar - Alarm notification service object * - * Copyright (C) 2000 Ximian, Inc. - * Copyright (C) 2000 Ximian, Inc. + * Copyright (C) 2001 Ximian, Inc. * * Author: Federico Mena-Quintero <federico@ximian.com> * @@ -59,50 +58,24 @@ static void alarm_notify_class_init (AlarmNotifyClass *class); static void alarm_notify_init (AlarmNotify *an); static void alarm_notify_destroy (GtkObject *object); -static POA_GNOME_Evolution_Calendar_AlarmNotify__vepv alarm_notify_vepv; +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 void AlarmNotify_die (PortableServer_Servant servant, + CORBA_Environment *ev); -static BonoboObjectClass *parent_class; - +static BonoboXObjectClass *parent_class; -/** - * alarm_notify_get_type: - * - * Registers the #AlarmNotify class if necessary, and returns the type ID - * associated to it. - * - * Return value: The type ID of the #AlarmNotify class. - **/ -GtkType -alarm_notify_get_type (void) -{ - static GtkType alarm_notify_type = 0; - - if (!alarm_notify_type) { - static const GtkTypeInfo alarm_notify_info = { - "AlarmNotify", - sizeof (AlarmNotify), - sizeof (AlarmNotifyClass), - (GtkClassInitFunc) alarm_notify_class_init, - (GtkObjectInitFunc) alarm_notify_init, - NULL, /* reserved_1 */ - NULL, /* reserved_2 */ - (GtkClassInitFunc) NULL - }; - - alarm_notify_type = gtk_type_unique (BONOBO_OBJECT_TYPE, &alarm_notify_info); - } - - return alarm_notify_type; -} + -/* CORBA class initialization function for the alarm notify service */ -static void -init_alarm_notify_corba_class (void) -{ - alarm_notify_vepv.Bonobo_Unknown_epv = bonobo_object_get_epv (); - alarm_notify_vepv.GNOME_Evolution_Calendar_AlarmNotify_epv = alarm_notify_get_epv (); -} +BONOBO_X_TYPE_FUNC_FULL (AlarmNotify, + GNOME_Evolution_Calendar_AlarmNotify, + BONOBO_X_OBJECT_TYPE, + alarm_notify); /* Class initialization function for the alarm notify service */ static void @@ -112,11 +85,13 @@ alarm_notify_class_init (AlarmNotifyClass *class) object_class = (GtkObjectClass *) class; - parent_class = gtk_type_class (BONOBO_OBJECT_TYPE); + parent_class = gtk_type_class (BONOBO_X_OBJECT_TYPE); - object_class->destroy = alarm_notify_destroy; + class->epv.addCalendar = AlarmNotify_addCalendar; + class->epv.removeCalendar = AlarmNotify_removeCalendar; + class->epv.die = AlarmNotify_die; - init_alarm_notify_corba_class (); + object_class->destroy = alarm_notify_destroy; } /* Object initialization function for the alarm notify system */ @@ -290,86 +265,9 @@ AlarmNotify_die (PortableServer_Servant servant, /* FIXME */ } -/** - * alarm_notify_get_epv: - * - * Creates an EPV for the AlarmNotify CORBA class. - * - * Return value: A newly-allocated EPV. - **/ -POA_GNOME_Evolution_Calendar_AlarmNotify__epv * -alarm_notify_get_epv (void) -{ - POA_GNOME_Evolution_Calendar_AlarmNotify__epv *epv; - - epv = g_new0 (POA_GNOME_Evolution_Calendar_AlarmNotify__epv, 1); - epv->addCalendar = AlarmNotify_addCalendar; - epv->removeCalendar = AlarmNotify_removeCalendar; - epv->die = AlarmNotify_die; - return epv; -} - /** - * alarm_notify_construct: - * @an: An alarm notification service object. - * @corba_an: CORBA object for the alarm notification service. - * - * Constructs an alarm notification service object by binding the corresponding - * CORBA object to it. - * - * Return value: the same object as the @an argument. - **/ -AlarmNotify * -alarm_notify_construct (AlarmNotify *an, - GNOME_Evolution_Calendar_AlarmNotify corba_an) -{ - g_return_val_if_fail (an != NULL, NULL); - g_return_val_if_fail (IS_ALARM_NOTIFY (an), NULL); - - /* FIXME: add_interface the property bag here */ - - bonobo_object_construct (BONOBO_OBJECT (an), corba_an); - return an; -} - -/** - * alarm_notify_corba_object_create: - * @object: #BonoboObject that will wrap the CORBA object. - * - * Creates and activates the CORBA object that is wrapped by the specified alarm - * notification service @object. - * - * Return value: An activated object reference or #CORBA_OBJECT_NIL in case of - * failure. - **/ -GNOME_Evolution_Calendar_AlarmNotify -alarm_notify_corba_object_create (BonoboObject *object) -{ - POA_GNOME_Evolution_Calendar_AlarmNotify *servant; - CORBA_Environment ev; - - g_return_val_if_fail (object != NULL, CORBA_OBJECT_NIL); - g_return_val_if_fail (IS_ALARM_NOTIFY (object), CORBA_OBJECT_NIL); - - servant = (POA_GNOME_Evolution_Calendar_AlarmNotify *) g_new (BonoboObjectServant, 1); - servant->vepv = &alarm_notify_vepv; - - CORBA_exception_init (&ev); - POA_GNOME_Evolution_Calendar_AlarmNotify__init ((PortableServer_Servant) servant, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_free (servant); - CORBA_exception_free (&ev); - return CORBA_OBJECT_NIL; - } - - CORBA_exception_free (&ev); - return (GNOME_Evolution_Calendar_AlarmNotify) bonobo_object_activate_servant ( - object, servant); -} - -/** * alarm_notify_new: * * Creates a new #AlarmNotify object. @@ -381,24 +279,7 @@ AlarmNotify * alarm_notify_new (void) { AlarmNotify *an; - GNOME_Evolution_Calendar_AlarmNotify corba_an; - CORBA_Environment ev; - gboolean result; an = gtk_type_new (TYPE_ALARM_NOTIFY); - - corba_an = alarm_notify_corba_object_create (BONOBO_OBJECT (an)); - - CORBA_exception_init (&ev); - result = CORBA_Object_is_nil (corba_an, &ev); - - if (ev._major != CORBA_NO_EXCEPTION || result) { - g_message ("alarm_notify_new(): could not create the CORBA alarm notify service"); - bonobo_object_unref (BONOBO_OBJECT (an)); - CORBA_exception_free (&ev); - return NULL; - } - CORBA_exception_free (&ev); - - return alarm_notify_construct (an, corba_an); + return an; } |