From 943c0e6e2393607a1adf380db102cc2bad61ff52 Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Wed, 26 Sep 2001 06:40:50 +0000 Subject: new proto 2001-09-26 JP Rosevear * pcs/cal.h: new proto * pcs/cal.c (impl_Cal_set_mode): implement set mode method (cal_class_init): set setMode function in epv (cal_notify_mode): notify listener of mode change * pcs/cal-factory.c (add_uri): deal with UriType renaming * pcs/cal-backend.h: add new virtual methods and protos * pcs/cal-backend.c (cal_backend_class_init): init new virtual methods to null (cal_backend_set_mode): sets mode (cal_backend_get_mode): gets mode * pcs/cal-backend-file.c (cal_backend_file_class_init): overide get_mode and set_mode methods (cal_backend_file_get_mode): return mode (notify_mode): have listeners notified of the set mode call (cal_backend_file_set_mode): set the mode by indicating not supported * cal-client/cal-listener.h: update proto * cal-client/cal-listener.c (impl_notifyCalSetMode): implement set mode callback (cal_listener_construct): take set mode callback (cal_listener_new): ditto * cal-client/cal-client.h: update protos, add signal proto * cal-client/cal-client.c (cal_client_class_init): add cal_set_mode signal (cal_set_mode_cb): handle set mode callback from listener (cal_client_open_calendar): pass additional param to cal_listener_new (cal_client_set_mode): wrapper to set the calendar mode * idl/evolution-calendar.idl: make UriType into CalMode, add SetModeStatus enum and notifyCalSetMode method to the listener * gui/calendar-offline-handler.c (create_connection_list): fetch the uri list ourselves (impl_prepareForOffline): reflect param change of create_connect_list (update_offline): ditto (backend_cal_set_mode): set mode call back (backend_cal_opened): cal opened call back, set mode to local (impl_goOffline): reflect UriType renaming * cal-util/cal-util.h: rename UriType to CalMode svn path=/trunk/; revision=13142 --- calendar/cal-client/cal-listener.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'calendar/cal-client/cal-listener.c') diff --git a/calendar/cal-client/cal-listener.c b/calendar/cal-client/cal-listener.c index 8d4d49c286..2623575151 100644 --- a/calendar/cal-client/cal-listener.c +++ b/calendar/cal-client/cal-listener.c @@ -28,6 +28,7 @@ struct CalListenerPrivate { /* Notification functions and their closure data */ CalListenerCalOpenedFn cal_opened_fn; + CalListenerCalSetModeFn cal_set_mode_fn; CalListenerObjUpdatedFn obj_updated_fn; CalListenerObjRemovedFn obj_removed_fn; CalListenerCategoriesChangedFn categories_changed_fn; @@ -47,6 +48,10 @@ static void impl_notifyCalOpened (PortableServer_Servant servant, GNOME_Evolution_Calendar_Listener_OpenStatus status, GNOME_Evolution_Calendar_Cal cal, CORBA_Environment *ev); +static void impl_notifyCalSetMode (PortableServer_Servant servant, + GNOME_Evolution_Calendar_Listener_SetModeStatus status, + GNOME_Evolution_Calendar_CalMode mode, + CORBA_Environment *ev); static void impl_notifyObjUpdated (PortableServer_Servant servant, GNOME_Evolution_Calendar_CalObjUID uid, CORBA_Environment *ev); @@ -77,6 +82,7 @@ cal_listener_class_init (CalListenerClass *class) parent_class = gtk_type_class (BONOBO_X_OBJECT_TYPE); class->epv.notifyCalOpened = impl_notifyCalOpened; + class->epv.notifyCalSetMode = impl_notifyCalSetMode; class->epv.notifyObjUpdated = impl_notifyObjUpdated; class->epv.notifyObjRemoved = impl_notifyObjRemoved; class->epv.notifyCategoriesChanged = impl_notifyCategoriesChanged; @@ -165,6 +171,26 @@ impl_notifyCalOpened (PortableServer_Servant servant, (* priv->cal_opened_fn) (listener, status, cal, priv->fn_data); } +/* ::notifyCalSetMode method */ +static void +impl_notifyCalSetMode (PortableServer_Servant servant, + GNOME_Evolution_Calendar_Listener_SetModeStatus status, + GNOME_Evolution_Calendar_CalMode mode, + CORBA_Environment *ev) +{ + CalListener *listener; + CalListenerPrivate *priv; + + listener = CAL_LISTENER (bonobo_object_from_servant (servant)); + priv = listener->priv; + + if (!priv->notify) + return; + + g_assert (priv->cal_set_mode_fn != NULL); + (* priv->cal_set_mode_fn) (listener, status, mode, priv->fn_data); +} + /* ::notifyObjUpdated method */ static void impl_notifyObjUpdated (PortableServer_Servant servant, @@ -246,6 +272,7 @@ impl_notifyCategoriesChanged (PortableServer_Servant servant, CalListener * cal_listener_construct (CalListener *listener, CalListenerCalOpenedFn cal_opened_fn, + CalListenerCalSetModeFn cal_set_mode_fn, CalListenerObjUpdatedFn obj_updated_fn, CalListenerObjRemovedFn obj_removed_fn, CalListenerCategoriesChangedFn categories_changed_fn, @@ -256,6 +283,7 @@ cal_listener_construct (CalListener *listener, g_return_val_if_fail (listener != NULL, NULL); g_return_val_if_fail (IS_CAL_LISTENER (listener), NULL); g_return_val_if_fail (cal_opened_fn != NULL, NULL); + g_return_val_if_fail (cal_set_mode_fn != NULL, NULL); g_return_val_if_fail (obj_updated_fn != NULL, NULL); g_return_val_if_fail (obj_removed_fn != NULL, NULL); g_return_val_if_fail (categories_changed_fn != NULL, NULL); @@ -263,6 +291,7 @@ cal_listener_construct (CalListener *listener, priv = listener->priv; priv->cal_opened_fn = cal_opened_fn; + priv->cal_set_mode_fn = cal_set_mode_fn; priv->obj_updated_fn = obj_updated_fn; priv->obj_removed_fn = obj_removed_fn; priv->categories_changed_fn = categories_changed_fn; @@ -290,6 +319,7 @@ cal_listener_construct (CalListener *listener, **/ CalListener * cal_listener_new (CalListenerCalOpenedFn cal_opened_fn, + CalListenerCalSetModeFn cal_set_mode_fn, CalListenerObjUpdatedFn obj_updated_fn, CalListenerObjRemovedFn obj_removed_fn, CalListenerCategoriesChangedFn categories_changed_fn, @@ -305,6 +335,7 @@ cal_listener_new (CalListenerCalOpenedFn cal_opened_fn, listener = gtk_type_new (CAL_LISTENER_TYPE); return cal_listener_construct (listener, cal_opened_fn, + cal_set_mode_fn, obj_updated_fn, obj_removed_fn, categories_changed_fn, -- cgit v1.2.3