aboutsummaryrefslogtreecommitdiffstats
path: root/shell/evolution-storage-listener.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/evolution-storage-listener.c')
-rw-r--r--shell/evolution-storage-listener.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/shell/evolution-storage-listener.c b/shell/evolution-storage-listener.c
index ede46a2f2d..1f08f5fff8 100644
--- a/shell/evolution-storage-listener.c
+++ b/shell/evolution-storage-listener.c
@@ -45,6 +45,7 @@ enum {
NEW_FOLDER,
UPDATE_FOLDER,
REMOVED_FOLDER,
+ HAS_SUBFOLDERS,
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL] = { 0 };
@@ -121,6 +122,21 @@ impl_GNOME_Evolution_StorageListener_notifyFolderRemoved (PortableServer_Servant
gtk_signal_emit (GTK_OBJECT (listener), signals[REMOVED_FOLDER], path);
}
+static void
+impl_GNOME_Evolution_StorageListener_notifyHasSubfolders (PortableServer_Servant servant,
+ const CORBA_char *path,
+ const CORBA_char *message,
+ CORBA_Environment *ev)
+{
+ EvolutionStorageListener *listener;
+ EvolutionStorageListenerPrivate *priv;
+
+ listener = gtk_object_from_servant (servant);
+ priv = listener->priv;
+
+ gtk_signal_emit (GTK_OBJECT (listener), signals[HAS_SUBFOLDERS], path, message);
+}
+
static EvolutionStorageListenerServant *
create_servant (EvolutionStorageListener *listener)
{
@@ -224,6 +240,7 @@ corba_class_init (void)
epv->notifyFolderCreated = impl_GNOME_Evolution_StorageListener_notifyFolderCreated;
epv->notifyFolderUpdated = impl_GNOME_Evolution_StorageListener_notifyFolderUpdated;
epv->notifyFolderRemoved = impl_GNOME_Evolution_StorageListener_notifyFolderRemoved;
+ epv->notifyHasSubfolders = impl_GNOME_Evolution_StorageListener_notifyHasSubfolders;
vepv = & my_GNOME_Evolution_StorageListener_vepv;
vepv->_base_epv = base_epv;
@@ -273,6 +290,15 @@ class_init (EvolutionStorageListenerClass *klass)
GTK_TYPE_NONE, 1,
GTK_TYPE_STRING);
+ signals[HAS_SUBFOLDERS] = gtk_signal_new ("has_subfolders",
+ GTK_RUN_FIRST,
+ object_class->type,
+ GTK_SIGNAL_OFFSET (EvolutionStorageListenerClass, has_subfolders),
+ gtk_marshal_NONE__POINTER_POINTER,
+ GTK_TYPE_NONE, 2,
+ GTK_TYPE_STRING,
+ GTK_TYPE_STRING);
+
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
corba_class_init ();