aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/pcs/cal.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2001-08-01 11:41:51 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2001-08-01 11:41:51 +0800
commit96d24f1297eaa5a6333b9fcfdf35420d273703af (patch)
tree7ee041b080dc6d9ae5f95bb61236ae0cff203663 /calendar/pcs/cal.c
parentfe8112f64b3083648d9b0e127aaa0868f25e28fd (diff)
downloadgsoc2013-evolution-96d24f1297eaa5a6333b9fcfdf35420d273703af.tar
gsoc2013-evolution-96d24f1297eaa5a6333b9fcfdf35420d273703af.tar.gz
gsoc2013-evolution-96d24f1297eaa5a6333b9fcfdf35420d273703af.tar.bz2
gsoc2013-evolution-96d24f1297eaa5a6333b9fcfdf35420d273703af.tar.lz
gsoc2013-evolution-96d24f1297eaa5a6333b9fcfdf35420d273703af.tar.xz
gsoc2013-evolution-96d24f1297eaa5a6333b9fcfdf35420d273703af.tar.zst
gsoc2013-evolution-96d24f1297eaa5a6333b9fcfdf35420d273703af.zip
The Wombat now keeps track of which categories are present in the objects
2001-07-31 Federico Mena Quintero <federico@ximian.com> The Wombat now keeps track of which categories are present in the objects of a calendar. It will notify the clients of changes in this set. This is to make the category drop-down menus in the calendar/tasks views be always up to date. * idl/evolution-calendar.idl (Listener): Added a notifyCategoriesChanged() method. The Wombat now keeps track of the categories within a calendar. * cal-client/cal-listener.[ch]: Switched it to use BonoboXObject. Also added the notifyCategoriesChanged implementation. * cal-client/cal-client.[ch]: Added a "categories_changed" signal. * pcs/cal-backend-file.c: Maintain a list of the live categories. (update_categories_from_comp): New function to maintain the set of live categories. (add_component): Update the set of categories. (remove_component): Likewise. (open_cal): Notify about changes in the set of categories. (create_cal): Likewise. (cal_backend_file_update_objects): Likewise. (cal_backend_file_remove_object): Likewise. (notify_categories_changed): New function to notify the clients about the current set of categories. * pcs/cal.c (cal_notify_categories_changed): New function. svn path=/trunk/; revision=11536
Diffstat (limited to 'calendar/pcs/cal.c')
-rw-r--r--calendar/pcs/cal.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c
index f89d5c820f..cb92f391b5 100644
--- a/calendar/pcs/cal.c
+++ b/calendar/pcs/cal.c
@@ -674,6 +674,37 @@ cal_notify_remove (Cal *cal, const char *uid)
}
/**
+ * cal_notify_categories_changed:
+ * @cal: A calendar client interface.
+ * @categories: List of categories.
+ *
+ * Notifies a listener attached to a calendar client interface object about the
+ * current set of categories in a calendar backend.
+ **/
+void
+cal_notify_categories_changed (Cal *cal, GNOME_Evolution_Calendar_StringSeq *categories)
+{
+ CalPrivate *priv;
+ CORBA_Environment ev;
+
+ g_return_if_fail (cal != NULL);
+ g_return_if_fail (IS_CAL (cal));
+ g_return_if_fail (categories != NULL);
+
+ priv = cal->priv;
+ g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
+
+ CORBA_exception_init (&ev);
+ GNOME_Evolution_Calendar_Listener_notifyCategoriesChanged (priv->listener, categories, &ev);
+
+ if (ev._major != CORBA_NO_EXCEPTION)
+ g_message ("cal_notify_categories_changed(): Could not notify the listener "
+ "about the current set of categories");
+
+ CORBA_exception_free (&ev);
+}
+
+/**
* cal_get_password:
* @cal: A calendar client interface.
* @prompt: The message to show to the user when asking for the password.