Hey, I want to check if a given part's type is SWALLOW before using it to
swallow an object.
I couldn't find a way to do it without using Edje_Edit.h. Sice this is for the
Edje book I wouldn't want to encourage Edje_Edit for regular application
development. Or is promoting the usage of Edje_Edit in applications a good
idea?
My approach was to add a new function to Edje that return the part type as an
unsigned char (like Edje_Edit does) and to move the macros EDJE_PART_TYPE_*
from edje_private.h to Edje.h .
I attached a patch showing the changes.
Thanks and good bye.
Index: src/lib/Edje.h
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/Edje.h,v
retrieving revision 1.52
diff -u -r1.52 Edje.h
--- src/lib/Edje.h 26 Aug 2007 12:54:51 -0000 1.52
+++ src/lib/Edje.h 16 Apr 2008 13:53:35 -0000
@@ -24,6 +24,16 @@
# endif
#endif
+#define EDJE_PART_TYPE_NONE 0
+#define EDJE_PART_TYPE_RECTANGLE 1
+#define EDJE_PART_TYPE_TEXT 2
+#define EDJE_PART_TYPE_IMAGE 3
+#define EDJE_PART_TYPE_SWALLOW 4
+#define EDJE_PART_TYPE_TEXTBLOCK 5
+#define EDJE_PART_TYPE_GRADIENT 6
+#define EDJE_PART_TYPE_GROUP 7
+#define EDJE_PART_TYPE_LAST 8
+
/* FIXDOC: Define these? */
enum _Edje_Message_Type
{
@@ -195,7 +205,8 @@
EAPI Evas_Object *edje_object_add (Evas *evas);
/* edje_util.c */
- EAPI const char *edje_object_data_get (Evas_Object *obj, const char *key);
+ EAPI const char *edje_object_data_get (Evas_Object *obj, const char *key);
+ EAPI unsigned char edje_object_part_type_get (Evas_Object *obj, const char *part);
/* edje_load.c */
EAPI int edje_object_file_set (Evas_Object *obj, const char *file, const char *part);
Index: src/lib/edje_private.h
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.147
diff -u -r1.147 edje_private.h
--- src/lib/edje_private.h 1 Apr 2008 21:33:17 -0000 1.147
+++ src/lib/edje_private.h 16 Apr 2008 13:53:35 -0000
@@ -186,16 +186,6 @@
#define EDJE_IMAGE_SOURCE_TYPE_EXTERNAL 3
#define EDJE_IMAGE_SOURCE_TYPE_LAST 4
-#define EDJE_PART_TYPE_NONE 0
-#define EDJE_PART_TYPE_RECTANGLE 1
-#define EDJE_PART_TYPE_TEXT 2
-#define EDJE_PART_TYPE_IMAGE 3
-#define EDJE_PART_TYPE_SWALLOW 4
-#define EDJE_PART_TYPE_TEXTBLOCK 5
-#define EDJE_PART_TYPE_GRADIENT 6
-#define EDJE_PART_TYPE_GROUP 7
-#define EDJE_PART_TYPE_LAST 8
-
#define EDJE_TEXT_EFFECT_NONE 0
#define EDJE_TEXT_EFFECT_PLAIN 1
#define EDJE_TEXT_EFFECT_OUTLINE 2
Index: src/lib/edje_util.c
===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.106
diff -u -r1.106 edje_util.c
--- src/lib/edje_util.c 31 Mar 2008 21:38:51 -0000 1.106
+++ src/lib/edje_util.c 16 Apr 2008 13:53:36 -0000
@@ -697,6 +697,29 @@
return 1;
}
+/** Gets the type of a given part
+ * @param obj A valid Evas_Object handle
+ * @param part The part name to check
+ * @return An unsigned char representing the type of the part, this value can
+ * be checked agains the following macros, EDJE_PART_TYPE_NONE,
+ * EDJE_PART_TYPE_RECTANGLE, EDJE_PART_TYPE_TEXT,EDJE_PART_TYPE_IMAGE,
+ * EDJE_PART_TYPE_SWALLOW, EDJE_PART_TYPE_TEXTBLOCK,EDJE_PART_TYPE_GRADIENT or
+ * EDJE_PART_TYPE_GROUP. The function returns the value of the macro
+ * EDJE_PART_TYPE_LAST on failure.
+ */
+EAPI unsigned char
+edje_object_part_type_get(Evas_Object *obj, const char *part)
+{
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ ed = _edje_fetch(obj);
+ if ((!ed) || (!part)) return EDJE_PART_TYPE_LAST;
+ rp = _edje_real_part_recursive_get(ed, (char *)part);
+ if (!rp) return EDJE_PART_TYPE_LAST;
+ return rp->part->type;
+}
+
/**
* Gets the Evas_Object corresponding to a given part.
* You should never modify the state of the returned 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-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel