Enlightenment CVS committal

Author  : tsauerbeck
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_evas


Modified Files:
        Ecore_Evas.h.in ecore_evas.c ecore_evas_private.h 


Log Message:
implemented ecore_evas_data_get/set
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Ecore_Evas.h.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- Ecore_Evas.h.in     27 Aug 2004 10:02:45 -0000      1.4
+++ Ecore_Evas.h.in     2 Sep 2004 16:50:18 -0000       1.5
@@ -10,7 +10,6 @@
  * to do soon:
  * - iconfication api needs to work
  * - maximization api nees to work
- * - attach keyed data to an ecore_evas canvas
  * - document all calls
  * 
  * later:
@@ -59,6 +58,8 @@
 
 /* generic manipulation calls */
 void        ecore_evas_free(Ecore_Evas *ee);
+void       *ecore_evas_data_get(Ecore_Evas *ee, const char *key);
+void        ecore_evas_data_set(Ecore_Evas *ee, const char *key, const void *data);
 void        ecore_evas_callback_resize_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
*ee));
 void        ecore_evas_callback_move_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
*ee));
 void        ecore_evas_callback_show_set(Ecore_Evas *ee, void (*func) (Ecore_Evas 
*ee));
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- ecore_evas.c        8 Jul 2004 14:42:12 -0000       1.14
+++ ecore_evas.c        2 Sep 2004 16:50:18 -0000       1.15
@@ -62,6 +62,7 @@
        return;
      }
    ECORE_MAGIC_SET(ee, ECORE_MAGIC_NONE);
+   if (ee->data) evas_hash_free(ee->data);
    if (ee->driver) free(ee->driver);
    if (ee->name) free(ee->name);
    if (ee->prop.title) free(ee->prop.title);
@@ -70,6 +71,7 @@
    if (ee->prop.cursor.file) free(ee->prop.cursor.file);
    if (ee->prop.cursor.object) evas_object_del(ee->prop.cursor.object);
    if (ee->evas) evas_free(ee->evas);
+   ee->data = NULL;
    ee->driver = NULL;
    ee->name = NULL;
    ee->prop.title = NULL;
@@ -82,6 +84,37 @@
    free(ee);
 }
 
+void *
+ecore_evas_data_get(Ecore_Evas *ee, const char *key)
+{
+   if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
+     {
+       ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
+                        "ecore_evas_data_get");
+       return NULL;
+     }
+
+   if (!key) return NULL;
+
+   return evas_hash_find(ee->data, key);
+}
+
+void
+ecore_evas_data_set(Ecore_Evas *ee, const char *key, const void *data)
+{
+   if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
+     {
+       ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
+                        "ecore_evas_data_set");
+       return;
+     }
+
+   if (!key) return;
+
+   ee->data = evas_hash_del(ee->data, key, NULL);
+   ee->data = evas_hash_add(ee->data, key, data);
+}
+
 #define IFC(_ee, _fn)  if (_ee->engine.func->_fn) {_ee->engine.func->_fn
 #define IFE            return;}
 
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_private.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- ecore_evas_private.h        17 Mar 2004 05:14:13 -0000      1.5
+++ ecore_evas_private.h        2 Sep 2004 16:50:18 -0000       1.6
@@ -104,7 +104,9 @@
    char        shaped  : 1;
    char        visible : 1;
    char        should_be_visible : 1;
-   
+
+   Evas_Hash  *data;
+
    struct {
       int      x, y;
    } mouse;




-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to