Enlightenment CVS committal

Author  : urandom
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_signal.c etk_signal.h 


Log Message:
 - [Etk_Signal] new function: etk_signal_disconnect_all 

===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_signal.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -3 -r1.22 -r1.23
--- etk_signal.c        13 Jan 2007 19:29:19 -0000      1.22
+++ etk_signal.c        10 Feb 2007 16:55:42 -0000      1.23
@@ -268,6 +268,37 @@
 }
 
 /**
+ * @brief Disconnects all callbacks from a signal
+ * @param signal_name the name of the signal for which all callbacks will be 
disconnected
+ * @param object the object for which all callbacks will be disconnected
+ */
+void etk_signal_disconnect_all(const char *signal_name, Etk_Object *object)
+{
+   Etk_Signal *signal;
+   Evas_List *callbacks;
+   Etk_Signal_Callback *signal_callback;
+
+   if (!object || !signal_name)
+      return;
+   
+   if (!(signal = etk_signal_lookup(signal_name, 
etk_object_object_type_get(object))))
+   {
+      ETK_WARNING("Invalid signal disconnection: the object type \"%s\" 
doesn't have a signal called \"%s\"",
+         object->type->name, signal_name);
+      return;
+   }
+   
+   callbacks = NULL;
+   etk_object_signal_callbacks_get(object, signal, &callbacks);
+   while (callbacks)
+   {
+      signal_callback = callbacks->data;
+      etk_object_signal_callback_remove(object, signal_callback);
+      callbacks = evas_list_remove_list(callbacks, callbacks);
+   }
+}
+
+/**
  * @brief Blocks a callback from being called when the corresponding signal is 
emitted. Unlike etk_signal_disconnect(),
  * the callback is note removed, and can be easily unblock with 
etk_signal_unblock()
  * @param signal_name the name of the signal connected to the callback to block
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_signal.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- etk_signal.h        13 Jan 2007 16:20:11 -0000      1.13
+++ etk_signal.h        10 Feb 2007 16:55:42 -0000      1.14
@@ -45,6 +45,7 @@
 void etk_signal_connect_swapped(const char *signal_name, Etk_Object *object, 
Etk_Callback callback, void *data);
 void etk_signal_connect_full(Etk_Signal *signal, Etk_Object *object, 
Etk_Callback callback, void *data, Etk_Bool swapped, Etk_Bool after);
 void etk_signal_disconnect(const char *signal_name, Etk_Object *object, 
Etk_Callback callback);
+void etk_signal_disconnect_all(const char *signal_name, Etk_Object *object);
 void etk_signal_block(const char *signal_name, Etk_Object *object, 
Etk_Callback callback);
 void etk_signal_unblock(const char *signal_name, Etk_Object *object, 
Etk_Callback callback);
 



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to