Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_canvas.c etk_canvas.h etk_evas_object.c 


Log Message:
[Etk_Canvas] Add convenience methods for adding Evas objects directly into
the canvas (wrappers around Etk_Evas_Object)


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_canvas.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -3 -r1.26 -r1.27
--- etk_canvas.c        19 Apr 2008 18:23:34 -0000      1.26
+++ etk_canvas.c        19 Apr 2008 21:24:26 -0000      1.27
@@ -7,6 +7,7 @@
 
 #include <stdlib.h>
 
+#include "etk_evas_object.h"
 #include "etk_signal.h"
 #include "etk_signal_callback.h"
 #include "etk_utils.h"
@@ -150,6 +151,65 @@
       if (x)   *x = c->pos.x;
       if (y)   *y = c->pos.y;
    }
+}
+
+/**
+ * @brief Adds an Evas_Object to the canvas. This is a convenience function
+ * that uses Etk_Evas_Object.
+ * @param canvas the canvas container
+ * @parem evas_object the evas object to add
+ * @return returns the Etk_Evas_Object holding the @a evas_object
+ * @note You will need to show the widget after it has been added.
+ */
+Etk_Widget *etk_canvas_object_add(Etk_Canvas *canvas, Evas_Object *evas_object)
+{
+   Etk_Widget *etk_evas_object;
+
+   if (!canvas || !evas_object)
+           return NULL;
+
+   etk_evas_object = etk_evas_object_new_from_object(evas_object);      
+        etk_canvas_put(canvas, etk_evas_object, 0, 0);
+        return etk_evas_object;
+}
+
+/**
+ * @brief Removed an Evas_Object from the canvas.
+ * @param canvas the canvas container
+ * @param evas_object the Evas_Object to remove
+ */
+void etk_canvas_object_remove(Etk_Canvas *canvas, Evas_Object *evas_object)
+{
+   Etk_Widget *etk_evas_object = NULL;
+
+   if (!canvas || !evas_object)
+           return;
+
+   if ((etk_evas_object = evas_object_data_get(evas_object, 
"_Etk_Evas_Object::Widget")) == NULL)
+           return;
+
+   evas_object_data_set(evas_object, "_Etk_Evas_Object::Widget", NULL);
+   _etk_canvas_child_remove(ETK_CONTAINER(canvas), etk_evas_object);
+}
+
+/**
+ * @brief Moves an Evas_Object around in the canvas
+ * @param canvas the canvas container
+ * @param evas_object the Evas_Object to move
+ * @param x the x coordinate to move to inside the canvas
+ * @param y the y coordinate to move to inside the canvas
+ */
+void etk_canvas_object_move(Etk_Canvas *canvas, Evas_Object *evas_object, int 
x, int y)
+{
+   Etk_Widget *etk_evas_object = NULL;
+
+   if (!canvas || !evas_object)
+           return;
+
+   if ((etk_evas_object = evas_object_data_get(evas_object, 
"_Etk_Evas_Object::Widget")) == NULL)
+           return;
+
+   etk_canvas_move(canvas, etk_evas_object, x, y);
 }
 
 /**************************
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_canvas.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_canvas.h        19 Apr 2008 18:23:34 -0000      1.12
+++ etk_canvas.h        19 Apr 2008 21:24:26 -0000      1.13
@@ -45,6 +45,8 @@
 void        etk_canvas_move(Etk_Canvas *canvas, Etk_Widget *widget, int x, int 
y);
 void        etk_canvas_child_position_get(Etk_Canvas *canvas, Etk_Widget 
*widget, int *x, int *y);
 
+Etk_Widget *etk_canvas_object_add(Etk_Canvas *canvas, Evas_Object 
*evas_object);
+
 /** @} */
 
 #ifdef __cplusplus
===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_evas_object.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- etk_evas_object.c   17 Apr 2008 03:27:34 -0000      1.1
+++ etk_evas_object.c   19 Apr 2008 21:24:26 -0000      1.2
@@ -104,6 +104,7 @@
    {
       etk_evas_object->object = evas_object;
       etk_object_notify(ETK_OBJECT(etk_evas_object), "evas-object");
+      evas_object_data_set(evas_object, "_Etk_Evas_Object::Widget", 
etk_evas_object);
    }
 
    _etk_evas_object_load(etk_evas_object);



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to