summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Zaoui <daniel.zaoui@samsung.com>2012-10-21 10:46:58 +0000
committerDaniel Zaoui <daniel.zaoui@yahoo.com>2012-10-21 10:46:58 +0000
commitfdd87314b2aa210f1b4c89fc99757bfd454b2df7 (patch)
tree5f605e78631b4ce442680c59c6478f3560dbb629
parent9eb2d0e68583e09855f49b432c6f5ba73b864dcd (diff)
Edje porting to Eo
Signed-off-by: Daniel Zaoui <daniel.zaoui@samsung.com> SVN revision: 78305
-rw-r--r--legacy/edje/AUTHORS1
-rw-r--r--legacy/edje/ChangeLog6
-rw-r--r--legacy/edje/NEWS1
-rw-r--r--legacy/edje/src/lib/Edje.h309
-rw-r--r--legacy/edje/src/lib/edje_box_layout.c4
-rw-r--r--legacy/edje/src/lib/edje_edit.c159
-rw-r--r--legacy/edje/src/lib/edje_embryo.c6
-rw-r--r--legacy/edje/src/lib/edje_entry.c26
-rw-r--r--legacy/edje/src/lib/edje_external.c136
-rw-r--r--legacy/edje/src/lib/edje_load.c64
-rw-r--r--legacy/edje/src/lib/edje_lua2.c2
-rw-r--r--legacy/edje/src/lib/edje_main.c7
-rw-r--r--legacy/edje/src/lib/edje_message_queue.c31
-rw-r--r--legacy/edje/src/lib/edje_private.h158
-rw-r--r--legacy/edje/src/lib/edje_program.c154
-rw-r--r--legacy/edje/src/lib/edje_script_only.c2
-rw-r--r--legacy/edje/src/lib/edje_smart.c474
-rw-r--r--legacy/edje/src/lib/edje_util.c2431
18 files changed, 3055 insertions, 916 deletions
diff --git a/legacy/edje/AUTHORS b/legacy/edje/AUTHORS
index f315127d76..bb02878a3b 100644
--- a/legacy/edje/AUTHORS
+++ b/legacy/edje/AUTHORS
@@ -30,3 +30,4 @@ Michael Bouchaud (yoz) <michael.bouchaud@gmail.com>
30WooHyun Jung (woohyun) <woohyun0705@gmail.com> 30WooHyun Jung (woohyun) <woohyun0705@gmail.com>
31Guilherme Silveira <xguiga@gmail.com> 31Guilherme Silveira <xguiga@gmail.com>
32Flavio Ceolin <flavio.ceolin@profusion.mobi> 32Flavio Ceolin <flavio.ceolin@profusion.mobi>
33Daniel Zaoui <daniel.zaoui@yahoo.com>
diff --git a/legacy/edje/ChangeLog b/legacy/edje/ChangeLog
index b2056f9b0f..1bd2bd2ed0 100644
--- a/legacy/edje/ChangeLog
+++ b/legacy/edje/ChangeLog
@@ -653,3 +653,9 @@
6532012-10-10 6532012-10-10
654 654
655 * edje_entry: Add more tags(preedit_sub1~4) for a variety of preediting states. 655 * edje_entry: Add more tags(preedit_sub1~4) for a variety of preediting states.
656
6572012-10-21 Daniel Zaoui
658
659 * Edje: change Edje to use Eo.
660 This change adds Eo support to Edje while keeping the old API intact.
661 For more information, go to Eo.
diff --git a/legacy/edje/NEWS b/legacy/edje/NEWS
index 6ce0072d88..7b64be06db 100644
--- a/legacy/edje/NEWS
+++ b/legacy/edje/NEWS
@@ -11,6 +11,7 @@ Additions:
11 * Add more tags(preedit_sub1~4) for a variety of preediting states. 11 * Add more tags(preedit_sub1~4) for a variety of preediting states.
12 12
13Improvements: 13Improvements:
14 * Change Edje to use Eo.
14 * Check the number of parameter for image in edc. 15 * Check the number of parameter for image in edc.
15 * Less memory used per part in an edje file (about 25% less). 16 * Less memory used per part in an edje file (about 25% less).
16 * O(1) lookup used when searching Part_Lookup in edje_cc. 17 * O(1) lookup used when searching Part_Lookup in edje_cc.
diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h
index 41919a076e..a9a2085317 100644
--- a/legacy/edje/src/lib/Edje.h
+++ b/legacy/edje/src/lib/Edje.h
@@ -816,6 +816,315 @@ typedef struct _Edje_External_Type_Info Edje_External_Type_Info;
816 * @} 816 * @}
817 */ 817 */
818 818
819#define EDJE_OBJ_CLASS edje_object_class_get()
820
821const Eo_Class *edje_object_class_get(void) EINA_CONST;
822
823extern EAPI Eo_Op EDJE_OBJ_BASE_ID;
824
825enum
826{
827 EDJE_OBJ_SUB_ID_SCALE_SET,
828 EDJE_OBJ_SUB_ID_SCALE_GET,
829 EDJE_OBJ_SUB_ID_MIRRORED_GET,
830 EDJE_OBJ_SUB_ID_MIRRORED_SET,
831 EDJE_OBJ_SUB_ID_DATA_GET,
832 EDJE_OBJ_SUB_ID_FREEZE,
833 EDJE_OBJ_SUB_ID_THAW,
834 EDJE_OBJ_SUB_ID_COLOR_CLASS_SET,
835 EDJE_OBJ_SUB_ID_COLOR_CLASS_GET,
836 EDJE_OBJ_SUB_ID_TEXT_CLASS_SET,
837 EDJE_OBJ_SUB_ID_PART_EXISTS,
838 EDJE_OBJ_SUB_ID_PART_OBJECT_GET,
839 EDJE_OBJ_SUB_ID_PART_GEOMETRY_GET,
840 EDJE_OBJ_SUB_ID_ITEM_PROVIDER_SET,
841 EDJE_OBJ_SUB_ID_TEXT_CHANGE_CB_SET,
842 EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PUSH,
843 EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_POP,
844 EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PEEK,
845 EDJE_OBJ_SUB_ID_PART_TEXT_SET,
846 EDJE_OBJ_SUB_ID_PART_TEXT_GET,
847 EDJE_OBJ_SUB_ID_PART_TEXT_ESCAPED_SET,
848 EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_SET,
849 EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_GET,
850 EDJE_OBJ_SUB_ID_PART_TEXT_SELECTION_GET,
851 EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE,
852 EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL,
853 EDJE_OBJ_SUB_ID_PART_TEXT_INSERT,
854 EDJE_OBJ_SUB_ID_PART_TEXT_APPEND,
855 EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_LIST_GET,
856 EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_GEOMETRY_GET,
857 EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_LIST_GET,
858 EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_GEOMETRY_GET,
859 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_GEOMETRY_GET,
860 EDJE_OBJ_SUB_ID_PART_TEXT_USER_INSERT,
861 EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALLOW_SET,
862 EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT,
863 EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN,
864 EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND,
865 EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_GET,
866 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_NEXT,
867 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_PREV,
868 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_UP,
869 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_DOWN,
870 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_BEGIN_SET,
871 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_END_SET,
872 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COPY,
873 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_BEGIN_SET,
874 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_END_SET,
875 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COORD_SET,
876 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_FORMAT_GET,
877 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_VISIBLE_FORMAT_GET,
878 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_CONTENT_GET,
879 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_SET,
880 EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_GET,
881 EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET,
882 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET,
883 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET,
884 EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET,
885 EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET,
886 EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET,
887 EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_GET,
888 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_SET,
889 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_GET,
890 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW,
891 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_HIDE,
892 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_SET,
893 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_GET,
894 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_SET,
895 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_GET,
896 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_SET,
897 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET,
898 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET,
899 EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET,
900 EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD,
901 EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL,
902 EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL,
903 EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_ADD,
904 EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL,
905 EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL_FULL,
906 EDJE_OBJ_SUB_ID_PART_SWALLOW,
907 EDJE_OBJ_SUB_ID_PART_UNSWALLOW,
908 EDJE_OBJ_SUB_ID_PART_SWALLOW_GET,
909 EDJE_OBJ_SUB_ID_SIZE_MIN_GET,
910 EDJE_OBJ_SUB_ID_SIZE_MAX_GET,
911 EDJE_OBJ_SUB_ID_CALC_FORCE,
912 EDJE_OBJ_SUB_ID_SIZE_MIN_CALC,
913 EDJE_OBJ_SUB_ID_PARTS_EXTENDS_CALC,
914 EDJE_OBJ_SUB_ID_SIZE_MIN_RESTRICTED_CALC,
915 EDJE_OBJ_SUB_ID_PART_STATE_GET,
916 EDJE_OBJ_SUB_ID_PART_DRAG_DIR_GET,
917 EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_SET,
918 EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_GET,
919 EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_SET,
920 EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_GET,
921 EDJE_OBJ_SUB_ID_PART_DRAG_STEP_SET,
922 EDJE_OBJ_SUB_ID_PART_DRAG_STEP_GET,
923 EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_SET,
924 EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_GET,
925 EDJE_OBJ_SUB_ID_PART_DRAG_STEP,
926 EDJE_OBJ_SUB_ID_PART_DRAG_PAGE,
927 EDJE_OBJ_SUB_ID_PART_BOX_APPEND,
928 EDJE_OBJ_SUB_ID_PART_BOX_PREPEND,
929 EDJE_OBJ_SUB_ID_PART_BOX_INSERT_BEFORE,
930 EDJE_OBJ_SUB_ID_PART_BOX_INSERT_AT,
931 EDJE_OBJ_SUB_ID_PART_BOX_REMOVE,
932 EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_AT,
933 EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_ALL,
934 EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET,
935 EDJE_OBJ_SUB_ID_PART_TABLE_CHILD_GET,
936 EDJE_OBJ_SUB_ID_PART_TABLE_PACK,
937 EDJE_OBJ_SUB_ID_PART_TABLE_UNPACK,
938 EDJE_OBJ_SUB_ID_PART_TABLE_COL_ROW_SIZE_GET,
939 EDJE_OBJ_SUB_ID_PART_TABLE_CLEAR,
940 EDJE_OBJ_SUB_ID_PERSPECTIVE_SET,
941 EDJE_OBJ_SUB_ID_PERSPECTIVE_GET,
942 EDJE_OBJ_SUB_ID_PRELOAD,
943 EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET,
944 EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET,
945
946 EDJE_OBJ_SUB_ID_PART_EXTERNAL_OBJECT_GET,
947 EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_SET,
948 EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_GET,
949 EDJE_OBJ_SUB_ID_PART_EXTERNAL_CONTENT_GET,
950 EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_TYPE_GET,
951
952 EDJE_OBJ_SUB_ID_FILE_SET,
953 EDJE_OBJ_SUB_ID_FILE_GET,
954 EDJE_OBJ_SUB_ID_LOAD_ERROR_GET,
955
956 EDJE_OBJ_SUB_ID_MESSAGE_SEND,
957 EDJE_OBJ_SUB_ID_MESSAGE_HANDLER_SET,
958 EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS,
959
960 EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_ADD,
961 EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL,
962 EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL_FULL,
963 EDJE_OBJ_SUB_ID_SIGNAL_EMIT,
964 EDJE_OBJ_SUB_ID_PLAY_SET,
965 EDJE_OBJ_SUB_ID_PLAY_GET,
966 EDJE_OBJ_SUB_ID_ANIMATION_SET,
967 EDJE_OBJ_SUB_ID_ANIMATION_GET,
968
969 EDJE_OBJ_SUB_ID_LAST
970};
971
972#define EDJE_OBJ_ID(sub_id) (EDJE_OBJ_BASE_ID + sub_id)
973
974#define edje_obj_scale_set(scale, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SCALE_SET), EO_TYPECHECK(double, scale), EO_TYPECHECK(Eina_Bool *, ret)
975#define edje_obj_scale_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SCALE_GET), EO_TYPECHECK(double *, ret)
976#define edje_obj_mirrored_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_GET), EO_TYPECHECK(Eina_Bool *, ret)
977#define edje_obj_mirrored_set(rtl) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_SET), EO_TYPECHECK(Eina_Bool, rtl)
978#define edje_obj_data_get(key, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_DATA_GET), EO_TYPECHECK(const char *, key), EO_TYPECHECK(const char **, ret)
979#define edje_obj_freeze(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FREEZE), EO_TYPECHECK(int *, ret)
980#define edje_obj_thaw(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_THAW), EO_TYPECHECK(int *, ret)
981#define edje_obj_color_class_set(color_class, r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_COLOR_CLASS_SET), EO_TYPECHECK(const char *, color_class), EO_TYPECHECK(int, r), EO_TYPECHECK(int, g), EO_TYPECHECK(int, b), EO_TYPECHECK(int, a), EO_TYPECHECK(int, r2), EO_TYPECHECK(int, g2), EO_TYPECHECK(int, b2), EO_TYPECHECK(int, a2), EO_TYPECHECK(int, r3), EO_TYPECHECK(int, g3), EO_TYPECHECK(int, b3), EO_TYPECHECK(int, a3), EO_TYPECHECK(Eina_Bool *, ret)
982#define edje_obj_color_class_get(color_class, r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_COLOR_CLASS_GET), EO_TYPECHECK(const char *, color_class), EO_TYPECHECK(int *, r), EO_TYPECHECK(int *, g), EO_TYPECHECK(int *, b), EO_TYPECHECK(int *, a), EO_TYPECHECK(int *, r2), EO_TYPECHECK(int *, g2), EO_TYPECHECK(int *, b2), EO_TYPECHECK(int *, a2), EO_TYPECHECK(int *, r3), EO_TYPECHECK(int *, g3), EO_TYPECHECK(int *, b3), EO_TYPECHECK(int *, a3), EO_TYPECHECK(Eina_Bool *, ret)
983#define edje_obj_text_class_set(text_class, font, size, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_CLASS_SET), EO_TYPECHECK(const char *, text_class), EO_TYPECHECK(const char *, font), EO_TYPECHECK(Evas_Font_Size, size), EO_TYPECHECK(Eina_Bool *, ret)
984#define edje_obj_part_exists(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXISTS), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool *, ret)
985#define edje_obj_part_object_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_OBJECT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const Evas_Object **, ret)
986#define edje_obj_part_geometry_get(part, x, y, w, h, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_GEOMETRY_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h), EO_TYPECHECK(Eina_Bool *, ret)
987#define edje_obj_item_provider_set(func, data) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ITEM_PROVIDER_SET), EO_TYPECHECK(Edje_Item_Provider_Cb, func), EO_TYPECHECK(void *, data)
988#define edje_obj_text_change_cb_set(func, data) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_CHANGE_CB_SET), EO_TYPECHECK(Edje_Text_Change_Cb, func), EO_TYPECHECK(void *, data)
989#define edje_obj_part_text_style_user_push(part, style) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PUSH), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, style)
990#define edje_obj_part_text_style_user_pop(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_POP), EO_TYPECHECK(const char *, part)
991#define edje_obj_part_text_style_user_peek(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PEEK), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char **, ret)
992#define edje_obj_part_text_set(part, text, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, text), EO_TYPECHECK(Eina_Bool *, ret)
993#define edje_obj_part_text_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char **, ret)
994#define edje_obj_part_text_escaped_set(part, text, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ESCAPED_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, text), EO_TYPECHECK(Eina_Bool *, ret)
995#define edje_obj_part_text_unescaped_set(part, text_to_escape, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, text_to_escape), EO_TYPECHECK(Eina_Bool *, ret)
996#define edje_obj_part_text_unescaped_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(char **, ret)
997#define edje_obj_part_text_selection_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECTION_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char **, ret)
998#define edje_obj_part_text_select_none(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE), EO_TYPECHECK(const char *, part)
999#define edje_obj_part_text_select_all(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL), EO_TYPECHECK(const char *, part)
1000#define edje_obj_part_text_insert(part, text) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INSERT), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, text)
1001#define edje_obj_part_text_append(part, text) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_APPEND), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, text)
1002#define edje_obj_part_text_anchor_list_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_LIST_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const Eina_List **, ret)
1003#define edje_obj_part_text_anchor_geometry_get(part, anchor, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_GEOMETRY_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, anchor), EO_TYPECHECK(const Eina_List **, ret)
1004#define edje_obj_part_text_item_list_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_LIST_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const Eina_List **, ret)
1005#define edje_obj_part_text_item_geometry_get(part, item, cx, cy, cw, ch, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_GEOMETRY_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, item), EO_TYPECHECK(Evas_Coord *, cx), EO_TYPECHECK(Evas_Coord *, cy), EO_TYPECHECK(Evas_Coord *, cw), EO_TYPECHECK(Evas_Coord *, ch), EO_TYPECHECK(Eina_Bool *, ret)
1006#define edje_obj_part_text_cursor_geometry_get(part, x, y, w, h) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_GEOMETRY_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h)
1007#define edje_obj_part_text_user_insert(part, text) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_USER_INSERT), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, text)
1008#define edje_obj_part_text_select_allow_set(part, allow) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALLOW_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool, allow)
1009#define edje_obj_part_text_select_abort(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT), EO_TYPECHECK(const char *, part)
1010#define edje_obj_part_text_select_begin(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN), EO_TYPECHECK(const char *, part)
1011#define edje_obj_part_text_select_extend(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND), EO_TYPECHECK(const char *, part)
1012#define edje_obj_part_text_imf_context_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(void **, ret)
1013#define edje_obj_part_text_cursor_next(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_NEXT), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(Eina_Bool *, ret)
1014#define edje_obj_part_text_cursor_prev(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_PREV), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(Eina_Bool *, ret)
1015#define edje_obj_part_text_cursor_up(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_UP), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(Eina_Bool *, ret)
1016#define edje_obj_part_text_cursor_down(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_DOWN), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(Eina_Bool *, ret)
1017#define edje_obj_part_text_cursor_begin_set(part, cur) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_BEGIN_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur)
1018#define edje_obj_part_text_cursor_end_set(part, cur) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_END_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur)
1019#define edje_obj_part_text_cursor_copy(part, src, dst) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COPY), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, src), EO_TYPECHECK(Edje_Cursor, dst)
1020#define edje_obj_part_text_cursor_line_begin_set(part, cur) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_BEGIN_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur)
1021#define edje_obj_part_text_cursor_line_end_set(part, cur) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_END_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur)
1022#define edje_obj_part_text_cursor_coord_set(part, cur, x, y, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COORD_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(Evas_Coord, x), EO_TYPECHECK(Evas_Coord, y), EO_TYPECHECK(Eina_Bool *, ret)
1023#define edje_obj_part_text_cursor_is_format_get(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_FORMAT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(Eina_Bool *, ret)
1024#define edje_obj_part_text_cursor_is_visible_format_get(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_VISIBLE_FORMAT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(Eina_Bool *, ret)
1025#define edje_obj_part_text_cursor_content_get(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_CONTENT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(char **, ret)
1026#define edje_obj_part_text_cursor_pos_set(part, cur, pos) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(int, pos)
1027#define edje_obj_part_text_cursor_pos_get(part, cur, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Cursor, cur), EO_TYPECHECK(int *, ret)
1028#define edje_obj_part_text_imf_context_reset(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET), EO_TYPECHECK(const char *, part)
1029#define edje_obj_part_text_input_panel_layout_set(part, layout) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Input_Panel_Layout, layout)
1030#define edje_obj_part_text_input_panel_layout_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Input_Panel_Layout *, ret)
1031#define edje_obj_part_text_autocapital_type_set(part, autocapital_type) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Text_Autocapital_Type, autocapital_type)
1032#define edje_obj_part_text_autocapital_type_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Text_Autocapital_Type *, ret)
1033#define edje_obj_part_text_prediction_allow_set(part, prediction) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool, prediction)
1034#define edje_obj_part_text_prediction_allow_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool *, ret)
1035#define edje_obj_part_text_input_panel_enabled_set(part, enabled) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool, enabled)
1036#define edje_obj_part_text_input_panel_enabled_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool *, ret)
1037#define edje_obj_part_text_input_panel_show(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW), EO_TYPECHECK(const char *, part)
1038#define edje_obj_part_text_input_panel_hide(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_HIDE), EO_TYPECHECK(const char *, part)
1039#define edje_obj_part_text_input_panel_language_set(part, lang) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Input_Panel_Lang, lang)
1040#define edje_obj_part_text_input_panel_language_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Input_Panel_Lang *, ret)
1041#define edje_obj_part_text_input_panel_imdata_set(part, data, len) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const void *, data), EO_TYPECHECK(int, len)
1042#define edje_obj_part_text_input_panel_imdata_get(part, data, len) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(void *, data), EO_TYPECHECK(int *, len)
1043#define edje_obj_part_text_input_panel_return_key_type_set(part, return_key_type) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Input_Panel_Return_Key_Type, return_key_type)
1044#define edje_obj_part_text_input_panel_return_key_type_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Input_Panel_Return_Key_Type *, ret)
1045#define edje_obj_part_text_input_panel_return_key_disabled_set(part, disabled) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool, disabled)
1046#define edje_obj_part_text_input_panel_return_key_disabled_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool *, ret)
1047#define edje_obj_text_insert_filter_callback_add(part, func, data) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Text_Filter_Cb, func), EO_TYPECHECK(void *, data)
1048#define edje_obj_text_insert_filter_callback_del(part, func, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Text_Filter_Cb, func), EO_TYPECHECK(void **, ret)
1049#define edje_obj_text_insert_filter_callback_del_full(part, func, data, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Text_Filter_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(void **, ret)
1050#define edje_obj_text_markup_filter_callback_add(part, func, data) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_ADD), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Markup_Filter_Cb, func), EO_TYPECHECK(void *, data)
1051#define edje_obj_text_markup_filter_callback_del(part, func, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Markup_Filter_Cb, func), EO_TYPECHECK(void **, ret)
1052#define edje_obj_text_markup_filter_callback_del_full(part, func, data, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL_FULL), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Markup_Filter_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(void **, ret)
1053#define edje_obj_part_swallow(part, obj_swallow, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_SWALLOW), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, obj_swallow), EO_TYPECHECK(Eina_Bool *, ret)
1054#define edje_obj_part_unswallow(obj_swallow) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_UNSWALLOW), EO_TYPECHECK(Evas_Object *, obj_swallow)
1055#define edje_obj_part_swallow_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_SWALLOW_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object **, ret)
1056#define edje_obj_size_min_get(minw, minh) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_GET), EO_TYPECHECK(Evas_Coord *, minw), EO_TYPECHECK(Evas_Coord *, minh)
1057#define edje_obj_size_max_get(maxw, maxh) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MAX_GET), EO_TYPECHECK(Evas_Coord *, maxw), EO_TYPECHECK(Evas_Coord *, maxh)
1058#define edje_obj_calc_force() EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_CALC_FORCE)
1059#define edje_obj_size_min_calc(minw, minh) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_CALC), EO_TYPECHECK(Evas_Coord *, minw), EO_TYPECHECK(Evas_Coord *, minh)
1060#define edje_obj_parts_extends_calc(x, y, w, h, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PARTS_EXTENDS_CALC), EO_TYPECHECK(Evas_Coord *, x), EO_TYPECHECK(Evas_Coord *, y), EO_TYPECHECK(Evas_Coord *, w), EO_TYPECHECK(Evas_Coord *, h), EO_TYPECHECK(Eina_Bool *, ret)
1061#define edje_obj_size_min_restricted_calc(minw, minh, restrictedw, restrictedh) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_RESTRICTED_CALC), EO_TYPECHECK(Evas_Coord *, minw), EO_TYPECHECK(Evas_Coord *, minh), EO_TYPECHECK(Evas_Coord, restrictedw), EO_TYPECHECK(Evas_Coord, restrictedh)
1062#define edje_obj_part_state_get(part, val_ret, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_STATE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double *, val_ret), EO_TYPECHECK(const char **, ret)
1063#define edje_obj_part_drag_dir_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_DIR_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Drag_Dir *, ret)
1064#define edje_obj_part_drag_value_set(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double, dx), EO_TYPECHECK(double, dy), EO_TYPECHECK(Eina_Bool *, ret)
1065#define edje_obj_part_drag_value_get(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double *, dx), EO_TYPECHECK(double *, dy), EO_TYPECHECK(Eina_Bool *, ret)
1066#define edje_obj_part_drag_size_set(part, dw, dh, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double, dw), EO_TYPECHECK(double, dh), EO_TYPECHECK(Eina_Bool *, ret)
1067#define edje_obj_part_drag_size_get(part, dw, dh, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double *, dw), EO_TYPECHECK(double *, dh), EO_TYPECHECK(Eina_Bool *, ret)
1068#define edje_obj_part_drag_step_set(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double, dx), EO_TYPECHECK(double, dy), EO_TYPECHECK(Eina_Bool *, ret)
1069#define edje_obj_part_drag_step_get(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double *, dx), EO_TYPECHECK(double *, dy), EO_TYPECHECK(Eina_Bool *, ret)
1070#define edje_obj_part_drag_page_set(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double, dx), EO_TYPECHECK(double, dy), EO_TYPECHECK(Eina_Bool *, ret)
1071#define edje_obj_part_drag_page_get(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double *, dx), EO_TYPECHECK(double *, dy), EO_TYPECHECK(Eina_Bool *, ret)
1072#define edje_obj_part_drag_step(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double, dx), EO_TYPECHECK(double, dy), EO_TYPECHECK(Eina_Bool *, ret)
1073#define edje_obj_part_drag_page(part, dx, dy, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE), EO_TYPECHECK(const char *, part), EO_TYPECHECK(double, dx), EO_TYPECHECK(double, dy), EO_TYPECHECK(Eina_Bool *, ret)
1074#define edje_obj_part_box_append(part, child, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_APPEND), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, child), EO_TYPECHECK(Eina_Bool *, ret)
1075#define edje_obj_part_box_prepend(part, child, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_PREPEND), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, child), EO_TYPECHECK(Eina_Bool *, ret)
1076#define edje_obj_part_box_insert_before(part, child, reference, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_BEFORE), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, child), EO_TYPECHECK(const Evas_Object *, reference), EO_TYPECHECK(Eina_Bool *, ret)
1077#define edje_obj_part_box_insert_at(part, child, pos, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_AT), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, child), EO_TYPECHECK(unsigned int, pos), EO_TYPECHECK(Eina_Bool *, ret)
1078#define edje_obj_part_box_remove(part, child, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, child), EO_TYPECHECK(Evas_Object **, ret)
1079#define edje_obj_part_box_remove_at(part, pos, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_AT), EO_TYPECHECK(const char *, part), EO_TYPECHECK(unsigned int, pos), EO_TYPECHECK(Evas_Object **, ret)
1080#define edje_obj_part_box_remove_all(part, clear, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_ALL), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool, clear), EO_TYPECHECK(Eina_Bool *, ret)
1081#define edje_obj_access_part_list_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET), EO_TYPECHECK(Eina_List **, ret)
1082#define edje_obj_part_table_child_get(part, col, row, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_CHILD_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(unsigned int, col), EO_TYPECHECK(unsigned int, row), EO_TYPECHECK(Evas_Object **, ret)
1083#define edje_obj_part_table_pack(part, child_obj, col, row, colspan, rowspan, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_PACK), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, child_obj), EO_TYPECHECK(unsigned short, col), EO_TYPECHECK(unsigned short, row), EO_TYPECHECK(unsigned short, colspan), EO_TYPECHECK(unsigned short, rowspan), EO_TYPECHECK(Eina_Bool *, ret)
1084#define edje_obj_part_table_unpack(part, child_obj, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_UNPACK), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object *, child_obj), EO_TYPECHECK(Eina_Bool *, ret)
1085#define edje_obj_part_table_col_row_size_get(part, cols, rows, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_COL_ROW_SIZE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(int *, cols), EO_TYPECHECK(int *, rows), EO_TYPECHECK(Eina_Bool *, ret)
1086#define edje_obj_part_table_clear(part, clear, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_CLEAR), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Eina_Bool, clear), EO_TYPECHECK(Eina_Bool *, ret)
1087#define edje_obj_perspective_set(ps) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_SET), EO_TYPECHECK(Edje_Perspective *, ps)
1088#define edje_obj_perspective_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_GET), EO_TYPECHECK(const Edje_Perspective **, ret)
1089#define edje_obj_preload(cancel, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PRELOAD), EO_TYPECHECK(Eina_Bool, cancel), EO_TYPECHECK(Eina_Bool *, ret)
1090#define edje_obj_update_hints_set(update) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET), EO_TYPECHECK(Eina_Bool, update)
1091#define edje_obj_update_hints_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET), EO_TYPECHECK(Eina_Bool *, ret)
1092
1093#define edje_obj_part_external_object_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_OBJECT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Evas_Object **, ret)
1094#define edje_obj_part_external_param_set(part, param, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const Edje_External_Param *, param), EO_TYPECHECK(Eina_Bool *, ret)
1095#define edje_obj_part_external_param_get(part, param, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_External_Param *, param), EO_TYPECHECK(Eina_Bool *, ret)
1096#define edje_obj_part_external_content_get(part, content, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_CONTENT_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, content), EO_TYPECHECK(Evas_Object **, ret)
1097#define edje_obj_part_external_param_type_get(part, param, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_TYPE_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(const char *, param), EO_TYPECHECK(Edje_External_Param_Type *, ret)
1098
1099/**
1100 * @def edje_obj_file_set
1101 *
1102 * @param[in] file in
1103 * @param[in] group in
1104 * @param[out] ret out
1105 *
1106 */
1107#define edje_obj_file_set(file, group, nested, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_SET), EO_TYPECHECK(const char*, file), EO_TYPECHECK(const char *, group), EO_TYPECHECK(Eina_Array *, nested), EO_TYPECHECK(Eina_Bool *, ret)
1108#define edje_obj_file_get(file, group) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_GET), EO_TYPECHECK(const char **, file), EO_TYPECHECK(const char **, group)
1109#define edje_obj_load_error_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_LOAD_ERROR_GET), EO_TYPECHECK(Edje_Load_Error *, ret)
1110
1111#define edje_obj_message_send(type, id, msg) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_SEND), EO_TYPECHECK(Edje_Message_Type, type), EO_TYPECHECK(int, id), EO_TYPECHECK(void *, msg)
1112#define edje_obj_message_handler_set(func, data) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_HANDLER_SET), EO_TYPECHECK(Edje_Message_Handler_Cb, func), EO_TYPECHECK(void *, data)
1113#define edje_obj_message_signal_process() EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS)
1114
1115#define edje_obj_signal_callback_add(emission, source, func, data) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_ADD), EO_TYPECHECK(const char *, emission), EO_TYPECHECK(const char *, source), EO_TYPECHECK(Edje_Signal_Cb, func), EO_TYPECHECK(void *, data)
1116#define edje_obj_signal_callback_del(emission, source, func, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL), EO_TYPECHECK(const char *, emission), EO_TYPECHECK(const char *, source), EO_TYPECHECK(Edje_Signal_Cb, func), EO_TYPECHECK(void **, ret)
1117#define edje_obj_signal_callback_del_full(emission, source, func, data, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL_FULL), EO_TYPECHECK(const char *, emission), EO_TYPECHECK(const char *, source), EO_TYPECHECK(Edje_Signal_Cb, func), EO_TYPECHECK(void *, data), EO_TYPECHECK(void **, ret)
1118#define edje_obj_signal_emit(emission, source) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_EMIT), EO_TYPECHECK(const char *, emission), EO_TYPECHECK(const char *, source)
1119#define edje_obj_play_set(play) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_SET), EO_TYPECHECK(Eina_Bool, play)
1120#define edje_obj_play_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_GET), EO_TYPECHECK(Eina_Bool *, ret)
1121#define edje_obj_animation_set(on) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_SET), EO_TYPECHECK(Eina_Bool, on)
1122#define edje_obj_animation_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_GET), EO_TYPECHECK(Eina_Bool *, ret)
1123
1124#define EDJE_EDIT_CLASS edje_edit_class_get()
1125
1126const Eo_Class *edje_edit_class_get(void) EINA_CONST;
1127
819/** 1128/**
820 * @defgroup Edje_External_Part_Group Edje Use of External Parts 1129 * @defgroup Edje_External_Part_Group Edje Use of External Parts
821 * 1130 *
diff --git a/legacy/edje/src/lib/edje_box_layout.c b/legacy/edje/src/lib/edje_box_layout.c
index 8867fe09ef..66b71c9f99 100644
--- a/legacy/edje/src/lib/edje_box_layout.c
+++ b/legacy/edje/src/lib/edje_box_layout.c
@@ -1,5 +1,7 @@
1#include "edje_private.h" 1#include "edje_private.h"
2 2
3#include <Eo.h>
4
3typedef struct _Edje_Transition_Animation_Data Edje_Transition_Animation_Data; 5typedef struct _Edje_Transition_Animation_Data Edje_Transition_Animation_Data;
4struct _Edje_Transition_Animation_Data 6struct _Edje_Transition_Animation_Data
5{ 7{
@@ -169,7 +171,7 @@ _edje_box_recalc_apply(Edje *ed __UNUSED__, Edje_Real_Part *ep, Edje_Calc_Params
169 ep->typedata.container->anim->end.align.x = param2_desc->box.align.x; 171 ep->typedata.container->anim->end.align.x = param2_desc->box.align.x;
170 ep->typedata.container->anim->end.align.y = param2_desc->box.align.y; 172 ep->typedata.container->anim->end.align.y = param2_desc->box.align.y;
171 173
172 priv = evas_object_smart_data_get(ep->object); 174 priv = eo_data_get(ep->object, EVAS_OBJ_BOX_CLASS);
173 if (priv == NULL) 175 if (priv == NULL)
174 return; 176 return;
175 177
diff --git a/legacy/edje/src/lib/edje_edit.c b/legacy/edje/src/lib/edje_edit.c
index c807f1bd44..3e6c41a229 100644
--- a/legacy/edje/src/lib/edje_edit.c
+++ b/legacy/edje/src/lib/edje_edit.c
@@ -12,6 +12,10 @@
12#define EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT 12#define EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT
13#include "Edje_Edit.h" 13#include "Edje_Edit.h"
14 14
15#include <Eo.h>
16
17#define MY_CLASS EDJE_EDIT_CLASS
18
15static const char EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED_STR[] = "Current group cannot be deleted"; 19static const char EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED_STR[] = "Current group cannot be deleted";
16static const char EDJE_EDIT_ERROR_GROUP_REFERENCED_STR[] = "Group still in use"; 20static const char EDJE_EDIT_ERROR_GROUP_REFERENCED_STR[] = "Group still in use";
17static const char EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST_STR[] = "Group does not exist"; 21static const char EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST_STR[] = "Group does not exist";
@@ -23,9 +27,9 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0;
23/* Get eed(Edje_Edit*) from obj(Evas_Object*) */ 27/* Get eed(Edje_Edit*) from obj(Evas_Object*) */
24#define GET_EED_OR_RETURN(RET) \ 28#define GET_EED_OR_RETURN(RET) \
25 Edje_Edit *eed; \ 29 Edje_Edit *eed; \
26 if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ 30 if (!eo_isa(obj, MY_CLASS)) \
27 return RET; \ 31 return RET; \
28 eed = evas_object_smart_data_get(obj); \ 32 eed = eo_data_get(obj, MY_CLASS); \
29 if (!eed) return RET; 33 if (!eed) return RET;
30 34
31/* Get ed(Edje*) from obj(Evas_Object*) */ 35/* Get ed(Edje*) from obj(Evas_Object*) */
@@ -39,9 +43,9 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0;
39 Edje *ed; \ 43 Edje *ed; \
40 Edje_Edit *eed; \ 44 Edje_Edit *eed; \
41 Edje_Real_Part *rp; \ 45 Edje_Real_Part *rp; \
42 if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ 46 if (!eo_isa(obj, MY_CLASS)) \
43 return RET; \ 47 return RET; \
44 eed = evas_object_smart_data_get(obj); \ 48 eed = eo_data_get(obj, MY_CLASS); \
45 if (!eed) return RET; \ 49 if (!eed) return RET; \
46 ed = (Edje *)eed; \ 50 ed = (Edje *)eed; \
47 rp = _edje_real_part_get(ed, part); \ 51 rp = _edje_real_part_get(ed, part); \
@@ -53,9 +57,9 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0;
53 Edje_Edit *eed; \ 57 Edje_Edit *eed; \
54 Edje_Real_Part *rp; \ 58 Edje_Real_Part *rp; \
55 Edje_Part_Description_Common *pd; \ 59 Edje_Part_Description_Common *pd; \
56 if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ 60 if (!eo_isa(obj, MY_CLASS)) \
57 return RET; \ 61 return RET; \
58 eed = evas_object_smart_data_get(obj); \ 62 eed = eo_data_get(obj, MY_CLASS); \
59 if (!eed) return RET; \ 63 if (!eed) return RET; \
60 ed = (Edje *)eed; \ 64 ed = (Edje *)eed; \
61 rp = _edje_real_part_get(ed, part); \ 65 rp = _edje_real_part_get(ed, part); \
@@ -66,7 +70,7 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0;
66/* Get epr(Edje_Program*) from obj(Evas_Object*) and prog(char*)*/ 70/* Get epr(Edje_Program*) from obj(Evas_Object*) and prog(char*)*/
67#define GET_EPR_OR_RETURN(RET) \ 71#define GET_EPR_OR_RETURN(RET) \
68 Edje_Program *epr; \ 72 Edje_Program *epr; \
69 if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ 73 if (!eo_isa(obj, MY_CLASS)) \
70 return RET; \ 74 return RET; \
71 epr = _edje_program_get_byname(obj, prog); \ 75 epr = _edje_program_get_byname(obj, prog); \
72 if (!epr) return RET; 76 if (!epr) return RET;
@@ -120,47 +124,8 @@ struct _Program_Script
120 Eina_Bool delete_me:1; 124 Eina_Bool delete_me:1;
121}; 125};
122 126
123static void _edje_edit_smart_add(Evas_Object *obj);
124static void _edje_edit_smart_del(Evas_Object *obj);
125
126static Eina_Bool _edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested);
127static Eina_Bool _edje_edit_edje_file_save(Eet_File *eetf, Edje_File *ef); 127static Eina_Bool _edje_edit_edje_file_save(Eet_File *eetf, Edje_File *ef);
128 128
129EVAS_SMART_SUBCLASS_NEW(_edje_edit_type, _edje_edit, Edje_Smart_Api,
130 Edje_Smart_Api, _edje_object_smart_class_get, NULL)
131
132static void
133_edje_edit_smart_set_user(Edje_Smart_Api *sc)
134{
135 sc->base.add = _edje_edit_smart_add;
136 sc->base.del = _edje_edit_smart_del;
137 sc->file_set = _edje_edit_smart_file_set;
138}
139
140static void
141_edje_edit_smart_add(Evas_Object *obj)
142{
143 Edje_Edit *eed;
144
145 eed = evas_object_smart_data_get(obj);
146 if (!eed)
147 {
148 const Evas_Smart *smart;
149 const Evas_Smart_Class *sc;
150
151 eed = calloc(1, sizeof(Edje_Edit));
152 if (!eed) return;
153
154 smart = evas_object_smart_smart_get(obj);
155 sc = evas_smart_class_get(smart);
156 eed->base.api = (const Edje_Smart_Api *)sc;
157
158 evas_object_smart_data_set(obj, eed);
159 }
160
161 _edje_edit_parent_sc->base.add(obj);
162}
163
164static void 129static void
165_edje_edit_data_clean(Edje_Edit *eed) 130_edje_edit_data_clean(Edje_Edit *eed)
166{ 131{
@@ -192,15 +157,12 @@ _edje_edit_data_clean(Edje_Edit *eed)
192} 157}
193 158
194static void 159static void
195_edje_edit_smart_del(Evas_Object *obj) 160_edje_edit_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
196{ 161{
197 Edje_Edit *eed; 162 Edje_Edit *eed = _pd;
198
199 eed = evas_object_smart_data_get(obj);
200
201 _edje_edit_data_clean(eed); 163 _edje_edit_data_clean(eed);
202 164
203 _edje_edit_parent_sc->base.del(obj); 165 eo_do_super(obj, evas_obj_smart_del());
204} 166}
205 167
206static void 168static void
@@ -211,16 +173,20 @@ _edje_edit_program_script_free(Program_Script *ps)
211 free(ps); 173 free(ps);
212} 174}
213 175
214static Eina_Bool 176static void
215_edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested) 177_edje_edit_smart_file_set(Eo *obj, void *_pd, va_list *list)
216{ 178{
217 Edje_Edit *eed; 179 const char *file = va_arg(*list, const char *);
180 const char *group= va_arg(*list, const char *);
181 Eina_Array *nested = va_arg(*list, Eina_Array *);
182 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
183 Edje_Edit *eed = _pd;
218 Eet_File *ef; 184 Eet_File *ef;
219 char **keys, buf[64]; 185 char **keys, buf[64];
220 int count, i; 186 int count, i;
221 int len = strlen("edje/scripts/embryo/source/"); 187 int len = strlen("edje/scripts/embryo/source/");
222 188
223 eed = evas_object_smart_data_get(obj); 189 if (ret) *ret = EINA_FALSE;
224 190
225 _edje_edit_data_clean(eed); 191 _edje_edit_data_clean(eed);
226 192
@@ -237,8 +203,10 @@ _edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group,
237 * (GROUP parts or BOX/TABLE items pointing to non-existent/renamed 203 * (GROUP parts or BOX/TABLE items pointing to non-existent/renamed
238 * groups). 204 * groups).
239 */ 205 */
240 if (!_edje_edit_parent_sc->file_set(obj, file, group, nested)) 206 Eina_Bool int_ret = EINA_FALSE;
241 return EINA_FALSE; 207 eo_do_super(obj, edje_obj_file_set(file, group, nested, &int_ret));
208 if (!int_ret)
209 return;
242 210
243 eed->program_scripts = eina_hash_int32_new((Eina_Free_Cb)_edje_edit_program_script_free); 211 eed->program_scripts = eina_hash_int32_new((Eina_Free_Cb)_edje_edit_program_script_free);
244 212
@@ -265,7 +233,7 @@ _edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group,
265 if (keys) free(keys); 233 if (keys) free(keys);
266 eet_close(ef); 234 eet_close(ef);
267 235
268 return EINA_TRUE; 236 if (ret) *ret = EINA_TRUE;
269} 237}
270 238
271static void 239static void
@@ -280,14 +248,22 @@ _edje_edit_error_register(void)
280} 248}
281 249
282EAPI Evas_Object * 250EAPI Evas_Object *
283edje_edit_object_add(Evas *e) 251edje_edit_object_add(Evas *evas)
284{ 252{
253 Evas_Object *e;
254 e = eo_add(MY_CLASS, evas);
255 eo_unref(e);
256 return e;
257}
258
259static void
260_constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED)
261{
262 eo_do_super(obj, eo_constructor());
285 eina_error_set(0); 263 eina_error_set(0);
286 264
287 if (!EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST) 265 if (!EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST)
288 _edje_edit_error_register(); 266 _edje_edit_error_register();
289
290 return evas_object_smart_add(e, _edje_edit_smart_class_new());
291} 267}
292/* End of Edje_Edit smart stuff */ 268/* End of Edje_Edit smart stuff */
293 269
@@ -462,7 +438,7 @@ _edje_import_image_file(Edje *ed, const char *path, int id)
462 int bytes; 438 int bytes;
463 439
464 /* Try to load the file */ 440 /* Try to load the file */
465 im = evas_object_image_add(ed->base.evas); 441 im = evas_object_image_add(ed->base->evas);
466 if (!im) return EINA_FALSE; 442 if (!im) return EINA_FALSE;
467 443
468 evas_object_image_file_set(im, path, NULL); 444 evas_object_image_file_set(im, path, NULL);
@@ -870,7 +846,7 @@ _edje_edit_group_references_update(Evas_Object *obj, const char *old_group_name,
870 846
871// pc = ed->collection; 847// pc = ed->collection;
872 848
873 part_obj = edje_edit_object_add(ed->base.evas); 849 part_obj = edje_edit_object_add(ed->base->evas);
874 850
875 old = eina_stringshare_add(old_group_name); 851 old = eina_stringshare_add(old_group_name);
876 852
@@ -2101,26 +2077,26 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type
2101 rp->part = ep; 2077 rp->part = ep;
2102 2078
2103 if (ep->type == EDJE_PART_TYPE_RECTANGLE) 2079 if (ep->type == EDJE_PART_TYPE_RECTANGLE)
2104 rp->object = evas_object_rectangle_add(ed->base.evas); 2080 rp->object = evas_object_rectangle_add(ed->base->evas);
2105 else if (ep->type == EDJE_PART_TYPE_IMAGE || ep->type == EDJE_PART_TYPE_PROXY) 2081 else if (ep->type == EDJE_PART_TYPE_IMAGE || ep->type == EDJE_PART_TYPE_PROXY)
2106 rp->object = evas_object_image_add(ed->base.evas); 2082 rp->object = evas_object_image_add(ed->base->evas);
2107 else if (ep->type == EDJE_PART_TYPE_TEXT) 2083 else if (ep->type == EDJE_PART_TYPE_TEXT)
2108 { 2084 {
2109 _edje_text_part_on_add(ed, rp); 2085 _edje_text_part_on_add(ed, rp);
2110 rp->object = evas_object_text_add(ed->base.evas); 2086 rp->object = evas_object_text_add(ed->base->evas);
2111 evas_object_text_font_source_set(rp->object, ed->path); 2087 evas_object_text_font_source_set(rp->object, ed->path);
2112 } 2088 }
2113 else if (ep->type == EDJE_PART_TYPE_SWALLOW || 2089 else if (ep->type == EDJE_PART_TYPE_SWALLOW ||
2114 ep->type == EDJE_PART_TYPE_GROUP || 2090 ep->type == EDJE_PART_TYPE_GROUP ||
2115 ep->type == EDJE_PART_TYPE_EXTERNAL) 2091 ep->type == EDJE_PART_TYPE_EXTERNAL)
2116 { 2092 {
2117 rp->object = evas_object_rectangle_add(ed->base.evas); 2093 rp->object = evas_object_rectangle_add(ed->base->evas);
2118 evas_object_color_set(rp->object, 0, 0, 0, 0); 2094 evas_object_color_set(rp->object, 0, 0, 0, 0);
2119 evas_object_pass_events_set(rp->object, 1); 2095 evas_object_pass_events_set(rp->object, 1);
2120 evas_object_pointer_mode_set(rp->object, EVAS_OBJECT_POINTER_MODE_NOGRAB); 2096 evas_object_pointer_mode_set(rp->object, EVAS_OBJECT_POINTER_MODE_NOGRAB);
2121 } 2097 }
2122 else if (ep->type == EDJE_PART_TYPE_TEXTBLOCK) 2098 else if (ep->type == EDJE_PART_TYPE_TEXTBLOCK)
2123 rp->object = evas_object_textblock_add(ed->base.evas); 2099 rp->object = evas_object_textblock_add(ed->base->evas);
2124 else if (ep->type != EDJE_PART_TYPE_SPACER) 2100 else if (ep->type != EDJE_PART_TYPE_SPACER)
2125 ERR("wrong part type %i!", ep->type); 2101 ERR("wrong part type %i!", ep->type);
2126 if (rp->object) 2102 if (rp->object)
@@ -2155,8 +2131,8 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type
2155 if (child) 2131 if (child)
2156 _edje_real_part_swallow(rp, child, EINA_TRUE); 2132 _edje_real_part_swallow(rp, child, EINA_TRUE);
2157 } 2133 }
2158 evas_object_clip_set(rp->object, ed->base.clipper); 2134 evas_object_clip_set(rp->object, ed->base->clipper);
2159 evas_object_show(ed->base.clipper); 2135 evas_object_show(ed->base->clipper);
2160 } 2136 }
2161 2137
2162 /* Update table_parts */ 2138 /* Update table_parts */
@@ -2256,7 +2232,7 @@ edje_edit_part_del(Evas_Object *obj, const char* part)
2256 2232
2257 if (real->clip_to == rp) 2233 if (real->clip_to == rp)
2258 { 2234 {
2259 evas_object_clip_set(real->object, ed->base.clipper); 2235 evas_object_clip_set(real->object, ed->base->clipper);
2260 real->clip_to = NULL; 2236 real->clip_to = NULL;
2261 } 2237 }
2262 if (real->drag && real->drag->confine_to == rp) 2238 if (real->drag && real->drag->confine_to == rp)
@@ -2298,7 +2274,7 @@ edje_edit_part_del(Evas_Object *obj, const char* part)
2298 2274
2299 /* if all parts are gone, hide the clipper */ 2275 /* if all parts are gone, hide the clipper */
2300 if (ed->table_parts_size == 0) 2276 if (ed->table_parts_size == 0)
2301 evas_object_hide(ed->base.clipper); 2277 evas_object_hide(ed->base->clipper);
2302 2278
2303 edje_object_calc_force(obj); 2279 edje_object_calc_force(obj);
2304 2280
@@ -2507,9 +2483,9 @@ edje_edit_part_clip_to_set(Evas_Object *obj, const char *part, const char *clip_
2507 evas_object_clip_unset(rp->object); 2483 evas_object_clip_unset(rp->object);
2508 } 2484 }
2509 2485
2510 evas_object_clip_set(rp->object, ed->base.clipper); 2486 evas_object_clip_set(rp->object, ed->base->clipper);
2511 if (rp->typedata.swallow->swallowed_object) 2487 if (rp->typedata.swallow->swallowed_object)
2512 evas_object_clip_set(rp->typedata.swallow->swallowed_object, ed->base.clipper); 2488 evas_object_clip_set(rp->typedata.swallow->swallowed_object, ed->base->clipper);
2513 2489
2514 rp->part->clip_to_id = -1; 2490 rp->part->clip_to_id = -1;
2515 rp->clip_to = NULL; 2491 rp->clip_to = NULL;
@@ -2692,7 +2668,7 @@ edje_edit_part_source_set(Evas_Object *obj, const char *part, const char *source
2692 if (source) 2668 if (source)
2693 { 2669 {
2694 rp->part->source = eina_stringshare_add(source); 2670 rp->part->source = eina_stringshare_add(source);
2695 child_obj = edje_object_add(ed->base.evas); 2671 child_obj = edje_object_add(ed->base->evas);
2696 edje_object_file_set(child_obj, ed->file->path, source); 2672 edje_object_file_set(child_obj, ed->file->path, source);
2697 _edje_real_part_swallow(rp, child_obj, EINA_TRUE); 2673 _edje_real_part_swallow(rp, child_obj, EINA_TRUE);
2698 } 2674 }
@@ -7185,7 +7161,7 @@ _edje_generate_source_of_group(Edje *ed, Edje_Part_Collection_Directory_Entry *p
7185 Edje_Part_Collection *pc; 7161 Edje_Part_Collection *pc;
7186 Eina_Bool ret = EINA_TRUE; 7162 Eina_Bool ret = EINA_TRUE;
7187 7163
7188 obj = edje_edit_object_add(ed->base.evas); 7164 obj = edje_edit_object_add(ed->base->evas);
7189 if (!edje_object_file_set(obj, ed->file->path, group)) return EINA_FALSE; 7165 if (!edje_object_file_set(obj, ed->file->path, group)) return EINA_FALSE;
7190 7166
7191 ef = eet_open(ed->file->path, EET_FILE_MODE_READ); 7167 ef = eet_open(ed->file->path, EET_FILE_MODE_READ);
@@ -7195,7 +7171,7 @@ _edje_generate_source_of_group(Edje *ed, Edje_Part_Collection_Directory_Entry *p
7195 return EINA_FALSE; 7171 return EINA_FALSE;
7196 } 7172 }
7197 7173
7198 eed = evas_object_smart_data_get(obj); 7174 eed = eo_data_get(obj, MY_CLASS);
7199 pc = eed->base.collection; 7175 pc = eed->base.collection;
7200 7176
7201 BUF_APPENDF(I1"group { name: \"%s\";\n", group); 7177 BUF_APPENDF(I1"group { name: \"%s\";\n", group);
@@ -7823,3 +7799,30 @@ edje_edit_print_internal_status(Evas_Object *obj)
7823 INF("****************** END ************************"); 7799 INF("****************** END ************************");
7824 */ 7800 */
7825} 7801}
7802
7803static void
7804_class_constructor(Eo_Class *klass)
7805{
7806 const Eo_Op_Func_Description func_desc[] = {
7807 EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
7808 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _edje_edit_smart_del),
7809 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_SET), _edje_edit_smart_file_set),
7810 EO_OP_FUNC_SENTINEL
7811 };
7812
7813 eo_class_funcs_set(klass, func_desc);
7814}
7815
7816static const Eo_Class_Description class_desc = {
7817 EO_VERSION,
7818 "Edje_Edit",
7819 EO_CLASS_TYPE_REGULAR,
7820 EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0),
7821 NULL,
7822 sizeof(Edje_Edit),
7823 _class_constructor,
7824 NULL
7825};
7826
7827EO_DEFINE_CLASS(edje_edit_class_get, &class_desc, EDJE_OBJ_CLASS, NULL);
7828
diff --git a/legacy/edje/src/lib/edje_embryo.c b/legacy/edje/src/lib/edje_embryo.c
index 9feb539dbf..cad3b60e76 100644
--- a/legacy/edje/src/lib/edje_embryo.c
+++ b/legacy/edje/src/lib/edje_embryo.c
@@ -768,7 +768,7 @@ _edje_embryo_fn_get_mouse(Embryo_Program *ep, Embryo_Cell *params)
768 768
769 CHKPARAM(2); 769 CHKPARAM(2);
770 ed = embryo_program_data_get(ep); 770 ed = embryo_program_data_get(ep);
771 evas_pointer_canvas_xy_get(ed->base.evas, &x, &y); 771 evas_pointer_canvas_xy_get(ed->base->evas, &x, &y);
772 x -= ed->x; 772 x -= ed->x;
773 y -= ed->y; 773 y -= ed->y;
774 SETINT((int)x, params[1]); 774 SETINT((int)x, params[1]);
@@ -784,7 +784,7 @@ _edje_embryo_fn_get_mouse_buttons(Embryo_Program *ep, Embryo_Cell *params)
784 784
785 CHKPARAM(0); 785 CHKPARAM(0);
786 ed = embryo_program_data_get(ep); 786 ed = embryo_program_data_get(ep);
787 return evas_pointer_button_down_mask_get(ed->base.evas); 787 return evas_pointer_button_down_mask_get(ed->base->evas);
788} 788}
789 789
790/* emit(sig[], src[]) */ 790/* emit(sig[], src[]) */
@@ -2608,7 +2608,7 @@ _edje_embryo_fn_part_swallow(Embryo_Program *ep, Embryo_Cell *params)
2608 rp = ed->table_parts[part_id % ed->table_parts_size]; 2608 rp = ed->table_parts[part_id % ed->table_parts_size];
2609 if (!rp) return 0; 2609 if (!rp) return 0;
2610 2610
2611 new_obj = edje_object_add(ed->base.evas); 2611 new_obj = edje_object_add(ed->base->evas);
2612 if (!new_obj) return 0; 2612 if (!new_obj) return 0;
2613 2613
2614 if (!edje_object_file_set(new_obj, ed->file->path, group_name)) 2614 if (!edje_object_file_set(new_obj, ed->file->path, group_name))
diff --git a/legacy/edje/src/lib/edje_entry.c b/legacy/edje/src/lib/edje_entry.c
index eec75caa2b..b644560a9b 100644
--- a/legacy/edje/src/lib/edje_entry.c
+++ b/legacy/edje/src/lib/edje_entry.c
@@ -578,7 +578,7 @@ _sel_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en)
578 578
579 sel = calloc(1, sizeof(Sel)); 579 sel = calloc(1, sizeof(Sel));
580 en->sel = eina_list_append(en->sel, sel); 580 en->sel = eina_list_append(en->sel, sel);
581 ob = edje_object_add(en->rp->edje->base.evas); 581 ob = edje_object_add(en->rp->edje->base->evas);
582 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source); 582 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source);
583 evas_object_smart_member_add(ob, smart); 583 evas_object_smart_member_add(ob, smart);
584 evas_object_stack_below(ob, o); 584 evas_object_stack_below(ob, o);
@@ -588,7 +588,7 @@ _sel_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en)
588 sel->obj_bg = ob; 588 sel->obj_bg = ob;
589 _edje_subobj_register(en->rp->edje, sel->obj_bg); 589 _edje_subobj_register(en->rp->edje, sel->obj_bg);
590 590
591 ob = edje_object_add(en->rp->edje->base.evas); 591 ob = edje_object_add(en->rp->edje->base->evas);
592 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source2); 592 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source2);
593 evas_object_smart_member_add(ob, smart); 593 evas_object_smart_member_add(ob, smart);
594 evas_object_stack_above(ob, o); 594 evas_object_stack_above(ob, o);
@@ -846,7 +846,7 @@ _anchors_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en)
846 846
847 sel = calloc(1, sizeof(Sel)); 847 sel = calloc(1, sizeof(Sel));
848 an->sel = eina_list_append(an->sel, sel); 848 an->sel = eina_list_append(an->sel, sel);
849 ob = edje_object_add(en->rp->edje->base.evas); 849 ob = edje_object_add(en->rp->edje->base->evas);
850 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source5); 850 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source5);
851 evas_object_smart_member_add(ob, smart); 851 evas_object_smart_member_add(ob, smart);
852 evas_object_stack_below(ob, o); 852 evas_object_stack_below(ob, o);
@@ -856,7 +856,7 @@ _anchors_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en)
856 sel->obj_bg = ob; 856 sel->obj_bg = ob;
857 _edje_subobj_register(en->rp->edje, sel->obj_bg); 857 _edje_subobj_register(en->rp->edje, sel->obj_bg);
858 858
859 ob = edje_object_add(en->rp->edje->base.evas); 859 ob = edje_object_add(en->rp->edje->base->evas);
860 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source6); 860 edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source6);
861 evas_object_smart_member_add(ob, smart); 861 evas_object_smart_member_add(ob, smart);
862 evas_object_stack_above(ob, o); 862 evas_object_stack_above(ob, o);
@@ -866,7 +866,7 @@ _anchors_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en)
866 sel->obj_fg = ob; 866 sel->obj_fg = ob;
867 _edje_subobj_register(en->rp->edje, sel->obj_fg); 867 _edje_subobj_register(en->rp->edje, sel->obj_fg);
868 868
869 ob = evas_object_rectangle_add(en->rp->edje->base.evas); 869 ob = evas_object_rectangle_add(en->rp->edje->base->evas);
870 evas_object_color_set(ob, 0, 0, 0, 0); 870 evas_object_color_set(ob, 0, 0, 0, 0);
871 evas_object_smart_member_add(ob, smart); 871 evas_object_smart_member_add(ob, smart);
872 evas_object_stack_above(ob, o); 872 evas_object_stack_above(ob, o);
@@ -2229,8 +2229,8 @@ _edje_entry_init(Edje *ed)
2229 evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb, ed); 2229 evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb, ed);
2230 evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb, ed); 2230 evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb, ed);
2231 evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb, ed); 2231 evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb, ed);
2232 evas_event_callback_add(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed); 2232 evas_event_callback_add(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed);
2233 evas_event_callback_add(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed); 2233 evas_event_callback_add(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed);
2234} 2234}
2235 2235
2236void 2236void
@@ -2246,9 +2246,9 @@ _edje_entry_shutdown(Edje *ed)
2246 evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb); 2246 evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb);
2247 evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb); 2247 evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb);
2248 evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb); 2248 evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb);
2249 if (evas_event_callback_del_full(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed) != ed) 2249 if (evas_event_callback_del_full(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed) != ed)
2250 ERR("could not unregister EVAS_CALLBACK_FOCUS_IN"); 2250 ERR("could not unregister EVAS_CALLBACK_FOCUS_IN");
2251 if (evas_event_callback_del_full(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed) != ed) 2251 if (evas_event_callback_del_full(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed) != ed)
2252 ERR("could not unregister EVAS_CALLBACK_FOCUS_OUT"); 2252 ERR("could not unregister EVAS_CALLBACK_FOCUS_OUT");
2253} 2253}
2254 2254
@@ -2290,7 +2290,7 @@ _edje_entry_real_part_init(Edje_Real_Part *rp)
2290 evas_object_textblock_replace_char_set(rp->object, "*"); 2290 evas_object_textblock_replace_char_set(rp->object, "*");
2291 } 2291 }
2292 2292
2293 en->cursor_bg = edje_object_add(rp->edje->base.evas); 2293 en->cursor_bg = edje_object_add(rp->edje->base->evas);
2294 edje_object_file_set(en->cursor_bg, rp->edje->path, rp->part->source3); 2294 edje_object_file_set(en->cursor_bg, rp->edje->path, rp->part->source3);
2295 evas_object_smart_member_add(en->cursor_bg, rp->edje->obj); 2295 evas_object_smart_member_add(en->cursor_bg, rp->edje->obj);
2296 evas_object_stack_below(en->cursor_bg, rp->object); 2296 evas_object_stack_below(en->cursor_bg, rp->object);
@@ -2298,7 +2298,7 @@ _edje_entry_real_part_init(Edje_Real_Part *rp)
2298 evas_object_pass_events_set(en->cursor_bg, EINA_TRUE); 2298 evas_object_pass_events_set(en->cursor_bg, EINA_TRUE);
2299 _edje_subobj_register(en->rp->edje, en->cursor_bg); 2299 _edje_subobj_register(en->rp->edje, en->cursor_bg);
2300 2300
2301 en->cursor_fg = edje_object_add(rp->edje->base.evas); 2301 en->cursor_fg = edje_object_add(rp->edje->base->evas);
2302 edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4); 2302 edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4);
2303 evas_object_smart_member_add(en->cursor_fg, rp->edje->obj); 2303 evas_object_smart_member_add(en->cursor_fg, rp->edje->obj);
2304 evas_object_stack_above(en->cursor_fg, rp->object); 2304 evas_object_stack_above(en->cursor_fg, rp->object);
@@ -2346,8 +2346,8 @@ _edje_entry_real_part_init(Edje_Real_Part *rp)
2346 ecore_imf_context_client_window_set 2346 ecore_imf_context_client_window_set
2347 (en->imf_context, 2347 (en->imf_context,
2348 (void *)ecore_evas_window_get 2348 (void *)ecore_evas_window_get
2349 (ecore_evas_ecore_evas_get(rp->edje->base.evas))); 2349 (ecore_evas_ecore_evas_get(rp->edje->base->evas)));
2350 ecore_imf_context_client_canvas_set(en->imf_context, rp->edje->base.evas); 2350 ecore_imf_context_client_canvas_set(en->imf_context, rp->edje->base->evas);
2351 2351
2352 ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context, 2352 ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context,
2353 _edje_entry_imf_retrieve_surrounding_cb, rp->edje); 2353 _edje_entry_imf_retrieve_surrounding_cb, rp->edje);
diff --git a/legacy/edje/src/lib/edje_external.c b/legacy/edje/src/lib/edje_external.c
index 9497c7be94..0b265779f7 100644
--- a/legacy/edje/src/lib/edje_external.c
+++ b/legacy/edje/src/lib/edje_external.c
@@ -26,11 +26,22 @@ edje_external_param_type_str(Edje_External_Param_Type type)
26EAPI Evas_Object * 26EAPI Evas_Object *
27edje_object_part_external_object_get(const Evas_Object *obj, const char *part) 27edje_object_part_external_object_get(const Evas_Object *obj, const char *part)
28{ 28{
29 Edje *ed; 29 if (!obj) return NULL;
30 Evas_Object *ret = NULL;
31 eo_do((Eo *)obj, edje_obj_part_external_object_get(part, &ret));
32 return ret;
33}
34
35void
36_part_external_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
37{
38 const char *part = va_arg(*list, const char *);
39 Evas_Object **ret = va_arg(*list, Evas_Object **);
40 Edje *ed = (Edje *)_pd;
30 Edje_Real_Part *rp; 41 Edje_Real_Part *rp;
42 *ret = NULL;
31 43
32 ed = _edje_fetch(obj); 44 if ((!ed) || (!part)) return;
33 if ((!ed) || (!part)) return NULL;
34 45
35 /* Need to recalc before providing the object. */ 46 /* Need to recalc before providing the object. */
36 _edje_recalc_do(ed); 47 _edje_recalc_do(ed);
@@ -39,59 +50,86 @@ edje_object_part_external_object_get(const Evas_Object *obj, const char *part)
39 if (!rp) 50 if (!rp)
40 { 51 {
41 ERR("no part '%s'", part); 52 ERR("no part '%s'", part);
42 return NULL; 53 return;
43 } 54 }
44 if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) 55 if (rp->part->type != EDJE_PART_TYPE_EXTERNAL)
45 { 56 {
46 ERR("cannot get external object of a part '%s' that is not EXTERNAL", 57 ERR("cannot get external object of a part '%s' that is not EXTERNAL",
47 rp->part->name); 58 rp->part->name);
48 return NULL; 59 return;
49 } 60 }
50 if ((rp->type != EDJE_RP_TYPE_SWALLOW) || 61 if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
51 (!rp->typedata.swallow)) return NULL; 62 (!rp->typedata.swallow)) return;
52 return rp->typedata.swallow->swallowed_object; 63 *ret = rp->typedata.swallow->swallowed_object;
53} 64}
54 65
55EAPI Eina_Bool 66EAPI Eina_Bool
56edje_object_part_external_param_set(Evas_Object *obj, const char *part, const Edje_External_Param *param) 67edje_object_part_external_param_set(Evas_Object *obj, const char *part, const Edje_External_Param *param)
57{ 68{
58 Edje *ed; 69 if (!obj) return EINA_FALSE;
70 Eina_Bool ret = EINA_FALSE;
71 eo_do(obj, edje_obj_part_external_param_set(part, param, &ret));
72 return ret;
73}
74
75void
76_part_external_param_set(Eo *obj, void *_pd, va_list *list)
77{
78 const char *part = va_arg(*list, const char *);
79 const Edje_External_Param *param = va_arg(*list, const Edje_External_Param *);
80 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
81 if (ret) *ret = EINA_FALSE;
82
83 Edje *ed = _pd;
59 Edje_Real_Part *rp; 84 Edje_Real_Part *rp;
60 85
61 if ((!param) || (!param->name)) return EINA_FALSE; 86 if ((!param) || (!param->name)) return;
62 87
63 ed = _edje_fetch(obj); 88 if ((!ed) || (!part)) return;
64 if ((!ed) || (!part)) return EINA_FALSE;
65 89
66 rp = _edje_real_part_recursive_get(ed, (char *)part); 90 rp = _edje_real_part_recursive_get(ed, (char *)part);
67 if (!rp) 91 if (!rp)
68 { 92 {
69 ERR("no part '%s'", part); 93 ERR("no part '%s'", part);
70 return EINA_FALSE; 94 return;
71 } 95 }
72 96
73 return _edje_external_param_set(obj, rp, param); 97 if (_edje_external_param_set(obj, rp, param))
98 if (ret) *ret = EINA_TRUE;
74} 99}
75 100
76EAPI Eina_Bool 101EAPI Eina_Bool
77edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Edje_External_Param *param) 102edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Edje_External_Param *param)
78{ 103{
79 Edje *ed; 104 if (!obj) return EINA_FALSE;
105 Eina_Bool ret = EINA_FALSE;
106 eo_do((Eo *)obj, edje_obj_part_external_param_get(part, param, &ret));
107 return ret;
108}
109
110void
111_part_external_param_get(Eo *obj, void *_pd, va_list *list)
112{
113 const char *part = va_arg(*list, const char *);
114 Edje_External_Param *param = va_arg(*list, Edje_External_Param *);
115 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
116 *ret = EINA_FALSE;
117
118 const Edje *ed = _pd;
80 Edje_Real_Part *rp; 119 Edje_Real_Part *rp;
81 120
82 if ((!param) || (!param->name)) return EINA_FALSE; 121 if ((!param) || (!param->name)) return;
83 122
84 ed = _edje_fetch(obj); 123 if ((!ed) || (!part)) return;
85 if ((!ed) || (!part)) return EINA_FALSE;
86 124
87 rp = _edje_real_part_recursive_get(ed, (char *)part); 125 rp = _edje_real_part_recursive_get(ed, (char *)part);
88 if (!rp) 126 if (!rp)
89 { 127 {
90 ERR("no part '%s'", part); 128 ERR("no part '%s'", part);
91 return EINA_FALSE; 129 return;
92 } 130 }
93 131
94 return _edje_external_param_get(obj, rp, param); 132 *ret = _edje_external_param_get(obj, rp, param);
95} 133}
96 134
97 135
@@ -99,62 +137,90 @@ edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Ed
99EAPI Evas_Object * 137EAPI Evas_Object *
100edje_object_part_external_content_get(const Evas_Object *obj, const char *part, const char *content) 138edje_object_part_external_content_get(const Evas_Object *obj, const char *part, const char *content)
101{ 139{
102 Edje *ed; 140 if (!obj) return NULL;
141 Evas_Object *ret = NULL;
142 eo_do((Eo *)obj, edje_obj_part_external_content_get(part, content, &ret));
143 return ret;
144}
145
146void
147_part_external_content_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
148{
149 const char *part = va_arg(*list, const char *);
150 const char *content = va_arg(*list, const char *);
151 Evas_Object **ret = va_arg(*list, Evas_Object **);
152 *ret = NULL;
153
154 const Edje *ed = _pd;
103 Edje_Real_Part *rp; 155 Edje_Real_Part *rp;
104 156
105 if (!content) return EINA_FALSE; 157 if (!content) return;
106 158
107 ed = _edje_fetch(obj); 159 if ((!ed) || (!part)) return;
108 if ((!ed) || (!part)) return EINA_FALSE;
109 160
110 rp = _edje_real_part_recursive_get(ed, (char *)part); 161 rp = _edje_real_part_recursive_get(ed, (char *)part);
111 if (!rp) 162 if (!rp)
112 { 163 {
113 ERR("no part '%s'", part); 164 ERR("no part '%s'", part);
114 return EINA_FALSE; 165 return;
115 } 166 }
116 if ((rp->type != EDJE_RP_TYPE_SWALLOW) || 167 if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
117 (!rp->typedata.swallow)) return NULL; 168 (!rp->typedata.swallow)) return;
118 return _edje_external_content_get(rp->typedata.swallow->swallowed_object, content); 169 *ret = _edje_external_content_get(rp->typedata.swallow->swallowed_object, content);
119} 170}
120 171
121EAPI Edje_External_Param_Type 172EAPI Edje_External_Param_Type
122edje_object_part_external_param_type_get(const Evas_Object *obj, const char *part, const char *param) 173edje_object_part_external_param_type_get(const Evas_Object *obj, const char *part, const char *param)
123{ 174{
124 Edje *ed; 175 if (!obj) return EDJE_EXTERNAL_PARAM_TYPE_MAX;
176 Edje_External_Param_Type ret = EDJE_EXTERNAL_PARAM_TYPE_MAX;
177 eo_do((Eo *)obj, edje_obj_part_external_param_type_get(part, param, &ret));
178 return ret;
179}
180
181void
182_part_external_param_type_get(Eo *obj, void *_pd, va_list *list)
183{
184 const char *part = va_arg(*list, const char *);
185 const char *param = va_arg(*list, const char *);
186 Edje_External_Param_Type *ret = va_arg(*list, Edje_External_Param_Type *);
187 *ret = EDJE_EXTERNAL_PARAM_TYPE_MAX;
188
189 const Edje *ed = _pd;
125 Edje_Real_Part *rp; 190 Edje_Real_Part *rp;
126 Edje_External_Type *type; 191 Edje_External_Type *type;
127 Edje_External_Param_Info *info; 192 Edje_External_Param_Info *info;
128 193
129 ed = _edje_fetch(obj); 194 if ((!ed) || (!part)) return;
130 if ((!ed) || (!part)) return EDJE_EXTERNAL_PARAM_TYPE_MAX;
131 195
132 rp = _edje_real_part_recursive_get(ed, (char *)part); 196 rp = _edje_real_part_recursive_get(ed, (char *)part);
133 if (!rp) 197 if (!rp)
134 { 198 {
135 ERR("no part '%s'", part); 199 ERR("no part '%s'", part);
136 return EDJE_EXTERNAL_PARAM_TYPE_MAX; 200 return;
137 } 201 }
138 if ((rp->type != EDJE_RP_TYPE_SWALLOW) || 202 if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
139 (!rp->typedata.swallow)) return EDJE_EXTERNAL_PARAM_TYPE_MAX; 203 (!rp->typedata.swallow)) return;
140 type = evas_object_data_get(rp->typedata.swallow->swallowed_object, "Edje_External_Type"); 204 type = evas_object_data_get(rp->typedata.swallow->swallowed_object, "Edje_External_Type");
141 if (!type) 205 if (!type)
142 { 206 {
143 ERR("no external type for object %p", obj); 207 ERR("no external type for object %p", obj);
144 return EDJE_EXTERNAL_PARAM_TYPE_MAX; 208 return;
145 } 209 }
146 if (!type->parameters_info) 210 if (!type->parameters_info)
147 { 211 {
148 ERR("no parameters information for external type '%s'", 212 ERR("no parameters information for external type '%s'",
149 type->module_name); 213 type->module_name);
150 return EDJE_EXTERNAL_PARAM_TYPE_MAX; 214 return;
151 } 215 }
152 for (info = type->parameters_info; info->name; info++) 216 for (info = type->parameters_info; info->name; info++)
153 if (strcmp(info->name, param) == 0) 217 if (strcmp(info->name, param) == 0)
154 return info->type; 218 {
219 *ret = info->type;
220 return;
221 }
155 222
156 ERR("no parameter '%s' external type '%s'", param, type->module_name); 223 ERR("no parameter '%s' external type '%s'", param, type->module_name);
157 return EDJE_EXTERNAL_PARAM_TYPE_MAX;
158} 224}
159 225
160 226
diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c
index 323ec7e106..c9c3444e29 100644
--- a/legacy/edje/src/lib/edje_load.c
+++ b/legacy/edje/src/lib/edje_load.c
@@ -73,16 +73,12 @@ static int _sort_defined_boxes(const void *a, const void *b);
73EAPI Eina_Bool 73EAPI Eina_Bool
74edje_object_file_set(Evas_Object *obj, const char *file, const char *group) 74edje_object_file_set(Evas_Object *obj, const char *file, const char *group)
75{ 75{
76 Eina_Bool ret; 76 if (!obj) return EINA_FALSE;
77 Edje *ed; 77 Eina_Bool ret = EINA_FALSE;
78 Eina_Array *nested; 78 Eina_Array *nested;
79 79
80 ed = _edje_fetch(obj);
81 if (!ed)
82 return EINA_FALSE;
83
84 nested = eina_array_new(8); 80 nested = eina_array_new(8);
85 ret = ed->api->file_set(obj, file, group, nested); 81 eo_do(obj, edje_obj_file_set(file, group, nested, &ret));
86 eina_array_free(nested); 82 eina_array_free(nested);
87 nested = NULL; 83 nested = NULL;
88 84
@@ -93,15 +89,16 @@ edje_object_file_set(Evas_Object *obj, const char *file, const char *group)
93EAPI void 89EAPI void
94edje_object_file_get(const Evas_Object *obj, const char **file, const char **group) 90edje_object_file_get(const Evas_Object *obj, const char **file, const char **group)
95{ 91{
96 Edje *ed; 92 if (!obj) return;
93 eo_do((Eo *)obj, edje_obj_file_get(file, group));
94}
97 95
98 ed = _edje_fetch(obj); 96void
99 if (!ed) 97_file_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
100 { 98{
101 if (file) *file = NULL; 99 const char **file = va_arg(*list, const char **);
102 if (group) *group = NULL; 100 const char **group = va_arg(*list, const char **);
103 return; 101 const Edje *ed = _pd;
104 }
105 if (file) *file = ed->path; 102 if (file) *file = ed->path;
106 if (group) *group = ed->group; 103 if (group) *group = ed->group;
107} 104}
@@ -109,11 +106,18 @@ edje_object_file_get(const Evas_Object *obj, const char **file, const char **gro
109EAPI Edje_Load_Error 106EAPI Edje_Load_Error
110edje_object_load_error_get(const Evas_Object *obj) 107edje_object_load_error_get(const Evas_Object *obj)
111{ 108{
112 Edje *ed; 109 if (!obj) return EDJE_LOAD_ERROR_NONE;
110 Edje_Load_Error ret = EDJE_LOAD_ERROR_NONE;
111 eo_do((Eo *)obj, edje_obj_load_error_get(&ret));
112 return ret;
113}
113 114
114 ed = _edje_fetch(obj); 115void
115 if (!ed) return EDJE_LOAD_ERROR_NONE; 116_load_error_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
116 return ed->load_error; 117{
118 Edje_Load_Error *ret = va_arg(*list, Edje_Load_Error *);
119 const Edje *ed = _pd;
120 *ret = ed->load_error;
117} 121}
118 122
119EAPI const char * 123EAPI const char *
@@ -545,15 +549,15 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
545 switch (ep->type) 549 switch (ep->type)
546 { 550 {
547 case EDJE_PART_TYPE_RECTANGLE: 551 case EDJE_PART_TYPE_RECTANGLE:
548 rp->object = evas_object_rectangle_add(ed->base.evas); 552 rp->object = evas_object_rectangle_add(ed->base->evas);
549 break; 553 break;
550 case EDJE_PART_TYPE_PROXY: 554 case EDJE_PART_TYPE_PROXY:
551 case EDJE_PART_TYPE_IMAGE: 555 case EDJE_PART_TYPE_IMAGE:
552 rp->object = evas_object_image_add(ed->base.evas); 556 rp->object = evas_object_image_add(ed->base->evas);
553 break; 557 break;
554 case EDJE_PART_TYPE_TEXT: 558 case EDJE_PART_TYPE_TEXT:
555 _edje_text_part_on_add(ed, rp); 559 _edje_text_part_on_add(ed, rp);
556 rp->object = evas_object_text_add(ed->base.evas); 560 rp->object = evas_object_text_add(ed->base->evas);
557 evas_object_text_font_source_set(rp->object, ed->path); 561 evas_object_text_font_source_set(rp->object, ed->path);
558 break; 562 break;
559 case EDJE_PART_TYPE_GROUP: 563 case EDJE_PART_TYPE_GROUP:
@@ -562,7 +566,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
562 case EDJE_PART_TYPE_EXTERNAL: 566 case EDJE_PART_TYPE_EXTERNAL:
563 if (ep->type == EDJE_PART_TYPE_EXTERNAL) 567 if (ep->type == EDJE_PART_TYPE_EXTERNAL)
564 externals = eina_list_append(externals, rp); 568 externals = eina_list_append(externals, rp);
565 rp->object = evas_object_rectangle_add(ed->base.evas); 569 rp->object = evas_object_rectangle_add(ed->base->evas);
566 evas_object_color_set(rp->object, 0, 0, 0, 0); 570 evas_object_color_set(rp->object, 0, 0, 0, 0);
567 evas_object_pass_events_set(rp->object, 1); 571 evas_object_pass_events_set(rp->object, 1);
568 evas_object_pointer_mode_set(rp->object, EVAS_OBJECT_POINTER_MODE_NOGRAB); 572 evas_object_pointer_mode_set(rp->object, EVAS_OBJECT_POINTER_MODE_NOGRAB);
@@ -570,16 +574,16 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
570 break; 574 break;
571 case EDJE_PART_TYPE_TEXTBLOCK: 575 case EDJE_PART_TYPE_TEXTBLOCK:
572 textblocks = eina_list_append(textblocks, rp); 576 textblocks = eina_list_append(textblocks, rp);
573 rp->object = evas_object_textblock_add(ed->base.evas); 577 rp->object = evas_object_textblock_add(ed->base->evas);
574 break; 578 break;
575 case EDJE_PART_TYPE_BOX: 579 case EDJE_PART_TYPE_BOX:
576 sources = eina_list_append(sources, rp); 580 sources = eina_list_append(sources, rp);
577 rp->object = evas_object_box_add(ed->base.evas); 581 rp->object = evas_object_box_add(ed->base->evas);
578 rp->typedata.container->anim = _edje_box_layout_anim_new(rp->object); 582 rp->typedata.container->anim = _edje_box_layout_anim_new(rp->object);
579 break; 583 break;
580 case EDJE_PART_TYPE_TABLE: 584 case EDJE_PART_TYPE_TABLE:
581 sources = eina_list_append(sources, rp); 585 sources = eina_list_append(sources, rp);
582 rp->object = evas_object_table_add(ed->base.evas); 586 rp->object = evas_object_table_add(ed->base->evas);
583 break; 587 break;
584 case EDJE_PART_TYPE_GRADIENT: 588 case EDJE_PART_TYPE_GRADIENT:
585 ERR("SPANK ! SPANK ! SPANK ! YOU ARE USING GRADIENT IN PART %s FROM GROUP %s INSIDE FILE %s !! THEY ARE NOW REMOVED !", 589 ERR("SPANK ! SPANK ! SPANK ! YOU ARE USING GRADIENT IN PART %s FROM GROUP %s INSIDE FILE %s !! THEY ARE NOW REMOVED !",
@@ -657,7 +661,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
657 evas_object_precise_is_inside_set(rp->object, 1); 661 evas_object_precise_is_inside_set(rp->object, 1);
658 } 662 }
659 if (rp->part->clip_to_id < 0) 663 if (rp->part->clip_to_id < 0)
660 evas_object_clip_set(rp->object, ed->base.clipper); 664 evas_object_clip_set(rp->object, ed->base->clipper);
661 } 665 }
662 } 666 }
663 if (n > 0) 667 if (n > 0)
@@ -807,9 +811,9 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
807#ifdef EDJE_CALC_CACHE 811#ifdef EDJE_CALC_CACHE
808 ed->all_part_change = EINA_TRUE; 812 ed->all_part_change = EINA_TRUE;
809#endif 813#endif
810 if ((evas_object_clipees_get(ed->base.clipper)) && 814 if ((evas_object_clipees_get(ed->base->clipper)) &&
811 (evas_object_visible_get(obj))) 815 (evas_object_visible_get(obj)))
812 evas_object_show(ed->base.clipper); 816 evas_object_show(ed->base->clipper);
813 817
814 /* instantiate 'internal swallows' */ 818 /* instantiate 'internal swallows' */
815 EINA_LIST_FREE(externals, rp) 819 EINA_LIST_FREE(externals, rp)
@@ -893,7 +897,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
893 } 897 }
894 } 898 }
895 899
896 child_obj = edje_object_add(ed->base.evas); 900 child_obj = edje_object_add(ed->base->evas);
897 group_path = eina_list_append(group_path, group_path_entry); 901 group_path = eina_list_append(group_path, group_path_entry);
898 if (rp->part->type == EDJE_PART_TYPE_GROUP) 902 if (rp->part->type == EDJE_PART_TYPE_GROUP)
899 { 903 {
diff --git a/legacy/edje/src/lib/edje_lua2.c b/legacy/edje/src/lib/edje_lua2.c
index d48b45071f..4f60e3b5aa 100644
--- a/legacy/edje/src/lib/edje_lua2.c
+++ b/legacy/edje/src/lib/edje_lua2.c
@@ -1506,7 +1506,7 @@ static void
1506_elua_polish_evas_object(Edje *ed, Edje_Lua_Evas_Object *elo) 1506_elua_polish_evas_object(Edje *ed, Edje_Lua_Evas_Object *elo)
1507{ 1507{
1508 evas_object_smart_member_add(elo->evas_obj, ed->obj); 1508 evas_object_smart_member_add(elo->evas_obj, ed->obj);
1509 evas_object_clip_set(elo->evas_obj, ed->base.clipper); 1509 evas_object_clip_set(elo->evas_obj, ed->base->clipper);
1510 evas_object_move(elo->evas_obj, ed->x, ed->y); 1510 evas_object_move(elo->evas_obj, ed->x, ed->y);
1511 evas_object_resize(elo->evas_obj, 0, 0); 1511 evas_object_resize(elo->evas_obj, 0, 0);
1512 evas_object_data_set(elo->evas_obj, ELO, elo); 1512 evas_object_data_set(elo->evas_obj, ELO, elo);
diff --git a/legacy/edje/src/lib/edje_main.c b/legacy/edje/src/lib/edje_main.c
index 36dda6f335..a87d6686e9 100644
--- a/legacy/edje/src/lib/edje_main.c
+++ b/legacy/edje/src/lib/edje_main.c
@@ -269,16 +269,15 @@ _edje_del(Edje *ed)
269 269
270 _class_member_free(ed->members.text_class, _edje_text_class_member_direct_del); 270 _class_member_free(ed->members.text_class, _edje_text_class_member_direct_del);
271 _class_member_free(ed->members.color_class, _edje_color_class_member_direct_del); 271 _class_member_free(ed->members.color_class, _edje_color_class_member_direct_del);
272 free(ed);
273} 272}
274 273
275void 274void
276_edje_clean_objects(Edje *ed) 275_edje_clean_objects(Edje *ed)
277{ 276{
278 evas_object_del(ed->base.clipper); 277 evas_object_del(ed->base->clipper);
279 ed->base.evas = NULL; 278 ed->base->evas = NULL;
280 ed->obj = NULL; 279 ed->obj = NULL;
281 ed->base.clipper = NULL; 280 ed->base->clipper = NULL;
282} 281}
283 282
284void 283void
diff --git a/legacy/edje/src/lib/edje_message_queue.c b/legacy/edje/src/lib/edje_message_queue.c
index 8112221147..7e7abbd585 100644
--- a/legacy/edje/src/lib/edje_message_queue.c
+++ b/legacy/edje/src/lib/edje_message_queue.c
@@ -34,6 +34,16 @@ _edje_object_message_popornot_send(Evas_Object *obj, Edje_Message_Type type, int
34EAPI void 34EAPI void
35edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg) 35edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg)
36{ 36{
37 if (!obj) return;
38 eo_do(obj, edje_obj_message_send(type, id, msg));
39}
40
41void
42_message_send(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
43{
44 Edje_Message_Type type = va_arg(*list, Edje_Message_Type);
45 int id = va_arg(*list, int);
46 void *msg = va_arg(*list, void *);
37 _edje_object_message_popornot_send(obj, type, id, msg, EINA_FALSE); 47 _edje_object_message_popornot_send(obj, type, id, msg, EINA_FALSE);
38} 48}
39 49
@@ -41,16 +51,29 @@ edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void
41EAPI void 51EAPI void
42edje_object_message_handler_set(Evas_Object *obj, Edje_Message_Handler_Cb func, void *data) 52edje_object_message_handler_set(Evas_Object *obj, Edje_Message_Handler_Cb func, void *data)
43{ 53{
44 Edje *ed; 54 if (!obj) return;
55 eo_do(obj, edje_obj_message_handler_set(func, data));
56}
45 57
46 ed = _edje_fetch(obj); 58void
47 if (!ed) return; 59_message_handler_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
60{
61 Edje_Message_Handler_Cb func = va_arg(*list, Edje_Message_Handler_Cb);
62 void *data = va_arg(*list, void *);
63 Edje *ed = _pd;
48 _edje_message_cb_set(ed, func, data); 64 _edje_message_cb_set(ed, func, data);
49} 65}
50 66
51EAPI void 67EAPI void
52edje_object_message_signal_process(Evas_Object *obj) 68edje_object_message_signal_process(Evas_Object *obj)
53{ 69{
70 if (!obj) return;
71 eo_do(obj, edje_obj_message_signal_process());
72}
73
74void
75_message_signal_process(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
76{
54 Eina_List *l, *ln, *tmpq = NULL; 77 Eina_List *l, *ln, *tmpq = NULL;
55 Edje *ed; 78 Edje *ed;
56 Edje *lookup_ed; 79 Edje *lookup_ed;
@@ -59,7 +82,7 @@ edje_object_message_signal_process(Evas_Object *obj)
59 Eina_List *groups = NULL; 82 Eina_List *groups = NULL;
60 int gotos = 0; 83 int gotos = 0;
61 84
62 ed = _edje_fetch(obj); 85 ed = _pd;
63 if (!ed) return; 86 if (!ed) return;
64 87
65 groups = ed->groups; 88 groups = ed->groups;
diff --git a/legacy/edje/src/lib/edje_private.h b/legacy/edje/src/lib/edje_private.h
index 26259a45a7..20439f493f 100644
--- a/legacy/edje/src/lib/edje_private.h
+++ b/legacy/edje/src/lib/edje_private.h
@@ -173,15 +173,6 @@ EAPI extern int _edje_default_log_dom ;
173 * use of this, but who knows what will be possible in the future */ 173 * use of this, but who knows what will be possible in the future */
174#define EDJE_SMART_API_VERSION 1 174#define EDJE_SMART_API_VERSION 1
175 175
176typedef struct _Edje_Smart_Api Edje_Smart_Api;
177
178struct _Edje_Smart_Api
179{
180 Evas_Smart_Class base;
181 int version;
182 Eina_Bool (*file_set)(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested);
183};
184
185/* Basic macro to init the Edje Smart API */ 176/* Basic macro to init the Edje Smart API */
186#define EDJE_SMART_API_INIT(smart_class_init) {smart_class_init, EDJE_SMART_API_VERSION, NULL} 177#define EDJE_SMART_API_INIT(smart_class_init) {smart_class_init, EDJE_SMART_API_VERSION, NULL}
187 178
@@ -1109,12 +1100,11 @@ typedef struct _Edje_Signals_Sources_Patterns Edje_Signals_Sources_Patterns;
1109 1100
1110struct _Edje 1101struct _Edje
1111{ 1102{
1112 Evas_Object_Smart_Clipped_Data base; 1103 Evas_Object_Smart_Clipped_Data *base;
1113 /* This contains (or should): 1104 /* This contains (or should):
1114 Evas_Object *clipper; // a big rect to clip this Edje to 1105 Evas_Object *clipper; // a big rect to clip this Edje to
1115 Evas *evas; // the Evas this Edje belongs to 1106 Evas *evas; // the Evas this Edje belongs to
1116 */ 1107 */
1117 const Edje_Smart_Api *api;
1118 const char *path; 1108 const char *path;
1119 const char *group; 1109 const char *group;
1120 const char *parent; 1110 const char *parent;
@@ -1752,9 +1742,6 @@ void _edje_collection_free_part_description_free(int type,
1752 Edje_Part_Collection_Directory_Entry *ce, 1742 Edje_Part_Collection_Directory_Entry *ce,
1753 Eina_Bool free_strings); 1743 Eina_Bool free_strings);
1754 1744
1755void _edje_object_smart_set(Edje_Smart_Api *sc);
1756const Edje_Smart_Api * _edje_object_smart_class_get(void);
1757
1758void _edje_del(Edje *ed); 1745void _edje_del(Edje *ed);
1759void _edje_ref(Edje *ed); 1746void _edje_ref(Edje *ed);
1760void _edje_unref(Edje *ed); 1747void _edje_unref(Edje *ed);
@@ -1788,7 +1775,7 @@ const char * _edje_text_class_font_get(Edje *ed,
1788 1775
1789Edje_Real_Part *_edje_real_part_get(const Edje *ed, const char *part); 1776Edje_Real_Part *_edje_real_part_get(const Edje *ed, const char *part);
1790Edje_Real_Part *_edje_real_part_recursive_get(const Edje *ed, const char *part); 1777Edje_Real_Part *_edje_real_part_recursive_get(const Edje *ed, const char *part);
1791Edje_Color_Class *_edje_color_class_find(Edje *ed, const char *color_class); 1778Edje_Color_Class *_edje_color_class_find(const Edje *ed, const char *color_class);
1792void _edje_color_class_member_direct_del(const char *color_class, void *lookup); 1779void _edje_color_class_member_direct_del(const char *color_class, void *lookup);
1793void _edje_color_class_member_add(Edje *ed, const char *color_class); 1780void _edje_color_class_member_add(Edje *ed, const char *color_class);
1794void _edje_color_class_member_del(Edje *ed, const char *color_class); 1781void _edje_color_class_member_del(Edje *ed, const char *color_class);
@@ -2171,6 +2158,147 @@ void _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params
2171void _edje_user_definition_remove(Edje_User_Defined *eud, Evas_Object *child); 2158void _edje_user_definition_remove(Edje_User_Defined *eud, Evas_Object *child);
2172void _edje_user_definition_free(Edje_User_Defined *eud); 2159void _edje_user_definition_free(Edje_User_Defined *eud);
2173 2160
2161void _scale_set(Eo *obj, void *_pd, va_list *list);
2162void _scale_get(Eo *obj, void *_pd, va_list *list);
2163void _mirrored_get(Eo *obj, void *_pd, va_list *list);
2164void _mirrored_set(Eo *obj, void *_pd, va_list *list);
2165void _data_get(Eo *obj, void *_pd, va_list *list);
2166void _freeze(Eo *obj, void *_pd, va_list *list);
2167void _thaw(Eo *obj, void *_pd, va_list *list);
2168void _color_class_set(Eo *obj, void *_pd, va_list *list);
2169void _color_class_get(Eo *obj, void *_pd, va_list *list);
2170void _text_class_set(Eo *obj, void *_pd, va_list *list);
2171void _part_exists(Eo *obj, void *_pd, va_list *list);
2172void _part_object_get(Eo *obj, void *_pd, va_list *list);
2173void _part_geometry_get(Eo *obj, void *_pd, va_list *list);
2174void _item_provider_set(Eo *obj, void *_pd, va_list *list);
2175void _text_change_cb_set(Eo *obj, void *_pd, va_list *list);
2176void _part_text_style_user_push(Eo *obj, void *_pd, va_list *list);
2177void _part_text_style_user_pop(Eo *obj, void *_pd, va_list *list);
2178void _part_text_style_user_peek(Eo *obj, void *_pd, va_list *list);
2179void _part_text_set(Eo *obj, void *_pd, va_list *list);
2180void _part_text_get(Eo *obj, void *_pd, va_list *list);
2181void _part_text_escaped_set(Eo *obj, void *_pd, va_list *list);
2182void _part_text_unescaped_set(Eo *obj, void *_pd, va_list *list);
2183void _part_text_unescaped_get(Eo *obj, void *_pd, va_list *list);
2184void _part_text_selection_get(Eo *obj, void *_pd, va_list *list);
2185void _part_text_select_none(Eo *obj, void *_pd, va_list *list);
2186void _part_text_select_all(Eo *obj, void *_pd, va_list *list);
2187void _part_text_insert(Eo *obj, void *_pd, va_list *list);
2188void _part_text_append(Eo *obj, void *_pd, va_list *list);
2189void _part_text_anchor_list_get(Eo *obj, void *_pd, va_list *list);
2190void _part_text_anchor_geometry_get(Eo *obj, void *_pd, va_list *list);
2191void _part_text_item_list_get(Eo *obj, void *_pd, va_list *list);
2192void _part_text_item_geometry_get(Eo *obj, void *_pd, va_list *list);
2193void _part_text_cursor_geometry_get(Eo *obj, void *_pd, va_list *list);
2194void _part_text_user_insert(Eo *obj, void *_pd, va_list *list);
2195void _part_text_select_allow_set(Eo *obj, void *_pd, va_list *list);
2196void _part_text_select_abort(Eo *obj, void *_pd, va_list *list);
2197void _part_text_select_begin(Eo *obj, void *_pd, va_list *list);
2198void _part_text_select_extend(Eo *obj, void *_pd, va_list *list);
2199void _part_text_imf_context_get(Eo *obj, void *_pd, va_list *list);
2200void _part_text_cursor_next(Eo *obj, void *_pd, va_list *list);
2201void _part_text_cursor_prev(Eo *obj, void *_pd, va_list *list);
2202void _part_text_cursor_up(Eo *obj, void *_pd, va_list *list);
2203void _part_text_cursor_down(Eo *obj, void *_pd, va_list *list);
2204void _part_text_cursor_begin_set(Eo *obj, void *_pd, va_list *list);
2205void _part_text_cursor_end_set(Eo *obj, void *_pd, va_list *list);
2206void _part_text_cursor_copy(Eo *obj, void *_pd, va_list *list);
2207void _part_text_cursor_line_begin_set(Eo *obj, void *_pd, va_list *list);
2208void _part_text_cursor_line_end_set(Eo *obj, void *_pd, va_list *list);
2209void _part_text_cursor_coord_set(Eo *obj, void *_pd, va_list *list);
2210void _part_text_cursor_is_format_get(Eo *obj, void *_pd, va_list *list);
2211void _part_text_cursor_is_visible_format_get(Eo *obj, void *_pd, va_list *list);
2212void _part_text_cursor_content_get(Eo *obj, void *_pd, va_list *list);
2213void _part_text_cursor_pos_set(Eo *obj, void *_pd, va_list *list);
2214void _part_text_cursor_pos_get(Eo *obj, void *_pd, va_list *list);
2215void _part_text_imf_context_reset(Eo *obj, void *_pd, va_list *list);
2216void _part_text_input_panel_layout_set(Eo *obj, void *_pd, va_list *list);
2217void _part_text_input_panel_layout_get(Eo *obj, void *_pd, va_list *list);
2218void _part_text_autocapital_type_set(Eo *obj, void *_pd, va_list *list);
2219void _part_text_autocapital_type_get(Eo *obj, void *_pd, va_list *list);
2220void _part_text_prediction_allow_set(Eo *obj, void *_pd, va_list *list);
2221void _part_text_prediction_allow_get(Eo *obj, void *_pd, va_list *list);
2222void _part_text_input_panel_enabled_set(Eo *obj, void *_pd, va_list *list);
2223void _part_text_input_panel_enabled_get(Eo *obj, void *_pd, va_list *list);
2224void _part_text_input_panel_show(Eo *obj, void *_pd, va_list *list);
2225void _part_text_input_panel_hide(Eo *obj, void *_pd, va_list *list);
2226void _part_text_input_panel_language_set(Eo *obj, void *_pd, va_list *list);
2227void _part_text_input_panel_language_get(Eo *obj, void *_pd, va_list *list);
2228void _part_text_input_panel_imdata_set(Eo *obj, void *_pd, va_list *list);
2229void _part_text_input_panel_imdata_get(Eo *obj, void *_pd, va_list *list);
2230void _part_text_input_panel_return_key_type_set(Eo *obj, void *_pd, va_list *list);
2231void _part_text_input_panel_return_key_type_get(Eo *obj, void *_pd, va_list *list);
2232void _part_text_input_panel_return_key_disabled_set(Eo *obj, void *_pd, va_list *list);
2233void _part_text_input_panel_return_key_disabled_get(Eo *obj, void *_pd, va_list *list);
2234void _text_insert_filter_callback_add(Eo *obj, void *_pd, va_list *list);
2235void _text_insert_filter_callback_del(Eo *obj, void *_pd, va_list *list);
2236void _text_insert_filter_callback_del_full(Eo *obj, void *_pd, va_list *list);
2237void _text_markup_filter_callback_add(Eo *obj, void *_pd, va_list *list);
2238void _text_markup_filter_callback_del(Eo *obj, void *_pd, va_list *list);
2239void _text_markup_filter_callback_del_full(Eo *obj, void *_pd, va_list *list);
2240void _part_swallow(Eo *obj, void *_pd, va_list *list);
2241void _part_unswallow(Eo *obj, void *_pd, va_list *list);
2242void _part_swallow_get(Eo *obj, void *_pd, va_list *list);
2243void _size_min_get(Eo *obj, void *_pd, va_list *list);
2244void _size_max_get(Eo *obj, void *_pd, va_list *list);
2245void _calc_force(Eo *obj, void *_pd, va_list *list);
2246void _size_min_calc(Eo *obj, void *_pd, va_list *list);
2247void _parts_extends_calc(Eo *obj, void *_pd, va_list *list);
2248void _size_min_restricted_calc(Eo *obj, void *_pd, va_list *list);
2249void _part_state_get(Eo *obj, void *_pd, va_list *list);
2250void _part_drag_dir_get(Eo *obj, void *_pd, va_list *list);
2251void _part_drag_value_set(Eo *obj, void *_pd, va_list *list);
2252void _part_drag_value_get(Eo *obj, void *_pd, va_list *list);
2253void _part_drag_size_set(Eo *obj, void *_pd, va_list *list);
2254void _part_drag_size_get(Eo *obj, void *_pd, va_list *list);
2255void _part_drag_step_set(Eo *obj, void *_pd, va_list *list);
2256void _part_drag_step_get(Eo *obj, void *_pd, va_list *list);
2257void _part_drag_page_set(Eo *obj, void *_pd, va_list *list);
2258void _part_drag_page_get(Eo *obj, void *_pd, va_list *list);
2259void _part_drag_step(Eo *obj, void *_pd, va_list *list);
2260void _part_drag_page(Eo *obj, void *_pd, va_list *list);
2261void _part_box_append(Eo *obj, void *_pd, va_list *list);
2262void _part_box_prepend(Eo *obj, void *_pd, va_list *list);
2263void _part_box_insert_before(Eo *obj, void *_pd, va_list *list);
2264void _part_box_insert_at(Eo *obj, void *_pd, va_list *list);
2265void _part_box_remove(Eo *obj, void *_pd, va_list *list);
2266void _part_box_remove_at(Eo *obj, void *_pd, va_list *list);
2267void _part_box_remove_all(Eo *obj, void *_pd, va_list *list);
2268void _access_part_list_get(Eo *obj, void *_pd, va_list *list);
2269void _part_table_child_get(Eo *obj, void *_pd, va_list *list);
2270void _part_table_pack(Eo *obj, void *_pd, va_list *list);
2271void _part_table_unpack(Eo *obj, void *_pd, va_list *list);
2272void _part_table_col_row_size_get(Eo *obj, void *_pd, va_list *list);
2273void _part_table_clear(Eo *obj, void *_pd, va_list *list);
2274void _perspective_set(Eo *obj, void *_pd, va_list *list);
2275void _perspective_get(Eo *obj, void *_pd, va_list *list);
2276void _preload(Eo *obj, void *_pd, va_list *list);
2277void _update_hints_set(Eo *obj, void *_pd, va_list *list);
2278void _update_hints_get(Eo *obj, void *_pd, va_list *list);
2279
2280void _part_external_object_get(Eo *obj, void *_pd, va_list *list);
2281void _part_external_param_set(Eo *obj, void *_pd, va_list *list);
2282void _part_external_param_get(Eo *obj, void *_pd, va_list *list);
2283void _part_external_content_get(Eo *obj, void *_pd, va_list *list);
2284void _part_external_param_type_get(Eo *obj, void *_pd, va_list *list);
2285
2286void _file_get(Eo *obj, void *_pd, va_list *list);
2287void _load_error_get(Eo *obj, void *_pd, va_list *list);
2288
2289void _message_send(Eo *obj, void *_pd, va_list *list);
2290void _message_handler_set(Eo *obj, void *_pd, va_list *list);
2291void _message_signal_process(Eo *obj, void *_pd, va_list *list);
2292
2293void _signal_callback_add(Eo *obj, void *_pd, va_list *list);
2294void _signal_callback_del(Eo *obj, void *_pd, va_list *list);
2295void _signal_callback_del_full(Eo *obj, void *_pd, va_list *list);
2296void _signal_emit(Eo *obj, void *_pd, va_list *list);
2297void _play_set(Eo *obj, void *_pd, va_list *list);
2298void _play_get(Eo *obj, void *_pd, va_list *list);
2299void _animation_set(Eo *obj, void *_pd, va_list *list);
2300void _animation_get(Eo *obj, void *_pd, va_list *list);
2301
2174#ifdef HAVE_LIBREMIX 2302#ifdef HAVE_LIBREMIX
2175#include <remix/remix.h> 2303#include <remix/remix.h>
2176#endif 2304#endif
diff --git a/legacy/edje/src/lib/edje_program.c b/legacy/edje/src/lib/edje_program.c
index 374e30adf1..2cf4cf9823 100644
--- a/legacy/edje/src/lib/edje_program.c
+++ b/legacy/edje/src/lib/edje_program.c
@@ -53,11 +53,23 @@ edje_object_propagate_callback_add(Evas_Object *obj, void (*func) (void *data, E
53EAPI void 53EAPI void
54edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data) 54edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data)
55{ 55{
56 Edje *ed; 56 if (!obj) return;
57 eo_do(obj, edje_obj_signal_callback_add(emission, source, (Edje_Signal_Cb)func, data));
58}
59
60void
61_signal_callback_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
62{
63 const char *emission = va_arg(*list, const char *);
64 const char *source = va_arg(*list, const char *);
65 Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb);
66 void *data = va_arg(*list, void *);
67
68 Edje *ed = _pd;
57 Edje_Signal_Callback *escb; 69 Edje_Signal_Callback *escb;
58 70
59 if ((!emission) || (!source) || (!func)) return; 71 if ((!emission) || (!source) || (!func)) return;
60 ed = _edje_fetch(obj); 72 ed = _pd;
61 if (!ed) return; 73 if (!ed) return;
62 if (ed->delete_me) return; 74 if (ed->delete_me) return;
63 escb = calloc(1, sizeof(Edje_Signal_Callback)); 75 escb = calloc(1, sizeof(Edje_Signal_Callback));
@@ -80,14 +92,28 @@ edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const ch
80EAPI void * 92EAPI void *
81edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source)) 93edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source))
82{ 94{
83 Edje *ed; 95 if (!obj) return NULL;
96 void *ret = NULL;
97 eo_do(obj, edje_obj_signal_callback_del(emission, source, (Edje_Signal_Cb)func, &ret));
98 return ret;
99}
100
101void
102_signal_callback_del(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
103{
104 const char *emission = va_arg(*list, const char *);
105 const char *source = va_arg(*list, const char *);
106 Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb);
107 void **ret = va_arg(*list, void **);
108 if (ret) *ret = NULL;
109
110 Edje *ed = _pd;
84 Eina_List *l; 111 Eina_List *l;
85 Edje_Signal_Callback *escb; 112 Edje_Signal_Callback *escb;
86 113
87 if ((!emission) || (!source) || (!func)) return NULL; 114 if ((!emission) || (!source) || (!func)) return;
88 ed = _edje_fetch(obj); 115 if (!ed) return;
89 if (!ed) return NULL; 116 if (ed->delete_me) return;
90 if (ed->delete_me) return NULL;
91 EINA_LIST_FOREACH(ed->callbacks, l, escb) 117 EINA_LIST_FOREACH(ed->callbacks, l, escb)
92 { 118 {
93 if ((escb->func == func) && 119 if ((escb->func == func) &&
@@ -113,23 +139,39 @@ edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const ch
113 if (escb->source) eina_stringshare_del(escb->source); 139 if (escb->source) eina_stringshare_del(escb->source);
114 free(escb); 140 free(escb);
115 } 141 }
116 return data; 142 if (ret) *ret = data;
143 return;
117 } 144 }
118 } 145 }
119 return NULL; 146 return;
120} 147}
121 148
122EAPI void * 149EAPI void *
123edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data) 150edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data)
124{ 151{
125 Edje *ed; 152 if (!obj) return NULL;
153 void *ret = NULL;
154 eo_do(obj, edje_obj_signal_callback_del_full(emission, source, func, data, &ret));
155 return ret;
156}
157
158void
159_signal_callback_del_full(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
160{
161 const char *emission = va_arg(*list, const char *);
162 const char *source = va_arg(*list, const char *);
163 Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb);
164 void *data = va_arg(*list, void *);
165 void **ret = va_arg(*list, void **);
166 if (ret) *ret = NULL;
167
168 Edje *ed = _pd;
126 Eina_List *l; 169 Eina_List *l;
127 Edje_Signal_Callback *escb; 170 Edje_Signal_Callback *escb;
128 171
129 if ((!emission) || (!source) || (!func)) return NULL; 172 if ((!emission) || (!source) || (!func)) return;
130 ed = _edje_fetch(obj); 173 if (!ed) return;
131 if (!ed) return NULL; 174 if (ed->delete_me) return;
132 if (ed->delete_me) return NULL;
133 EINA_LIST_FOREACH(ed->callbacks, l, escb) 175 EINA_LIST_FOREACH(ed->callbacks, l, escb)
134 { 176 {
135 if ((escb->func == func) && (escb->data == data) && 177 if ((escb->func == func) && (escb->data == data) &&
@@ -155,19 +197,30 @@ edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, con
155 if (escb->source) eina_stringshare_del(escb->source); 197 if (escb->source) eina_stringshare_del(escb->source);
156 free(escb); 198 free(escb);
157 } 199 }
158 return data2; 200 if (ret) *ret = data2;
201 return;
159 } 202 }
160 } 203 }
161 return NULL; 204 return;
162} 205}
163 206
164EAPI void 207EAPI void
165edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *source) 208edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *source)
166{ 209{
210 if (!obj) return;
211 if (!eo_isa(obj, EDJE_OBJ_CLASS)) return;
212 eo_do(obj, edje_obj_signal_emit(emission, source));
213}
214
215void
216_signal_emit(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
217{
218 const char *emission = va_arg(*list, const char *);
219 const char *source = va_arg(*list, const char *);
167 Edje *ed; 220 Edje *ed;
168 221
169 if ((!emission) || (!source)) return; 222 if ((!emission) || (!source)) return;
170 ed = _edje_fetch(obj); 223 ed = _pd;
171 if (!ed) return; 224 if (!ed) return;
172 if (ed->delete_me) return; 225 if (ed->delete_me) return;
173 _edje_emit(ed, (char *)emission, (char *)source); 226 _edje_emit(ed, (char *)emission, (char *)source);
@@ -177,13 +230,21 @@ edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *sour
177EAPI void 230EAPI void
178edje_object_play_set(Evas_Object *obj, Eina_Bool play) 231edje_object_play_set(Evas_Object *obj, Eina_Bool play)
179{ 232{
180 Edje *ed; 233 if (!obj) return;
234 eo_do(obj, edje_obj_play_set(play));
235}
236
237void
238_play_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
239{
240 Eina_Bool play = va_arg(*list, int);
241
242 Edje *ed = _pd;
181 double t; 243 double t;
182 Eina_List *l; 244 Eina_List *l;
183 Edje_Running_Program *runp; 245 Edje_Running_Program *runp;
184 unsigned int i; 246 unsigned int i;
185 247
186 ed = _edje_fetch(obj);
187 if (!ed) return; 248 if (!ed) return;
188 if (ed->delete_me) return; 249 if (ed->delete_me) return;
189 if (play) 250 if (play)
@@ -216,24 +277,41 @@ edje_object_play_set(Evas_Object *obj, Eina_Bool play)
216EAPI Eina_Bool 277EAPI Eina_Bool
217edje_object_play_get(const Evas_Object *obj) 278edje_object_play_get(const Evas_Object *obj)
218{ 279{
219 Edje *ed; 280 if (!obj) return EINA_FALSE;
281 Eina_Bool ret = EINA_FALSE;
282 eo_do((Eo *)obj, edje_obj_play_get(&ret));
283 return ret;
284}
220 285
221 ed = _edje_fetch(obj); 286void
222 if (!ed) return EINA_FALSE; 287_play_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
223 if (ed->delete_me) return EINA_FALSE; 288{
224 if (ed->paused) return EINA_FALSE; 289 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
225 return EINA_TRUE; 290 const Edje *ed = _pd;
291 *ret = EINA_FALSE;
292
293 if (!ed) return;
294 if (ed->delete_me) return;
295 if (ed->paused) return;
296 *ret = EINA_TRUE;
226} 297}
227 298
228/* FIXDOC: Verify/Expand */ 299/* FIXDOC: Verify/Expand */
229EAPI void 300EAPI void
230edje_object_animation_set(Evas_Object *obj, Eina_Bool on) 301edje_object_animation_set(Evas_Object *obj, Eina_Bool on)
231{ 302{
232 Edje *ed; 303 if (!obj) return;
304 eo_do(obj, edje_obj_animation_set(on));
305}
306
307void
308_animation_set(Eo *obj, void *_pd, va_list *list)
309{
310 Eina_Bool on = va_arg(*list, int);
311 Edje *ed = _pd;
233 Eina_List *l; 312 Eina_List *l;
234 unsigned int i; 313 unsigned int i;
235 314
236 ed = _edje_fetch(obj);
237 if (!ed) return; 315 if (!ed) return;
238 if (ed->delete_me) return; 316 if (ed->delete_me) return;
239 _edje_block(ed); 317 _edje_block(ed);
@@ -290,13 +368,23 @@ edje_object_animation_set(Evas_Object *obj, Eina_Bool on)
290EAPI Eina_Bool 368EAPI Eina_Bool
291edje_object_animation_get(const Evas_Object *obj) 369edje_object_animation_get(const Evas_Object *obj)
292{ 370{
293 Edje *ed; 371 if (!obj) return EINA_FALSE;
372 Eina_Bool ret = EINA_FALSE;
373 eo_do((Eo *)obj, edje_obj_animation_get(&ret));
374 return ret;
375}
294 376
295 ed = _edje_fetch(obj); 377void
296 if (!ed) return EINA_FALSE; 378_animation_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
297 if (ed->delete_me) return EINA_FALSE; 379{
298 if (ed->no_anim) return EINA_FALSE; 380 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
299 return EINA_TRUE; 381 const Edje *ed = _pd;
382 *ret = EINA_FALSE;
383
384 if (!ed) return;
385 if (ed->delete_me) return;
386 if (ed->no_anim) return;
387 *ret = EINA_TRUE;
300} 388}
301 389
302/* Private Routines */ 390/* Private Routines */
diff --git a/legacy/edje/src/lib/edje_script_only.c b/legacy/edje/src/lib/edje_script_only.c
index e7a73478f0..5fd281c7bb 100644
--- a/legacy/edje/src/lib/edje_script_only.c
+++ b/legacy/edje/src/lib/edje_script_only.c
@@ -128,7 +128,7 @@ _oid_track(Edje * ed, Evas_Object * o)
128 oi->ed = ed; 128 oi->ed = ed;
129 oi->obj = o; 129 oi->obj = o;
130 evas_object_smart_member_add(oi->obj, oi->ed->obj); 130 evas_object_smart_member_add(oi->obj, oi->ed->obj);
131 evas_object_clip_set(oi->obj, oi->ed->base.clipper); 131 evas_object_clip_set(oi->obj, oi->ed->base->clipper);
132 evas_object_geometry_get(oi->obj, &(oi->x), &(oi->y), &(oi->w), &(oi->h)); 132 evas_object_geometry_get(oi->obj, &(oi->x), &(oi->y), &(oi->w), &(oi->h));
133 snprintf(buf, sizeof(buf), "%i", oi->oid); 133 snprintf(buf, sizeof(buf), "%i", oi->oid);
134 if (!si->oid.hash) 134 if (!si->oid.hash)
diff --git a/legacy/edje/src/lib/edje_smart.c b/legacy/edje/src/lib/edje_smart.c
index c3b0b31e44..22ea2bfcfb 100644
--- a/legacy/edje/src/lib/edje_smart.c
+++ b/legacy/edje/src/lib/edje_smart.c
@@ -1,18 +1,10 @@
1#include "edje_private.h" 1#include "edje_private.h"
2 2
3static void _edje_smart_add(Evas_Object * obj); 3#include <Eo.h>
4static void _edje_smart_del(Evas_Object * obj);
5static void _edje_smart_move(Evas_Object * obj, Evas_Coord x, Evas_Coord y);
6static void _edje_smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h);
7static void _edje_smart_show(Evas_Object * obj);
8static void _edje_smart_hide(Evas_Object * obj);
9static void _edje_smart_calculate(Evas_Object * obj);
10 4
11static Eina_Bool _edje_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested); 5EAPI Eo_Op EDJE_OBJ_BASE_ID = EO_NOOP;
12 6
13static Edje_Smart_Api _edje_smart_class = EDJE_SMART_API_INIT_NAME_VERSION("edje"); 7#define MY_CLASS EDJE_OBJ_CLASS
14static Evas_Smart_Class _edje_smart_parent;
15static Evas_Smart *_edje_smart = NULL;
16 8
17Eina_List *_edje_edjes = NULL; 9Eina_List *_edje_edjes = NULL;
18 10
@@ -22,59 +14,20 @@ EAPI Evas_Object *
22edje_object_add(Evas *evas) 14edje_object_add(Evas *evas)
23{ 15{
24 Evas_Object *e; 16 Evas_Object *e;
25 17 e = eo_add(MY_CLASS, evas);
26 _edje_lib_ref(); 18 eo_unref(e);
27
28 if (!_edje_smart)
29 {
30 memset(&_edje_smart_parent, 0, sizeof(_edje_smart_parent));
31 _edje_object_smart_set(&_edje_smart_class);
32 _edje_smart =
33 evas_smart_class_new((Evas_Smart_Class *)&_edje_smart_class);
34 }
35
36 e = evas_object_smart_add(evas, _edje_smart);
37
38 return e; 19 return e;
39} 20}
40 21
41void 22static void
42_edje_object_smart_set(Edje_Smart_Api *sc) 23_constructor(Eo *obj, void *class_data, va_list *list EINA_UNUSED)
43{
44 if (!sc)
45 return;
46
47 evas_object_smart_clipped_smart_set(&sc->base);
48
49 _edje_smart_parent.add = sc->base.add; /* Save parent class */
50 sc->base.add = _edje_smart_add;
51 _edje_smart_parent.del = sc->base.del; /* Save parent class */
52 sc->base.del = _edje_smart_del;
53 /* we'll handle move thank you */
54 sc->base.move = _edje_smart_move;
55 sc->base.resize = _edje_smart_resize;
56 _edje_smart_parent.show = sc->base.show; /* Save parent class */
57 sc->base.show = _edje_smart_show;
58 _edje_smart_parent.hide = sc->base.hide; /* Save parent class */
59 sc->base.hide = _edje_smart_hide;
60 sc->base.calculate = _edje_smart_calculate;
61 //sc->base.member_add = NULL;
62 //sc->base.member_del = NULL;
63 sc->file_set = _edje_smart_file_set;
64}
65
66const Edje_Smart_Api *
67_edje_object_smart_class_get(void)
68{ 24{
69 static const Edje_Smart_Api *class = NULL; 25 Edje *ed = class_data;
26 ed->base = eo_data_get(obj, EVAS_OBJ_SMART_CLIPPED_CLASS);
70 27
71 if (class) 28 eo_do_super(obj, eo_constructor());
72 return class; 29 eo_do(obj, evas_obj_type_set("edje"));
73 30 _edje_lib_ref();
74 _edje_object_smart_set(&_edje_smart_class);
75 class = &_edje_smart_class;
76
77 return class;
78} 31}
79 32
80static void 33static void
@@ -89,36 +42,21 @@ _edje_color_class_free(void *data)
89 42
90/* Private Routines */ 43/* Private Routines */
91static void 44static void
92_edje_smart_add(Evas_Object *obj) 45_edje_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
93{ 46{
94 Edje *ed; 47 Edje *ed = _pd;
95 Evas *tev = evas_object_evas_get(obj); 48 Evas *tev = evas_object_evas_get(obj);
96 49
97 evas_event_freeze(tev); 50 evas_event_freeze(tev);
98 ed = evas_object_smart_data_get(obj);
99 if (!ed)
100 {
101 const Evas_Smart *smart;
102 const Evas_Smart_Class *sc;
103
104 ed = calloc(1, sizeof(Edje));
105 if (!ed) goto end_smart_add;
106 51
107 smart = evas_object_smart_smart_get(obj); 52 ed->base->evas = evas_object_evas_get(obj);
108 sc = evas_smart_class_get(smart); 53 ed->base->clipper = evas_object_rectangle_add(ed->base->evas);
109 ed->api = (const Edje_Smart_Api *)sc; 54 evas_object_static_clip_set(ed->base->clipper, 1);
110 55 evas_object_smart_member_add(ed->base->clipper, obj);
111 evas_object_smart_data_set(obj, ed); 56 evas_object_color_set(ed->base->clipper, 255, 255, 255, 255);
112 } 57 evas_object_move(ed->base->clipper, -10000, -10000);
113 58 evas_object_resize(ed->base->clipper, 20000, 20000);
114 ed->base.evas = evas_object_evas_get(obj); 59 evas_object_pass_events_set(ed->base->clipper, 1);
115 ed->base.clipper = evas_object_rectangle_add(ed->base.evas);
116 evas_object_static_clip_set(ed->base.clipper, 1);
117 evas_object_smart_member_add(ed->base.clipper, obj);
118 evas_object_color_set(ed->base.clipper, 255, 255, 255, 255);
119 evas_object_move(ed->base.clipper, -10000, -10000);
120 evas_object_resize(ed->base.clipper, 20000, 20000);
121 evas_object_pass_events_set(ed->base.clipper, 1);
122 ed->is_rtl = EINA_FALSE; 60 ed->is_rtl = EINA_FALSE;
123 ed->have_objects = EINA_TRUE; 61 ed->have_objects = EINA_TRUE;
124 ed->references = 1; 62 ed->references = 1;
@@ -142,18 +80,15 @@ _edje_smart_add(Evas_Object *obj)
142 printf("--- EDJE DUMP [%i]\n", eina_list_count(_edje_edjes)); 80 printf("--- EDJE DUMP [%i]\n", eina_list_count(_edje_edjes));
143 } 81 }
144 */ 82 */
145end_smart_add:
146 evas_event_thaw(tev); 83 evas_event_thaw(tev);
147 evas_event_thaw_eval(tev); 84 evas_event_thaw_eval(tev);
148} 85}
149 86
150static void 87static void
151_edje_smart_del(Evas_Object * obj) 88_edje_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
152{ 89{
153 Edje *ed; 90 Edje *ed = _pd;
154 91
155 ed = evas_object_smart_data_get(obj);
156 if (!ed) return;
157 _edje_block_violate(ed); 92 _edje_block_violate(ed);
158 ed->delete_me = 1; 93 ed->delete_me = 1;
159 _edje_edjes = eina_list_remove(_edje_edjes, obj); 94 _edje_edjes = eina_list_remove(_edje_edjes, obj);
@@ -168,12 +103,12 @@ _edje_smart_del(Evas_Object * obj)
168} 103}
169 104
170static void 105static void
171_edje_smart_move(Evas_Object * obj, Evas_Coord x, Evas_Coord y) 106_edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
172{ 107{
173 Edje *ed; 108 Evas_Coord x = va_arg(*list, Evas_Coord);
109 Evas_Coord y = va_arg(*list, Evas_Coord);
110 Edje *ed = _pd;
174 111
175 ed = evas_object_smart_data_get(obj);
176 if (!ed) return;
177 if ((ed->x == x) && (ed->y == y)) return; 112 if ((ed->x == x) && (ed->y == y)) return;
178 ed->x = x; 113 ed->x = x;
179 ed->y = y; 114 ed->y = y;
@@ -264,12 +199,12 @@ _edje_limit_get(Edje *ed, Edje_Limit **limits, unsigned int length, Evas_Coord s
264} 199}
265 200
266static void 201static void
267_edje_smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h) 202_edje_smart_resize(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
268{ 203{
269 Edje *ed; 204 Evas_Coord w = va_arg(*list, Evas_Coord);
205 Evas_Coord h = va_arg(*list, Evas_Coord);
206 Edje *ed = _pd;
270 207
271 ed = evas_object_smart_data_get(obj);
272 if (!ed) return;
273 if ((w == ed->w) && (h == ed->h)) return; 208 if ((w == ed->w) && (h == ed->h)) return;
274 if (ed->collection) 209 if (ed->collection)
275 { 210 {
@@ -298,13 +233,11 @@ _edje_smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h)
298} 233}
299 234
300static void 235static void
301_edje_smart_show(Evas_Object * obj) 236_edje_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
302{ 237{
303 Edje *ed; 238 Edje *ed = _pd;
304 239
305 _edje_smart_parent.show(obj); 240 eo_do_super(obj, evas_obj_smart_show());
306 ed = evas_object_smart_data_get(obj);
307 if (!ed) return;
308 if (evas_object_visible_get(obj)) return; 241 if (evas_object_visible_get(obj)) return;
309 if (_edje_script_only(ed)) 242 if (_edje_script_only(ed))
310 { 243 {
@@ -320,13 +253,11 @@ _edje_smart_show(Evas_Object * obj)
320} 253}
321 254
322static void 255static void
323_edje_smart_hide(Evas_Object * obj) 256_edje_smart_hide(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
324{ 257{
325 Edje *ed; 258 Edje *ed = _pd;
326 259
327 _edje_smart_parent.hide(obj); 260 eo_do_super(obj, evas_obj_smart_hide());
328 ed = evas_object_smart_data_get(obj);
329 if (!ed) return;
330 if (!evas_object_visible_get(obj)) return; 261 if (!evas_object_visible_get(obj)) return;
331 if (_edje_script_only(ed)) 262 if (_edje_script_only(ed))
332 { 263 {
@@ -342,17 +273,330 @@ _edje_smart_hide(Evas_Object * obj)
342} 273}
343 274
344static void 275static void
345_edje_smart_calculate(Evas_Object *obj) 276_edje_smart_calculate(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
346{ 277{
347 Edje *ed; 278 Edje *ed = _pd;
348
349 ed = evas_object_smart_data_get(obj);
350 if (!ed) return;
351 _edje_recalc_do(ed); 279 _edje_recalc_do(ed);
352} 280}
353 281
354static Eina_Bool 282static void
355_edje_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested) 283_edje_smart_file_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
356{ 284{
357 return _edje_object_file_set_internal(obj, file, group, NULL, NULL, nested); 285 const char *file = va_arg(*list, const char *);
286 const char *group = va_arg(*list, const char *);
287 Eina_Array *nested = va_arg(*list, Eina_Array *);
288 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
289 if (ret) *ret = EINA_FALSE;
290 if (_edje_object_file_set_internal(obj, file, group, NULL, NULL, nested))
291 if (ret) *ret = EINA_TRUE;
358} 292}
293
294static void
295_class_constructor(Eo_Class *klass)
296{
297 const Eo_Op_Func_Description func_desc[] = {
298 EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
299 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _edje_smart_add),
300 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _edje_smart_del),
301 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _edje_smart_move),
302 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_SHOW), _edje_smart_show),
303 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_HIDE), _edje_smart_hide),
304 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _edje_smart_resize),
305 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CALCULATE), _edje_smart_calculate),
306 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SCALE_SET), _scale_set),
307 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SCALE_GET), _scale_get),
308 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_GET), _mirrored_get),
309 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_SET), _mirrored_set),
310 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_DATA_GET), _data_get),
311 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FREEZE), _freeze),
312 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_THAW), _thaw),
313 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_COLOR_CLASS_SET), _color_class_set),
314 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_COLOR_CLASS_GET), _color_class_get),
315 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_CLASS_SET), _text_class_set),
316 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXISTS), _part_exists),
317 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_OBJECT_GET), _part_object_get),
318 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_GEOMETRY_GET), _part_geometry_get),
319 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ITEM_PROVIDER_SET), _item_provider_set),
320 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_CHANGE_CB_SET), _text_change_cb_set),
321 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PUSH), _part_text_style_user_push),
322 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_POP), _part_text_style_user_pop),
323 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PEEK), _part_text_style_user_peek),
324 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SET), _part_text_set),
325 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_GET), _part_text_get),
326 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ESCAPED_SET), _part_text_escaped_set),
327 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_SET), _part_text_unescaped_set),
328 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_GET), _part_text_unescaped_get),
329 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECTION_GET), _part_text_selection_get),
330 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE), _part_text_select_none),
331 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL), _part_text_select_all),
332 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INSERT), _part_text_insert),
333 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_APPEND), _part_text_append),
334 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_LIST_GET), _part_text_anchor_list_get),
335 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_GEOMETRY_GET), _part_text_anchor_geometry_get),
336 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_LIST_GET), _part_text_item_list_get),
337 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_GEOMETRY_GET), _part_text_item_geometry_get),
338 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_GEOMETRY_GET), _part_text_cursor_geometry_get),
339 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_USER_INSERT), _part_text_user_insert),
340 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALLOW_SET), _part_text_select_allow_set),
341 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT), _part_text_select_abort),
342 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN), _part_text_select_begin),
343 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND), _part_text_select_extend),
344 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_GET), _part_text_imf_context_get),
345 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_NEXT), _part_text_cursor_next),
346 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_PREV), _part_text_cursor_prev),
347 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_UP), _part_text_cursor_up),
348 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_DOWN), _part_text_cursor_down),
349 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_BEGIN_SET), _part_text_cursor_begin_set),
350 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_END_SET), _part_text_cursor_end_set),
351 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COPY), _part_text_cursor_copy),
352 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_BEGIN_SET), _part_text_cursor_line_begin_set),
353 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_END_SET), _part_text_cursor_line_end_set),
354 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COORD_SET), _part_text_cursor_coord_set),
355 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_FORMAT_GET), _part_text_cursor_is_format_get),
356 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_VISIBLE_FORMAT_GET), _part_text_cursor_is_visible_format_get),
357 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_CONTENT_GET), _part_text_cursor_content_get),
358 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_SET), _part_text_cursor_pos_set),
359 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_GET), _part_text_cursor_pos_get),
360 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET), _part_text_imf_context_reset),
361 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET), _part_text_input_panel_layout_set),
362 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET), _part_text_input_panel_layout_get),
363 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET), _part_text_autocapital_type_set),
364 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET), _part_text_autocapital_type_get),
365 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET), _part_text_prediction_allow_set),
366 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_GET), _part_text_prediction_allow_get),
367 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_SET), _part_text_input_panel_enabled_set),
368 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_GET), _part_text_input_panel_enabled_get),
369 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW), _part_text_input_panel_show),
370 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_HIDE), _part_text_input_panel_hide),
371 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_SET), _part_text_input_panel_language_set),
372 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_GET), _part_text_input_panel_language_get),
373 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_SET), _part_text_input_panel_imdata_set),
374 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_GET), _part_text_input_panel_imdata_get),
375 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_SET), _part_text_input_panel_return_key_type_set),
376 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET), _part_text_input_panel_return_key_type_get),
377 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET), _part_text_input_panel_return_key_disabled_set),
378 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET), _part_text_input_panel_return_key_disabled_get),
379 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD), _text_insert_filter_callback_add),
380 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL), _text_insert_filter_callback_del),
381 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL), _text_insert_filter_callback_del_full),
382 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_ADD), _text_markup_filter_callback_add),
383 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL), _text_markup_filter_callback_del),
384 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL_FULL), _text_markup_filter_callback_del_full),
385 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_SWALLOW), _part_swallow),
386 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_UNSWALLOW), _part_unswallow),
387 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_SWALLOW_GET), _part_swallow_get),
388 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_GET), _size_min_get),
389 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MAX_GET), _size_max_get),
390 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_CALC_FORCE), _calc_force),
391 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_CALC), _size_min_calc),
392 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PARTS_EXTENDS_CALC), _parts_extends_calc),
393 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_RESTRICTED_CALC), _size_min_restricted_calc),
394 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_STATE_GET), _part_state_get),
395 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_DIR_GET), _part_drag_dir_get),
396 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_SET), _part_drag_value_set),
397 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_GET), _part_drag_value_get),
398 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_SET), _part_drag_size_set),
399 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_GET), _part_drag_size_get),
400 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_SET), _part_drag_step_set),
401 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_GET), _part_drag_step_get),
402 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_SET), _part_drag_page_set),
403 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_GET), _part_drag_page_get),
404 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP), _part_drag_step),
405 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE), _part_drag_page),
406 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_APPEND), _part_box_append),
407 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_PREPEND), _part_box_prepend),
408 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_BEFORE), _part_box_insert_before),
409 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_AT), _part_box_insert_at),
410 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE), _part_box_remove),
411 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_AT), _part_box_remove_at),
412 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_ALL), _part_box_remove_all),
413 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET), _access_part_list_get),
414 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_CHILD_GET), _part_table_child_get),
415 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_PACK), _part_table_pack),
416 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_UNPACK), _part_table_unpack),
417 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_COL_ROW_SIZE_GET), _part_table_col_row_size_get),
418 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_CLEAR), _part_table_clear),
419 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_SET), _perspective_set),
420 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_GET), _perspective_get),
421 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PRELOAD), _preload),
422 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET), _update_hints_set),
423 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET), _update_hints_get),
424 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_OBJECT_GET), _part_external_object_get),
425 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_SET), _part_external_param_set),
426 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_GET), _part_external_param_get),
427 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_CONTENT_GET), _part_external_content_get),
428 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_TYPE_GET), _part_external_param_type_get),
429 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_SET), _edje_smart_file_set),
430 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_GET), _file_get),
431 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_LOAD_ERROR_GET), _load_error_get),
432 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_SEND), _message_send),
433 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_HANDLER_SET), _message_handler_set),
434 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS), _message_signal_process),
435 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_ADD), _signal_callback_add),
436 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL), _signal_callback_del),
437 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL_FULL), _signal_callback_del_full),
438 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_EMIT), _signal_emit),
439 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_SET), _play_set),
440 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_GET), _play_get),
441 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_SET), _animation_set),
442 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_GET), _animation_get),
443 EO_OP_FUNC_SENTINEL
444 };
445
446 eo_class_funcs_set(klass, func_desc);
447}
448
449static const Eo_Op_Description op_desc[] = {
450 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SCALE_SET, "Set the scaling factor for a given Edje object."),
451 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SCALE_GET, "Get a given Edje object's scaling factor."),
452 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MIRRORED_GET, "Get the RTL orientation for this object."),
453 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MIRRORED_SET, "Set the RTL orientation for this object."),
454 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_DATA_GET, "Retrive an <b>EDC data field's value</b> from a given Edje"),
455 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_FREEZE, "Freezes the Edje object."),
456 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_THAW, "Thaws the Edje object."),
457 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_COLOR_CLASS_SET, "Sets the object color class."),
458 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_COLOR_CLASS_GET, "Gets the object color class."),
459 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_CLASS_SET, "Sets Edje text class."),
460 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXISTS, "Check if an Edje part exists in a given Edje object's group"),
461 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_OBJECT_GET, "Get a handle to the Evas object implementing a given Edje"),
462 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_GEOMETRY_GET, "Retrieve the geometry of a given Edje part, in a given Edje"),
463 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_ITEM_PROVIDER_SET, "Set the function that provides item objects for named items in an edje entry text"),
464 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_CHANGE_CB_SET, "Set the object text callback."),
465 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PUSH, "Set the style of the"),
466 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_POP, "Delete the top style form the user style stack."),
467 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PEEK, "Return the text of the object part."),
468 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SET, "Sets the text for an object part"),
469 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_GET, "Return the text of the object part."),
470 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ESCAPED_SET, "Sets the text for an object part, but converts HTML escapes to UTF8"),
471 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_SET, "Sets the raw (non escaped) text for an object part."),
472 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_GET, "Returns the text of the object part, without escaping."),
473 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECTION_GET, "Return the selection text of the object part."),
474 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE, "Set the selection to be none."),
475 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL, "Set the selection to be everything."),
476 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INSERT, "Insert text for an object part."),
477 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_APPEND, "Insert text for an object part."),
478 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_LIST_GET, "Return a list of char anchor names."),
479 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_GEOMETRY_GET, "Return a list of Evas_Textblock_Rectangle anchor rectangles."),
480 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_LIST_GET, "Return a list of char item names."),
481 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_GEOMETRY_GET, "Return item geometry."),
482 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_GEOMETRY_GET, "Returns the cursor geometry of the part relative to the edje"),
483 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_USER_INSERT, "This function inserts text as if the user has inserted it."),
484 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALLOW_SET, "Enables selection if the entry is an EXPLICIT selection mode"),
485 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT, "Aborts any selection action on a part."),
486 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN, "Starts selecting at current cursor position"),
487 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND, "Extends the current selection to the current cursor position"),
488 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_GET, "Get the input method context in entry."),
489 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_NEXT, "Advances the cursor to the next cursor position."),
490 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_PREV, "Moves the cursor to the previous char"),
491 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_UP, "Move the cursor to the char above the current cursor position."),
492 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_DOWN, "Moves the cursor to the char below the current cursor position."),
493 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_BEGIN_SET, "Moves the cursor to the beginning of the text part"),
494 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_END_SET, "Moves the cursor to the end of the text part."),
495 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COPY, "Copy the cursor to another cursor."),
496 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_BEGIN_SET, "Move the cursor to the beginning of the line."),
497 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_END_SET, "Move the cursor to the end of the line."),
498 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COORD_SET, "Position the given cursor to a X,Y position."),
499 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_FORMAT_GET, "Returns whether the cursor points to a format."),
500 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_VISIBLE_FORMAT_GET, "Return true if the cursor points to a visible format"),
501 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_CONTENT_GET, "Returns the content (char) at the cursor position."),
502 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_SET, "Sets the cursor position to the given value"),
503 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_GET, "Retrieves the current position of the cursor"),
504 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET, "Reset the input method context if needed."),
505 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET, "Set the layout of the input panel."),
506 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET, "Get the layout of the input panel."),
507 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET, "Set the autocapitalization type on the immodule."),
508 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET, "Retrieves the autocapitalization type"),
509 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET, "Set whether the prediction is allowed or not."),
510 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_GET, "Get whether the prediction is allowed or not."),
511 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_SET, "Sets the attribute to show the input panel automatically."),
512 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_GET, "Retrieve the attribute to show the input panel automatically."),
513 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW, "Show the input panel (virtual keyboard) based on the input panel property such as layout, autocapital types, and so on."),
514 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_HIDE, "Hide the input panel (virtual keyboard)."),
515 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_SET, "Set the language mode of the input panel."),
516 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_GET, "Get the language mode of the input panel."),
517 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_SET, "Set the input panel-specific data to deliver to the input panel."),
518 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_GET, "Get the specific data of the current active input panel."),
519 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_SET, "Set the return key type. This type is used to set string or icon on the return key of the input panel."),
520 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET, "Get the return key type."),
521 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET, "Set the return key on the input panel to be disabled."),
522 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET, "Get whether the return key on the input panel should be disabled or not."),
523 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD, "Add a filter function for newly inserted text."),
524 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL, "Delete a function from the filter list."),
525 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL, "Delete a function and matching user data from the filter list."),
526 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_ADD, "Add a markup filter function for newly inserted text."),
527 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL, "Delete a function from the markup filter list."),
528 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL_FULL, "Delete a function and matching user data from the markup filter list."),
529 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_SWALLOW, "Swallows an object into one of the Edje object @c SWALLOW"),
530 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_UNSWALLOW, "Unswallow an object."),
531 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_SWALLOW_GET, "Get the object currently swallowed by a part."),
532 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MIN_GET, "Get the minimum size specified -- as an EDC property -- for a"),
533 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MAX_GET, "Get the maximum size specified -- as an EDC property -- for a"),
534 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_CALC_FORCE, "Force a Size/Geometry calculation."),
535 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MIN_CALC, "Calculate the minimum required size for a given Edje object."),
536 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PARTS_EXTENDS_CALC, "Calculate the geometry of the region, relative to a given Edje"),
537 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MIN_RESTRICTED_CALC, "Calculate the minimum required size for a given Edje object."),
538 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_STATE_GET, "Returns the state of the Edje part."),
539 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_DIR_GET, "Determine dragable directions."),
540 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_SET, "Set the dragable object location."),
541 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_GET, "Get the dragable object location."),
542 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_SET, "Set the dragable object size."),
543 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_GET, "Get the dragable object size."),
544 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_SET, "Sets the drag step increment."),
545 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_GET, "Gets the drag step increment values."),
546 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_SET, "Sets the page step increments."),
547 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_GET, "Gets the page step increments."),
548 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_STEP, "Steps the dragable x,y steps."),
549 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE, "Pages x,y steps."),
550 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_APPEND, "Appends an object to the box."),
551 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_PREPEND, "Prepends an object to the box."),
552 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_BEFORE, "Adds an object to the box."),
553 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_AT, "Inserts an object to the box."),
554 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE, "Removes an object from the box."),
555 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_AT, "Removes an object from the box."),
556 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_ALL, "Removes all elements from the box."),
557 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET, "Retrieve a list all accessibility part names"),
558 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_CHILD_GET, "Retrieve a child from a table"),
559 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_PACK, "Packs an object into the table."),
560 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_UNPACK, "Removes an object from the table."),
561 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_COL_ROW_SIZE_GET, "Gets the number of columns and rows the table has."),
562 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_CLEAR, "Removes all object from the table."),
563 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PERSPECTIVE_SET, "Set the given perspective object on this Edje object."),
564 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PERSPECTIVE_GET, "Get the current perspective used on this Edje object."),
565 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PRELOAD, "Preload the images on the Edje Object in the background."),
566 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET, "Edje will automatically update the size hints on itself."),
567 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET, "Wether or not Edje will update size hints on itself."),
568 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_OBJECT_GET, "Get the object created by this external part."),
569 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_SET, "Set the parameter for the external part."),
570 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_GET, "Get the parameter for the external part."),
571 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_CONTENT_GET, "Get an object contained in an part of type EXTERNAL"),
572 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_TYPE_GET, "Facility to query the type of the given parameter of the given part."),
573 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_FILE_SET, "Sets the @b EDJ file (and group within it) to load an Edje"),
574 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_FILE_GET, "Get the file and group name that a given Edje object is bound to"),
575 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_LOAD_ERROR_GET, "Gets the (last) file loading error for a given Edje object"),
576 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MESSAGE_SEND, "Send an (Edje) message to a given Edje object"),
577 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MESSAGE_HANDLER_SET, "Set an Edje message handler function for a given Edje object."),
578 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS, "Process an object's message queue."),
579 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_ADD, "Add a callback for an arriving Edje signal, emitted by"),
580 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL, "Remove a signal-triggered callback from an object."),
581 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL_FULL, "Unregister/delete a callback set for an arriving Edje"),
582 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_EMIT, "Send/emit an Edje signal to a given Edje object"),
583 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PLAY_SET, "Set the Edje object to playing or paused states."),
584 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PLAY_GET, "Get the Edje object's state."),
585 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_ANIMATION_SET, "Set the object's animation state."),
586 EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_ANIMATION_GET, "Get the Edje object's animation state."),
587 EO_OP_DESCRIPTION_SENTINEL
588};
589
590static const Eo_Class_Description class_desc = {
591 EO_VERSION,
592 "Edje_Smart",
593 EO_CLASS_TYPE_REGULAR,
594 EO_CLASS_DESCRIPTION_OPS(&EDJE_OBJ_BASE_ID, op_desc, EDJE_OBJ_SUB_ID_LAST),
595 NULL,
596 sizeof(Edje),
597 _class_constructor,
598 NULL
599};
600
601EO_DEFINE_CLASS(edje_object_class_get, &class_desc, EVAS_OBJ_SMART_CLIPPED_CLASS, NULL);
602
diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c
index ad4525ee3b..1ff9de733e 100644
--- a/legacy/edje/src/lib/edje_util.c
+++ b/legacy/edje/src/lib/edje_util.c
@@ -349,46 +349,72 @@ edje_password_show_last_timeout_set(double password_show_last_timeout)
349EAPI Eina_Bool 349EAPI Eina_Bool
350edje_object_scale_set(Evas_Object *obj, double scale) 350edje_object_scale_set(Evas_Object *obj, double scale)
351{ 351{
352 if (!eo_isa(obj, EDJE_OBJ_CLASS)) return EINA_FALSE;
353 if (!obj) return EINA_FALSE;
354 Eina_Bool ret = EINA_FALSE;
355 eo_do(obj, edje_obj_scale_set(scale, &ret));
356 return ret;
357}
358
359void
360_scale_set(Eo *obj, void *_pd, va_list *list)
361{
362 double scale = va_arg(*list, double);
363 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
364 if (ret) *ret = EINA_TRUE;
365
352 Edje *ed, *ged; 366 Edje *ed, *ged;
353 Evas_Object *o; 367 Evas_Object *o;
354 Eina_List *l; 368 Eina_List *l;
355 369
356 ed = _edje_fetch(obj); 370 ed = _pd;
357 if (!ed) return EINA_FALSE; 371 if (ed->scale == scale) return;
358 if (ed->scale == scale) return EINA_TRUE;
359 ed->scale = FROM_DOUBLE(scale); 372 ed->scale = FROM_DOUBLE(scale);
360 EINA_LIST_FOREACH(ed->groups, l, ged) 373 EINA_LIST_FOREACH(ed->groups, l, ged)
361 ged->scale = ed->scale; 374 ged->scale = ed->scale;
362 EINA_LIST_FOREACH(ed->subobjs, l, o) 375 EINA_LIST_FOREACH(ed->subobjs, l, o)
363 edje_object_calc_force(o); 376 edje_object_calc_force(o);
364 edje_object_calc_force(obj); 377 edje_object_calc_force(obj);
365 return EINA_TRUE;
366} 378}
367 379
368EAPI double 380EAPI double
369edje_object_scale_get(const Evas_Object *obj) 381edje_object_scale_get(const Evas_Object *obj)
370{ 382{
371 Edje *ed; 383 if (!obj) return 0.0;
384 double ret = 0.0;
385 eo_do((Eo *)obj, edje_obj_scale_get(&ret));
386 return ret;
387}
372 388
373 ed = _edje_fetch(obj); 389void
374 if (!ed) return 0.0; 390_scale_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
375 return TO_DOUBLE(ed->scale); 391{
392 double *ret = va_arg(*list, double *);
393 const Edje *ed = _pd;
394 *ret = TO_DOUBLE(ed->scale);
376} 395}
377 396
378EAPI Eina_Bool 397EAPI Eina_Bool
379edje_object_mirrored_get(const Evas_Object *obj) 398edje_object_mirrored_get(const Evas_Object *obj)
380{ 399{
381 Edje *ed; 400 if (!obj) return EINA_FALSE;
382 401 Eina_Bool ret = EINA_FALSE;
383 ed = _edje_fetch(obj); 402 eo_do((Eo *)obj, edje_obj_mirrored_get(&ret));
384 if (!ed) return EINA_FALSE; 403 return ret;
404}
385 405
386 return ed->is_rtl; 406void
407_mirrored_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
408{
409 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
410 const Edje *ed = _pd;
411 *ret = ed->is_rtl;
387} 412}
388 413
389void 414void
390_edje_object_orientation_inform(Evas_Object *obj) 415_edje_object_orientation_inform(Evas_Object *obj)
391{ 416{
417 if (!obj) return;
392 if (edje_object_mirrored_get(obj)) 418 if (edje_object_mirrored_get(obj))
393 edje_object_signal_emit(obj, "edje,state,rtl", "edje"); 419 edje_object_signal_emit(obj, "edje,state,rtl", "edje");
394 else 420 else
@@ -398,11 +424,18 @@ _edje_object_orientation_inform(Evas_Object *obj)
398EAPI void 424EAPI void
399edje_object_mirrored_set(Evas_Object *obj, Eina_Bool rtl) 425edje_object_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
400{ 426{
401 Edje *ed; 427 if (!obj) return;
428 eo_do(obj, edje_obj_mirrored_set(rtl));
429}
430
431void
432_mirrored_set(Eo *obj, void *_pd, va_list *list)
433{
434 Eina_Bool rtl = va_arg(*list, int);
435
436 Edje *ed = _pd;
402 unsigned int i; 437 unsigned int i;
403 438
404 ed = _edje_fetch(obj);
405 if (!ed) return;
406 if (ed->is_rtl == rtl) return; 439 if (ed->is_rtl == rtl) return;
407 440
408 ed->is_rtl = rtl; 441 ed->is_rtl = rtl;
@@ -429,24 +462,46 @@ edje_object_mirrored_set(Evas_Object *obj, Eina_Bool rtl)
429EAPI const char * 462EAPI const char *
430edje_object_data_get(const Evas_Object *obj, const char *key) 463edje_object_data_get(const Evas_Object *obj, const char *key)
431{ 464{
432 Edje *ed; 465 if (!obj) return NULL;
466 const char *ret = NULL;
467 eo_do((Eo *)obj, edje_obj_data_get(key, &ret));
468 return ret;
469}
470
471void
472_data_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
473{
474 const char *key = va_arg(*list, const char *);
475 const char **ret = va_arg(*list, const char **);
476 *ret = NULL;
477
478 const Edje *ed = _pd;
433 479
434 ed = _edje_fetch(obj);
435 if ((!ed) || (!key)) 480 if ((!ed) || (!key))
436 return NULL; 481 return;
437 if (!ed->collection) return NULL; 482 if (!ed->collection) return;
438 if (!ed->collection->data) return NULL; 483 if (!ed->collection->data) return;
439 return edje_string_get(eina_hash_find(ed->collection->data, key)); 484 *ret = edje_string_get(eina_hash_find(ed->collection->data, key));
440} 485}
441 486
442EAPI int 487EAPI int
443edje_object_freeze(Evas_Object *obj) 488edje_object_freeze(Evas_Object *obj)
444{ 489{
445 Edje *ed; 490 if (!obj) return 0;
491 int ret = 0;
492 eo_do(obj, edje_obj_freeze(&ret));
493 return ret;
494}
495
496void
497_freeze(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
498{
499 int *ret = va_arg(*list, int *);
500
501 Edje *ed = _pd;
446 unsigned int i; 502 unsigned int i;
447 503
448 ed = _edje_fetch(obj); 504 if (ret) *ret = 0;
449 if (!ed) return 0;
450 for (i = 0; i < ed->table_parts_size; i++) 505 for (i = 0; i < ed->table_parts_size; i++)
451 { 506 {
452 Edje_Real_Part *rp; 507 Edje_Real_Part *rp;
@@ -457,17 +512,27 @@ edje_object_freeze(Evas_Object *obj)
457 (rp->typedata.swallow->swallowed_object)) 512 (rp->typedata.swallow->swallowed_object))
458 edje_object_freeze(rp->typedata.swallow->swallowed_object); 513 edje_object_freeze(rp->typedata.swallow->swallowed_object);
459 } 514 }
460 return _edje_freeze(ed); 515 int int_ret = _edje_freeze(ed);
516 if (ret) *ret = int_ret;
461} 517}
462 518
463EAPI int 519EAPI int
464edje_object_thaw(Evas_Object *obj) 520edje_object_thaw(Evas_Object *obj)
465{ 521{
466 Edje *ed; 522 if (!obj) return 0;
523 int ret;
524 eo_do(obj, edje_obj_thaw(&ret));
525 return ret;
526}
527
528void
529_thaw(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
530{
531 int *ret = va_arg(*list, int *);
532 Edje *ed = _pd;
467 unsigned int i; 533 unsigned int i;
468 534
469 ed = _edje_fetch(obj); 535 if (ret) *ret = 0;
470 if (!ed) return 0;
471 for (i = 0; i < ed->table_parts_size; i++) 536 for (i = 0; i < ed->table_parts_size; i++)
472 { 537 {
473 Edje_Real_Part *rp; 538 Edje_Real_Part *rp;
@@ -479,7 +544,8 @@ edje_object_thaw(Evas_Object *obj)
479 (rp->typedata.swallow->swallowed_object)) 544 (rp->typedata.swallow->swallowed_object))
480 edje_object_thaw(rp->typedata.swallow->swallowed_object); 545 edje_object_thaw(rp->typedata.swallow->swallowed_object);
481 } 546 }
482 return _edje_thaw(ed); 547 int int_ret = _edje_thaw(ed);
548 if (ret) *ret = int_ret;
483} 549}
484 550
485EAPI Eina_Bool 551EAPI Eina_Bool
@@ -645,12 +711,36 @@ _edje_color_class_list_foreach(const Eina_Hash *hash __UNUSED__, const void *key
645EAPI Eina_Bool 711EAPI Eina_Bool
646edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3) 712edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, int g, int b, int a, int r2, int g2, int b2, int a2, int r3, int g3, int b3, int a3)
647{ 713{
648 Edje *ed; 714 if (!obj) return EINA_FALSE;
715 Eina_Bool ret = EINA_FALSE;
716 eo_do(obj, edje_obj_color_class_set(color_class, r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3, &ret));
717 return ret;
718}
719
720void
721_color_class_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
722{
723 const char *color_class = va_arg(*list, const char *);
724 int r = va_arg(*list, int);
725 int g = va_arg(*list, int);
726 int b = va_arg(*list, int);
727 int a = va_arg(*list, int);
728 int r2 = va_arg(*list, int);
729 int g2 = va_arg(*list, int);
730 int b2 = va_arg(*list, int);
731 int a2 = va_arg(*list, int);
732 int r3 = va_arg(*list, int);
733 int g3 = va_arg(*list, int);
734 int b3 = va_arg(*list, int);
735 int a3 = va_arg(*list, int);
736 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
737 if (ret) *ret = EINA_FALSE;
738
739 Edje *ed = _pd;
649 Edje_Color_Class *cc; 740 Edje_Color_Class *cc;
650 unsigned int i; 741 unsigned int i;
651 742
652 ed = _edje_fetch(obj); 743 if ((!ed) || (!color_class)) return;
653 if ((!ed) || (!color_class)) return EINA_FALSE;
654 if (r < 0) r = 0; 744 if (r < 0) r = 0;
655 else if (r > 255) r = 255; 745 else if (r > 255) r = 255;
656 if (g < 0) g = 0; 746 if (g < 0) g = 0;
@@ -668,7 +758,10 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in
668 (cc->b2 == b2) && (cc->a2 == a2) && 758 (cc->b2 == b2) && (cc->a2 == a2) &&
669 (cc->r3 == r3) && (cc->g3 == g3) && 759 (cc->r3 == r3) && (cc->g3 == g3) &&
670 (cc->b3 == b3) && (cc->a3 == a3)) 760 (cc->b3 == b3) && (cc->a3 == a3))
671 return EINA_TRUE; 761 {
762 if (ret) *ret = EINA_TRUE;
763 return;
764 }
672 cc->r = r; 765 cc->r = r;
673 cc->g = g; 766 cc->g = g;
674 cc->b = b; 767 cc->b = b;
@@ -687,16 +780,17 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in
687 ed->all_part_change = EINA_TRUE; 780 ed->all_part_change = EINA_TRUE;
688#endif 781#endif
689 _edje_recalc(ed); 782 _edje_recalc(ed);
690 return EINA_TRUE; 783 if (ret) *ret = EINA_TRUE;
784 return;
691 } 785 }
692 786
693 color_class = eina_stringshare_add(color_class); 787 color_class = eina_stringshare_add(color_class);
694 if (!color_class) return EINA_FALSE; 788 if (!color_class) return;
695 cc = malloc(sizeof(Edje_Color_Class)); 789 cc = malloc(sizeof(Edje_Color_Class));
696 if (!cc) 790 if (!cc)
697 { 791 {
698 eina_stringshare_del(color_class); 792 eina_stringshare_del(color_class);
699 return EINA_FALSE; 793 return;
700 } 794 }
701 cc->name = color_class; 795 cc->name = color_class;
702 cc->r = r; 796 cc->r = r;
@@ -735,13 +829,38 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in
735 829
736 _edje_recalc(ed); 830 _edje_recalc(ed);
737 _edje_emit(ed, "color_class,set", color_class); 831 _edje_emit(ed, "color_class,set", color_class);
738 return EINA_TRUE; 832 if (ret) *ret = EINA_TRUE;
739} 833}
740 834
741EAPI Eina_Bool 835EAPI Eina_Bool
742edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3) 836edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int *a2, int *r3, int *g3, int *b3, int *a3)
743{ 837{
744 Edje *ed = _edje_fetch(obj); 838 if (!obj) return EINA_FALSE;
839 Eina_Bool ret = EINA_FALSE;
840 eo_do((Eo *)obj, edje_obj_color_class_get(color_class, r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3, &ret));
841 return ret;
842}
843
844void
845_color_class_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
846{
847 const char *color_class = va_arg(*list, const char *);
848 int *r = va_arg(*list, int *);
849 int *g = va_arg(*list, int *);
850 int *b = va_arg(*list, int *);
851 int *a = va_arg(*list, int *);
852 int *r2 = va_arg(*list, int *);
853 int *g2 = va_arg(*list, int *);
854 int *b2 = va_arg(*list, int *);
855 int *a2 = va_arg(*list, int *);
856 int *r3 = va_arg(*list, int *);
857 int *g3 = va_arg(*list, int *);
858 int *b3 = va_arg(*list, int *);
859 int *a3 = va_arg(*list, int *);
860 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
861 if (ret) *ret = EINA_FALSE;
862
863 const Edje *ed = _pd;
745 Edje_Color_Class *cc = _edje_color_class_find(ed, color_class); 864 Edje_Color_Class *cc = _edje_color_class_find(ed, color_class);
746 865
747 if (cc) 866 if (cc)
@@ -753,7 +872,8 @@ edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int
753 S(r3, g3, b3, a3); 872 S(r3, g3, b3, a3);
754#undef S 873#undef S
755#undef X 874#undef X
756 return EINA_TRUE; 875 if (ret) *ret = EINA_TRUE;
876 return;
757 } 877 }
758 else 878 else
759 { 879 {
@@ -764,7 +884,7 @@ edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int
764 S(r3, g3, b3, a3); 884 S(r3, g3, b3, a3);
765#undef S 885#undef S
766#undef X 886#undef X
767 return EINA_FALSE; 887 return;
768 } 888 }
769} 889}
770 890
@@ -917,13 +1037,27 @@ _edje_text_class_list_foreach(const Eina_Hash *hash __UNUSED__, const void *key,
917EAPI Eina_Bool 1037EAPI Eina_Bool
918edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size) 1038edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size)
919{ 1039{
920 Edje *ed; 1040 if (!obj) return EINA_FALSE;
1041 Eina_Bool ret = EINA_FALSE;
1042 eo_do(obj, edje_obj_text_class_set(text_class, font, size, &ret));
1043 return ret;
1044}
1045
1046void
1047_text_class_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1048{
1049 const char *text_class = va_arg(*list, const char *);
1050 const char *font = va_arg(*list, const char *);
1051 Evas_Font_Size size = va_arg(*list, Evas_Font_Size);
1052 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
1053
1054 Edje *ed = _pd;
921 Eina_List *l; 1055 Eina_List *l;
922 Edje_Text_Class *tc = NULL; 1056 Edje_Text_Class *tc = NULL;
923 unsigned int i; 1057 unsigned int i;
1058 if (ret) *ret = EINA_FALSE;
924 1059
925 ed = _edje_fetch(obj); 1060 if ((!ed) || (!text_class)) return;
926 if ((!ed) || (!text_class)) return EINA_FALSE;
927 1061
928 /* for each text_class in the edje */ 1062 /* for each text_class in the edje */
929 EINA_LIST_FOREACH(ed->text_classes, l, tc) 1063 EINA_LIST_FOREACH(ed->text_classes, l, tc)
@@ -934,7 +1068,10 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char
934 if ((tc->size == size) && 1068 if ((tc->size == size) &&
935 ((tc->font == font) || 1069 ((tc->font == font) ||
936 (tc->font && font && !strcmp(tc->font, font)))) 1070 (tc->font && font && !strcmp(tc->font, font))))
937 return EINA_TRUE; 1071 {
1072 if (ret) *ret = EINA_TRUE;
1073 return;
1074 }
938 1075
939 /* Update new text class properties */ 1076 /* Update new text class properties */
940 eina_stringshare_replace(&tc->font, font); 1077 eina_stringshare_replace(&tc->font, font);
@@ -947,12 +1084,12 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char
947 { 1084 {
948 /* No matches, create a new text class */ 1085 /* No matches, create a new text class */
949 tc = calloc(1, sizeof(Edje_Text_Class)); 1086 tc = calloc(1, sizeof(Edje_Text_Class));
950 if (!tc) return EINA_FALSE; 1087 if (!tc) return;
951 tc->name = eina_stringshare_add(text_class); 1088 tc->name = eina_stringshare_add(text_class);
952 if (!tc->name) 1089 if (!tc->name)
953 { 1090 {
954 free(tc); 1091 free(tc);
955 return EINA_FALSE; 1092 return;
956 } 1093 }
957 tc->font = eina_stringshare_add(font); 1094 tc->font = eina_stringshare_add(font);
958 tc->size = size; 1095 tc->size = size;
@@ -980,53 +1117,92 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char
980#endif 1117#endif
981 _edje_textblock_style_all_update(ed); 1118 _edje_textblock_style_all_update(ed);
982 _edje_recalc(ed); 1119 _edje_recalc(ed);
983 return EINA_TRUE; 1120 if (ret) *ret = EINA_TRUE;
984} 1121}
985 1122
986EAPI Eina_Bool 1123EAPI Eina_Bool
987edje_object_part_exists(const Evas_Object *obj, const char *part) 1124edje_object_part_exists(const Evas_Object *obj, const char *part)
988{ 1125{
989 Edje *ed; 1126 if (!obj) return EINA_FALSE;
1127 Eina_Bool ret = EINA_FALSE;
1128 eo_do((Eo *)obj, edje_obj_part_exists(part, &ret));
1129 return ret;
1130}
1131
1132void
1133_part_exists(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1134{
1135 const char *part = va_arg(*list, const char *);
1136 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
1137 *ret = EINA_FALSE;
1138
1139 const Edje *ed = _pd;
990 Edje_Real_Part *rp; 1140 Edje_Real_Part *rp;
991 1141
992 ed = _edje_fetch(obj); 1142 if ((!ed) || (!part)) return;
993 if ((!ed) || (!part)) return EINA_FALSE;
994 rp = _edje_real_part_recursive_get(ed, part); 1143 rp = _edje_real_part_recursive_get(ed, part);
995 if (!rp) return EINA_FALSE; 1144 if (!rp) return;
996 return EINA_TRUE; 1145 *ret = EINA_TRUE;
997} 1146}
998 1147
999EAPI const Evas_Object * 1148EAPI const Evas_Object *
1000edje_object_part_object_get(const Evas_Object *obj, const char *part) 1149edje_object_part_object_get(const Evas_Object *obj, const char *part)
1001{ 1150{
1002 Edje *ed; 1151 if (!obj) return NULL;
1152 const Evas_Object *ret = NULL;
1153 eo_do((Eo *)obj, edje_obj_part_object_get(part, &ret));
1154 return ret;
1155}
1156
1157void
1158_part_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1159{
1160 const char *part = va_arg(*list, const char *);
1161 const Evas_Object **ret = va_arg(*list, const Evas_Object **);
1162 *ret = NULL;
1163 Edje *ed = (Edje *)_pd;
1003 Edje_Real_Part *rp; 1164 Edje_Real_Part *rp;
1004 1165
1005 ed = _edje_fetch(obj); 1166 if ((!ed) || (!part)) return;
1006 if ((!ed) || (!part)) return NULL;
1007 1167
1008 /* Need to recalc before providing the object. */ 1168 /* Need to recalc before providing the object. */
1009 _edje_recalc_do(ed); 1169 _edje_recalc_do(ed);
1010 1170
1011 rp = _edje_real_part_recursive_get(ed, part); 1171 rp = _edje_real_part_recursive_get(ed, part);
1012 if (!rp) return NULL; 1172 if (!rp) return;
1013 return rp->object; 1173 *ret = rp->object;
1014} 1174}
1015 1175
1016EAPI Eina_Bool 1176EAPI Eina_Bool
1017edje_object_part_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h ) 1177edje_object_part_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h )
1018{ 1178{
1019 Edje *ed; 1179 if (!obj) return EINA_FALSE;
1180 Eina_Bool ret = EINA_FALSE;
1181 eo_do((Eo *)obj, edje_obj_part_geometry_get(part, x, y, w, h, &ret));
1182 return ret;
1183}
1184
1185void
1186_part_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1187{
1188 const char *part = va_arg(*list, const char *);
1189 Evas_Coord *x = va_arg(*list, Evas_Coord *);
1190 Evas_Coord *y = va_arg(*list, Evas_Coord *);
1191 Evas_Coord *w = va_arg(*list, Evas_Coord *);
1192 Evas_Coord *h = va_arg(*list, Evas_Coord *);
1193 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
1194 if (ret) *ret = EINA_FALSE;
1195
1196 Edje *ed = (Edje *)_pd;
1020 Edje_Real_Part *rp; 1197 Edje_Real_Part *rp;
1021 1198
1022 ed = _edje_fetch(obj);
1023 if ((!ed) || (!part)) 1199 if ((!ed) || (!part))
1024 { 1200 {
1025 if (x) *x = 0; 1201 if (x) *x = 0;
1026 if (y) *y = 0; 1202 if (y) *y = 0;
1027 if (w) *w = 0; 1203 if (w) *w = 0;
1028 if (h) *h = 0; 1204 if (h) *h = 0;
1029 return EINA_FALSE; 1205 return;
1030 } 1206 }
1031 1207
1032 /* Need to recalc before providing the object. */ 1208 /* Need to recalc before providing the object. */
@@ -1039,22 +1215,28 @@ edje_object_part_geometry_get(const Evas_Object *obj, const char *part, Evas_Coo
1039 if (y) *y = 0; 1215 if (y) *y = 0;
1040 if (w) *w = 0; 1216 if (w) *w = 0;
1041 if (h) *h = 0; 1217 if (h) *h = 0;
1042 return EINA_FALSE; 1218 return;
1043 } 1219 }
1044 if (x) *x = rp->x; 1220 if (x) *x = rp->x;
1045 if (y) *y = rp->y; 1221 if (y) *y = rp->y;
1046 if (w) *w = rp->w; 1222 if (w) *w = rp->w;
1047 if (h) *h = rp->h; 1223 if (h) *h = rp->h;
1048 return EINA_TRUE; 1224 if (ret) *ret = EINA_TRUE;
1049} 1225}
1050 1226
1051EAPI void 1227EAPI void
1052edje_object_item_provider_set(Evas_Object *obj, Edje_Item_Provider_Cb func, void *data) 1228edje_object_item_provider_set(Evas_Object *obj, Edje_Item_Provider_Cb func, void *data)
1053{ 1229{
1054 Edje *ed; 1230 if (!obj) return;
1231 eo_do(obj, edje_obj_item_provider_set(func, data));
1232}
1055 1233
1056 ed = _edje_fetch(obj); 1234void
1057 if (!ed) return; 1235_item_provider_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1236{
1237 Edje_Item_Provider_Cb func = va_arg(*list, Edje_Item_Provider_Cb);
1238 void *data = va_arg(*list, void *);
1239 Edje *ed = _pd;
1058 ed->item_provider.func = func; 1240 ed->item_provider.func = func;
1059 ed->item_provider.data = data; 1241 ed->item_provider.data = data;
1060} 1242}
@@ -1063,11 +1245,18 @@ edje_object_item_provider_set(Evas_Object *obj, Edje_Item_Provider_Cb func, void
1063EAPI void 1245EAPI void
1064edje_object_text_change_cb_set(Evas_Object *obj, Edje_Text_Change_Cb func, void *data) 1246edje_object_text_change_cb_set(Evas_Object *obj, Edje_Text_Change_Cb func, void *data)
1065{ 1247{
1066 Edje *ed; 1248 if (!obj) return;
1249 eo_do(obj, edje_obj_text_change_cb_set(func, data));
1250}
1251
1252void
1253_text_change_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1254{
1255 Edje_Text_Change_Cb func = va_arg(*list, Edje_Text_Change_Cb);
1256 void *data = va_arg(*list, void *);
1257 Edje *ed = _pd;
1067 unsigned int i; 1258 unsigned int i;
1068 1259
1069 ed = _edje_fetch(obj);
1070 if (!ed) return;
1071 ed->text_change.func = func; 1260 ed->text_change.func = func;
1072 ed->text_change.data = data; 1261 ed->text_change.data = data;
1073 1262
@@ -1156,11 +1345,19 @@ EAPI void
1156edje_object_part_text_style_user_push(Evas_Object *obj, const char *part, 1345edje_object_part_text_style_user_push(Evas_Object *obj, const char *part,
1157 const char *style) 1346 const char *style)
1158{ 1347{
1159 Edje *ed; 1348 if (!obj) return;
1349 eo_do(obj, edje_obj_part_text_style_user_push(part, style));
1350}
1351
1352void
1353_part_text_style_user_push(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1354{
1355 const char *part = va_arg(*list, const char *);
1356 const char *style = va_arg(*list, const char *);
1357 Edje *ed = _pd;
1160 Edje_Real_Part *rp; 1358 Edje_Real_Part *rp;
1161 Evas_Textblock_Style *ts; 1359 Evas_Textblock_Style *ts;
1162 1360
1163 ed = _edje_fetch(obj);
1164 if ((!ed) || (!part) || (!style)) return; 1361 if ((!ed) || (!part) || (!style)) return;
1165 rp = _edje_real_part_recursive_get(ed, part); 1362 rp = _edje_real_part_recursive_get(ed, part);
1166 if (!rp) return; 1363 if (!rp) return;
@@ -1180,10 +1377,17 @@ edje_object_part_text_style_user_push(Evas_Object *obj, const char *part,
1180EAPI void 1377EAPI void
1181edje_object_part_text_style_user_pop(Evas_Object *obj, const char *part) 1378edje_object_part_text_style_user_pop(Evas_Object *obj, const char *part)
1182{ 1379{
1183 Edje *ed; 1380 if (!obj) return;
1381 eo_do(obj, edje_obj_part_text_style_user_pop(part));
1382}
1383
1384void
1385_part_text_style_user_pop(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1386{
1387 const char *part = va_arg(*list, const char *);
1388 Edje *ed = _pd;
1184 Edje_Real_Part *rp; 1389 Edje_Real_Part *rp;
1185 1390
1186 ed = _edje_fetch(obj);
1187 if ((!ed) || (!part)) return; 1391 if ((!ed) || (!part)) return;
1188 rp = _edje_real_part_recursive_get(ed, part); 1392 rp = _edje_real_part_recursive_get(ed, part);
1189 if (!rp) return; 1393 if (!rp) return;
@@ -1200,21 +1404,30 @@ edje_object_part_text_style_user_pop(Evas_Object *obj, const char *part)
1200EAPI const char * 1404EAPI const char *
1201edje_object_part_text_style_user_peek(const Evas_Object *obj, const char *part) 1405edje_object_part_text_style_user_peek(const Evas_Object *obj, const char *part)
1202{ 1406{
1203 Edje *ed; 1407 if (!obj) return NULL;
1408 const char *ret = NULL;
1409 eo_do((Eo *)obj, edje_obj_part_text_style_user_peek(part, &ret));
1410 return ret;
1411}
1412
1413void
1414_part_text_style_user_peek(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1415{
1416 const char *part = va_arg(*list, const char *);
1417 const char **ret = va_arg(*list, const char **);
1418 if (ret) *ret = NULL;
1419 const Edje *ed = _pd;
1204 Edje_Real_Part *rp; 1420 Edje_Real_Part *rp;
1205 const Evas_Textblock_Style *ts; 1421 const Evas_Textblock_Style *ts;
1206 1422
1207 ed = _edje_fetch(obj); 1423 if ((!ed) || (!part)) return;
1208 if ((!ed) || (!part)) return NULL;
1209 rp = _edje_real_part_recursive_get(ed, part); 1424 rp = _edje_real_part_recursive_get(ed, part);
1210 if (!rp) return NULL; 1425 if (!rp) return;
1211 if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return NULL; 1426 if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return;
1212 1427
1213 ts = evas_object_textblock_style_user_peek(rp->object); 1428 ts = evas_object_textblock_style_user_peek(rp->object);
1214 if (ts) 1429 if (ts)
1215 return evas_textblock_style_get(ts); 1430 if (ret) *ret = evas_textblock_style_get(ts);
1216 else
1217 return NULL;
1218} 1431}
1219 1432
1220static void 1433static void
@@ -1246,64 +1459,111 @@ _edje_user_define_string(Edje *ed, const char *part, const char *raw_text)
1246EAPI Eina_Bool 1459EAPI Eina_Bool
1247edje_object_part_text_set(Evas_Object *obj, const char *part, const char *text) 1460edje_object_part_text_set(Evas_Object *obj, const char *part, const char *text)
1248{ 1461{
1249 Edje *ed; 1462 if (!obj) return EINA_FALSE;
1463 Eina_Bool ret = EINA_FALSE;
1464 eo_do(obj, edje_obj_part_text_set(part, text, &ret));
1465 return ret;
1466}
1467
1468void
1469_part_text_set(Eo *obj, void *_pd, va_list *list)
1470{
1471 const char *part = va_arg(*list, const char *);
1472 const char *text = va_arg(*list, const char *);
1473 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
1474 if (ret) *ret = EINA_FALSE;
1475 Edje *ed = _pd;
1250 Edje_Real_Part *rp; 1476 Edje_Real_Part *rp;
1251 Eina_Bool r; 1477 Eina_Bool r;
1252 1478
1253 ed = _edje_fetch(obj); 1479 if ((!ed) || (!part)) return;
1254 if ((!ed) || (!part)) return EINA_FALSE;
1255 rp = _edje_real_part_recursive_get(ed, part); 1480 rp = _edje_real_part_recursive_get(ed, part);
1256 if (!rp) return EINA_FALSE; 1481 if (!rp) return;
1257 if ((rp->part->type != EDJE_PART_TYPE_TEXT) && 1482 if ((rp->part->type != EDJE_PART_TYPE_TEXT) &&
1258 (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return EINA_FALSE; 1483 (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return;
1259 if ((rp->type != EDJE_RP_TYPE_TEXT) || 1484 if ((rp->type != EDJE_RP_TYPE_TEXT) ||
1260 (!rp->typedata.text)) return EINA_TRUE; 1485 (!rp->typedata.text))
1486 {
1487 if (ret) *ret = EINA_TRUE;
1488 return;
1489 }
1261 r = _edje_object_part_text_raw_set(obj, rp, part, text); 1490 r = _edje_object_part_text_raw_set(obj, rp, part, text);
1262 _edje_user_define_string(ed, part, rp->typedata.text->text); 1491 _edje_user_define_string(ed, part, rp->typedata.text->text);
1263 return r; 1492 if (ret) *ret = r;
1264} 1493}
1265 1494
1266EAPI const char * 1495EAPI const char *
1267edje_object_part_text_get(const Evas_Object *obj, const char *part) 1496edje_object_part_text_get(const Evas_Object *obj, const char *part)
1268{ 1497{
1269 Edje *ed; 1498 if (!obj) return NULL;
1499 const char *ret = NULL;
1500 eo_do((Eo *)obj, edje_obj_part_text_get(part, &ret));
1501 return ret;
1502}
1503
1504void
1505_part_text_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
1506{
1507 const char *part = va_arg(*list, const char *);
1508 const char **ret = va_arg(*list, const char **);
1509 *ret = NULL;
1510 Edje *ed = (Edje *)_pd;
1270 Edje_Real_Part *rp; 1511 Edje_Real_Part *rp;
1271 1512
1272 ed = _edje_fetch(obj); 1513 if ((!ed) || (!part)) return;
1273 if ((!ed) || (!part)) return NULL;
1274 1514
1275 /* Need to recalc before providing the object. */ 1515 /* Need to recalc before providing the object. */
1276 _edje_recalc_do(ed); 1516 _edje_recalc_do(ed);
1277 1517
1278 rp = _edje_real_part_recursive_get(ed, part); 1518 rp = _edje_real_part_recursive_get(ed, part);
1279 if (!rp) return NULL; 1519 if (!rp) return;
1280 if ((rp->type != EDJE_RP_TYPE_TEXT) || 1520 if ((rp->type != EDJE_RP_TYPE_TEXT) ||
1281 (!rp->typedata.text)) return NULL; 1521 (!rp->typedata.text)) return;
1282 if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) 1522 if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
1283 return _edje_entry_text_get(rp); 1523 {
1524 *ret = _edje_entry_text_get(rp);
1525 return;
1526 }
1284 else 1527 else
1285 { 1528 {
1286 if (rp->part->type == EDJE_PART_TYPE_TEXT) 1529 if (rp->part->type == EDJE_PART_TYPE_TEXT)
1287 return rp->typedata.text->text; 1530 {
1531 *ret = rp->typedata.text->text;
1532 return;
1533 }
1288 if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) 1534 if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
1289 return evas_object_textblock_text_markup_get(rp->object); 1535 {
1536 *ret = evas_object_textblock_text_markup_get(rp->object);
1537 return;
1538 }
1290 } 1539 }
1291 return NULL;
1292} 1540}
1293 1541
1294EAPI Eina_Bool 1542EAPI Eina_Bool
1295edje_object_part_text_escaped_set(Evas_Object *obj, const char *part, const char *text) 1543edje_object_part_text_escaped_set(Evas_Object *obj, const char *part, const char *text)
1296{ 1544{
1297 Edje *ed; 1545 if (!obj) return EINA_FALSE;
1546 Eina_Bool ret = EINA_FALSE;
1547 eo_do(obj, edje_obj_part_text_escaped_set(part, text, &ret));
1548 return ret;
1549}
1550
1551void
1552_part_text_escaped_set(Eo *obj, void *_pd, va_list *list)
1553{
1554 const char *part = va_arg(*list, const char *);
1555 const char *text = va_arg(*list, const char *);
1556 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
1557 if (ret) *ret = EINA_FALSE;
1558 Edje *ed = _pd;
1298 Edje_Real_Part *rp; 1559 Edje_Real_Part *rp;
1299 Eina_Bool ret; 1560 Eina_Bool int_ret;
1300 1561
1301 ed = _edje_fetch(obj); 1562 if ((!ed) || (!part)) return;
1302 if ((!ed) || (!part)) return EINA_FALSE;
1303 rp = _edje_real_part_recursive_get(ed, part); 1563 rp = _edje_real_part_recursive_get(ed, part);
1304 if (!rp) return EINA_FALSE; 1564 if (!rp) return;
1305 if ((rp->type != EDJE_RP_TYPE_TEXT) || 1565 if ((rp->type != EDJE_RP_TYPE_TEXT) ||
1306 (!rp->typedata.text)) return EINA_FALSE; 1566 (!rp->typedata.text)) return;
1307 if ((rp->part->type == EDJE_PART_TYPE_TEXT) && (text)) 1567 if ((rp->part->type == EDJE_PART_TYPE_TEXT) && (text))
1308 { 1568 {
1309 Eina_Strbuf *sbuf; 1569 Eina_Strbuf *sbuf;
@@ -1354,16 +1614,17 @@ edje_object_part_text_escaped_set(Evas_Object *obj, const char *part, const char
1354 } 1614 }
1355 p++;