aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog13
-rw-r--r--calendar/cal-factory.c41
-rw-r--r--calendar/evolution-calendar.idl8
-rw-r--r--calendar/idl/evolution-calendar.idl8
-rw-r--r--calendar/pcs/cal-factory.c41
-rw-r--r--calendar/pcs/tlacuache.c27
-rw-r--r--calendar/tlacuache.c27
7 files changed, 147 insertions, 18 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index d4096c2bd8..0345a9c5a8 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,16 @@
+2000-01-25 Federico Mena Quintero <federico@helixcode.com>
+
+ * cal-factory.c (CalFactory_load): Check that the listener is not
+ nil and emit and exception if it is.
+
+ * gnome-calendar.idl (CalFactory::load CalFactory::create): Now
+ these raise the NilListener exception.
+
+ * tlacuache.c (calendar_notify): Error stub for alarms.
+ (alarm_defaults): Stub array.
+ (debug_alarms): Stub variable.
+ (main): Initialize gnome-vfs.
+
2000-01-24 Federico Mena Quintero <federico@helixcode.com>
* tlacuache.c: New main module for the Tlacuache personal calendar
diff --git a/calendar/cal-factory.c b/calendar/cal-factory.c
index 6a522df67f..aef37e29cd 100644
--- a/calendar/cal-factory.c
+++ b/calendar/cal-factory.c
@@ -162,10 +162,25 @@ CalFactory_load (PortableServer_Servant servant,
{
CalFactory *factory;
CalFactoryPrivate *priv;
+ CORBA_Environment ev2;
+ gboolean result;
factory = CAL_FACTORY (gnome_object_from_servant (servant));
priv = factory->priv;
+ CORBA_exception_init (&ev2);
+ result = CORBA_Object_is_nil (listener, &ev2);
+
+ if (ev2._major != CORBA_NO_EXCEPTION || result) {
+ CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
+ ex_GNOME_Calendar_CalFactory_NilListener,
+ NULL);
+
+ CORBA_exception_free (&ev2);
+ return;
+ }
+ CORBA_exception_free (&ev2);
+
cal_factory_load (factory, uri, listener);
}
@@ -187,10 +202,10 @@ CalFactory_create (PortableServer_Servant servant,
/**
* cal_factory_get_epv:
- * @void:
- *
+ * @void:
+ *
* Creates an EPV for the CalFactory CORBA class.
- *
+ *
* Return value: A newly-allocated EPV.
**/
POA_GNOME_Calendar_CalFactory__epv *
@@ -422,10 +437,10 @@ cal_factory_corba_object_create (GnomeObject *object)
/**
* cal_factory_new:
- * @void:
- *
+ * @void:
+ *
* Creates a new #CalFactory object.
- *
+ *
* Return value: A newly-created #CalFactory, or NULL if its corresponding CORBA
* object could not be created.
**/
@@ -461,8 +476,22 @@ cal_factory_load (CalFactory *factory, const char *uri, GNOME_Calendar_Listener
LoadCreateJobData *jd;
CORBA_Environment ev;
GNOME_Calendar_Listener listener_copy;
+ gboolean result;
CORBA_exception_init (&ev);
+ result = CORBA_Object_is_nil (listener, &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ g_message ("cal_factory_load(): could not see if the listener was NIL");
+ CORBA_exception_free (&ev);
+ return;
+ }
+ CORBA_exception_free (&ev);
+
+ if (result) {
+ g_message ("cal_factory_load(): cannot operate on a NIL listener!");
+ return;
+ }
+
listener_copy = CORBA_Object_duplicate (listener, &ev);
if (ev._major != CORBA_NO_EXCEPTION) {
diff --git a/calendar/evolution-calendar.idl b/calendar/evolution-calendar.idl
index 390dfa1531..5c39956170 100644
--- a/calendar/evolution-calendar.idl
+++ b/calendar/evolution-calendar.idl
@@ -56,11 +56,15 @@ module Calendar {
/* A calendar factory, can load and create calendars */
interface CalFactory : Unknown {
+ exception NilListener {};
+
/* Load a calendar from an URI */
- void load (in string uri, in Listener listener);
+ void load (in string uri, in Listener listener)
+ raises (NilListener);
/* Create a new calendar at the specified URI */
- void create (in string uri, in Listener listener);
+ void create (in string uri, in Listener listener)
+ raises (NilListener);
};
};
diff --git a/calendar/idl/evolution-calendar.idl b/calendar/idl/evolution-calendar.idl
index 390dfa1531..5c39956170 100644
--- a/calendar/idl/evolution-calendar.idl
+++ b/calendar/idl/evolution-calendar.idl
@@ -56,11 +56,15 @@ module Calendar {
/* A calendar factory, can load and create calendars */
interface CalFactory : Unknown {
+ exception NilListener {};
+
/* Load a calendar from an URI */
- void load (in string uri, in Listener listener);
+ void load (in string uri, in Listener listener)
+ raises (NilListener);
/* Create a new calendar at the specified URI */
- void create (in string uri, in Listener listener);
+ void create (in string uri, in Listener listener)
+ raises (NilListener);
};
};
diff --git a/calendar/pcs/cal-factory.c b/calendar/pcs/cal-factory.c
index 6a522df67f..aef37e29cd 100644
--- a/calendar/pcs/cal-factory.c
+++ b/calendar/pcs/cal-factory.c
@@ -162,10 +162,25 @@ CalFactory_load (PortableServer_Servant servant,
{
CalFactory *factory;
CalFactoryPrivate *priv;
+ CORBA_Environment ev2;
+ gboolean result;
factory = CAL_FACTORY (gnome_object_from_servant (servant));
priv = factory->priv;
+ CORBA_exception_init (&ev2);
+ result = CORBA_Object_is_nil (listener, &ev2);
+
+ if (ev2._major != CORBA_NO_EXCEPTION || result) {
+ CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
+ ex_GNOME_Calendar_CalFactory_NilListener,
+ NULL);
+
+ CORBA_exception_free (&ev2);
+ return;
+ }
+ CORBA_exception_free (&ev2);
+
cal_factory_load (factory, uri, listener);
}
@@ -187,10 +202,10 @@ CalFactory_create (PortableServer_Servant servant,
/**
* cal_factory_get_epv:
- * @void:
- *
+ * @void:
+ *
* Creates an EPV for the CalFactory CORBA class.
- *
+ *
* Return value: A newly-allocated EPV.
**/
POA_GNOME_Calendar_CalFactory__epv *
@@ -422,10 +437,10 @@ cal_factory_corba_object_create (GnomeObject *object)
/**
* cal_factory_new:
- * @void:
- *
+ * @void:
+ *
* Creates a new #CalFactory object.
- *
+ *
* Return value: A newly-created #CalFactory, or NULL if its corresponding CORBA
* object could not be created.
**/
@@ -461,8 +476,22 @@ cal_factory_load (CalFactory *factory, const char *uri, GNOME_Calendar_Listener
LoadCreateJobData *jd;
CORBA_Environment ev;
GNOME_Calendar_Listener listener_copy;
+ gboolean result;
CORBA_exception_init (&ev);
+ result = CORBA_Object_is_nil (listener, &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ g_message ("cal_factory_load(): could not see if the listener was NIL");
+ CORBA_exception_free (&ev);
+ return;
+ }
+ CORBA_exception_free (&ev);
+
+ if (result) {
+ g_message ("cal_factory_load(): cannot operate on a NIL listener!");
+ return;
+ }
+
listener_copy = CORBA_Object_duplicate (listener, &ev);
if (ev._major != CORBA_NO_EXCEPTION) {
diff --git a/calendar/pcs/tlacuache.c b/calendar/pcs/tlacuache.c
index 159d8b14ca..0af24d1829 100644
--- a/calendar/pcs/tlacuache.c
+++ b/calendar/pcs/tlacuache.c
@@ -22,16 +22,36 @@
#include <config.h>
#include <libgnorba/gnorba.h>
#include <bonobo/gnome-bonobo.h>
+#include <libgnomevfs/gnome-vfs.h>
#include "cal-factory.h"
+#include "calobj.h"
/* The calendar factory */
static CalFactory *factory;
-/* The alarms code needs this */
+
+
+/* Stuff that the un-converted alarm code needs to build */
+
int debug_alarms = FALSE;
+void calendar_notify (time_t time, CalendarAlarm *which, void *data);
+
+CalendarAlarm alarm_defaults[4] = {
+ { ALARM_MAIL, 0, 15, ALARM_MINUTES },
+ { ALARM_PROGRAM, 0, 15, ALARM_MINUTES },
+ { ALARM_DISPLAY, 0, 15, ALARM_MINUTES },
+ { ALARM_AUDIO, 0, 15, ALARM_MINUTES }
+};
+
+void
+calendar_notify (time_t time, CalendarAlarm *which, void *data)
+{
+ g_error ("calendar_notify() called!");
+}
+
/* Creates and registers the calendar factory */
@@ -93,6 +113,11 @@ main (int argc, char **argv)
exit (1);
}
+ if (!gnome_vfs_init ()) {
+ g_message ("main(): could not initialize GNOME-VFS");
+ exit (1);
+ }
+
if (!create_cal_factory ())
exit (1);
diff --git a/calendar/tlacuache.c b/calendar/tlacuache.c
index 159d8b14ca..0af24d1829 100644
--- a/calendar/tlacuache.c
+++ b/calendar/tlacuache.c
@@ -22,16 +22,36 @@
#include <config.h>
#include <libgnorba/gnorba.h>
#include <bonobo/gnome-bonobo.h>
+#include <libgnomevfs/gnome-vfs.h>
#include "cal-factory.h"
+#include "calobj.h"
/* The calendar factory */
static CalFactory *factory;
-/* The alarms code needs this */
+
+
+/* Stuff that the un-converted alarm code needs to build */
+
int debug_alarms = FALSE;
+void calendar_notify (time_t time, CalendarAlarm *which, void *data);
+
+CalendarAlarm alarm_defaults[4] = {
+ { ALARM_MAIL, 0, 15, ALARM_MINUTES },
+ { ALARM_PROGRAM, 0, 15, ALARM_MINUTES },
+ { ALARM_DISPLAY, 0, 15, ALARM_MINUTES },
+ { ALARM_AUDIO, 0, 15, ALARM_MINUTES }
+};
+
+void
+calendar_notify (time_t time, CalendarAlarm *which, void *data)
+{
+ g_error ("calendar_notify() called!");
+}
+
/* Creates and registers the calendar factory */
@@ -93,6 +113,11 @@ main (int argc, char **argv)
exit (1);
}
+ if (!gnome_vfs_init ()) {
+ g_message ("main(): could not initialize GNOME-VFS");
+ exit (1);
+ }
+
if (!create_cal_factory ())
exit (1);