diff options
author | Federico Mena Quintero <federico@helixcode.com> | 2001-01-10 05:37:33 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2001-01-10 05:37:33 +0800 |
commit | 0a3ef04d1b421df60ad6876c9bae6265e9ba85da (patch) | |
tree | 89f383feb971b6191bf48bec642f5943db8ac8e0 /calendar/gui/alarm-notify/alarm-notify.c | |
parent | 3ad4def2b79353a0b154e58c39b026c76817397f (diff) | |
download | gsoc2013-evolution-0a3ef04d1b421df60ad6876c9bae6265e9ba85da.tar gsoc2013-evolution-0a3ef04d1b421df60ad6876c9bae6265e9ba85da.tar.gz gsoc2013-evolution-0a3ef04d1b421df60ad6876c9bae6265e9ba85da.tar.bz2 gsoc2013-evolution-0a3ef04d1b421df60ad6876c9bae6265e9ba85da.tar.lz gsoc2013-evolution-0a3ef04d1b421df60ad6876c9bae6265e9ba85da.tar.xz gsoc2013-evolution-0a3ef04d1b421df60ad6876c9bae6265e9ba85da.tar.zst gsoc2013-evolution-0a3ef04d1b421df60ad6876c9bae6265e9ba85da.zip |
New interface for the alarm notification system.
2001-01-09 Federico Mena Quintero <federico@helixcode.com>
* idl/evolution-calendar.idl (AlarmNotify): New interface for the
alarm notification system.
* gui/alarm-notify: New directory for the alarm notification
daemon and its auxiliary stuff.
* gui/alarm-notify/alarm.[ch]: Moved over from gui/alarm.[ch].
* gui/alarm-notify/alarm-queue.[ch]: Moved over from
gui/alarm-notify.[ch]. Renamed functions from alarm_notify_*() to
alarm_queue_*().
* gui/alarm-notify/alarm-notify.[ch]: Implementation of the
GNOME::Evolution::Calendar::AlarmNotify interface.
* gui/Makefile.am (evolution_calendar_LDADD): Removed the
LINK_FLAGS variable and reordered the libraries to remove some
duplicated ones.
(SUBDIRS): Added the alarm-notify directory.
svn path=/trunk/; revision=7338
Diffstat (limited to 'calendar/gui/alarm-notify/alarm-notify.c')
-rw-r--r-- | calendar/gui/alarm-notify/alarm-notify.c | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/calendar/gui/alarm-notify/alarm-notify.c b/calendar/gui/alarm-notify/alarm-notify.c new file mode 100644 index 0000000000..348bb61bd3 --- /dev/null +++ b/calendar/gui/alarm-notify/alarm-notify.c @@ -0,0 +1,156 @@ +/* Evolution calendar - Alarm notification service object + * + * Copyright (C) 2000 Helix Code, Inc. + * + * Author: Federico Mena-Quintero <federico@helixcode.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "alarm-notify.h" + + + +/* Private part of the AlarmNotify structure */ +struct _AlarmNotifyPrivate { + /* FIXME */ +}; + + + +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_AlarmListener__vepv alarm_listener_vepv; + +static BonoboObjectClass *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 (); +} + +/* Class initialization function for the alarm notify service */ +static void +alarm_notify_class_init (AlarmNotifyClass *class) +{ + GtkObjectClass *object_class; + + object_class = (GtkObjectClass *) class; + + parent_class = gtk_type_class (BONOBO_OBJECT_TYPE); + + object_class->destroy = alarm_notify_destroy; + + init_alarm_notify_corba_class (); +} + +/* Object initialization function for the alarm notify system */ +static void +alarm_notify_init (AlarmNotify *an) +{ + AlarmNotifyPrivate *priv; + + priv = g_new0 (AlarmNotifyPrivate, 1); + an->priv = priv; + + /* FIXME */ +} + +/* Destroy handler for the alarm notify system */ +static void +alarm_notify_destroy (GtkObject *object) +{ + AlarmNotify *an; + AlarmNotifyPrivate *priv; + + g_return_if_fail (object != NULL); + g_return_if_fail (IS_ALARM_NOTIFY (object)); + + an = ALARM_NOTIFY (object); + priv = an->priv; + + /* FIXME */ + + g_free (priv); + an->priv = NULL; + + if (GTK_OBJECT_CLASS (parent_class)->destroy) + (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); +} + + + +/* CORBA servant implementation */ + +/** + * 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; +} |