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) WooHyun Jung (woohyun) Guilherme Silveira Flavio Ceolin +Daniel Zaoui 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 @@ 2012-10-10 * edje_entry: Add more tags(preedit_sub1~4) for a variety of preediting states. + +2012-10-21 Daniel Zaoui + + * Edje: change Edje to use Eo. + This change adds Eo support to Edje while keeping the old API intact. + 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: * Add more tags(preedit_sub1~4) for a variety of preediting states. Improvements: + * Change Edje to use Eo. * Check the number of parameter for image in edc. * Less memory used per part in an edje file (about 25% less). * 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; * @} */ +#define EDJE_OBJ_CLASS edje_object_class_get() + +const Eo_Class *edje_object_class_get(void) EINA_CONST; + +extern EAPI Eo_Op EDJE_OBJ_BASE_ID; + +enum +{ + EDJE_OBJ_SUB_ID_SCALE_SET, + EDJE_OBJ_SUB_ID_SCALE_GET, + EDJE_OBJ_SUB_ID_MIRRORED_GET, + EDJE_OBJ_SUB_ID_MIRRORED_SET, + EDJE_OBJ_SUB_ID_DATA_GET, + EDJE_OBJ_SUB_ID_FREEZE, + EDJE_OBJ_SUB_ID_THAW, + EDJE_OBJ_SUB_ID_COLOR_CLASS_SET, + EDJE_OBJ_SUB_ID_COLOR_CLASS_GET, + EDJE_OBJ_SUB_ID_TEXT_CLASS_SET, + EDJE_OBJ_SUB_ID_PART_EXISTS, + EDJE_OBJ_SUB_ID_PART_OBJECT_GET, + EDJE_OBJ_SUB_ID_PART_GEOMETRY_GET, + EDJE_OBJ_SUB_ID_ITEM_PROVIDER_SET, + EDJE_OBJ_SUB_ID_TEXT_CHANGE_CB_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PUSH, + EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_POP, + EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PEEK, + EDJE_OBJ_SUB_ID_PART_TEXT_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_ESCAPED_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_SELECTION_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE, + EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL, + EDJE_OBJ_SUB_ID_PART_TEXT_INSERT, + EDJE_OBJ_SUB_ID_PART_TEXT_APPEND, + EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_LIST_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_GEOMETRY_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_LIST_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_GEOMETRY_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_GEOMETRY_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_USER_INSERT, + EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALLOW_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT, + EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN, + EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND, + EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_NEXT, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_PREV, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_UP, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_DOWN, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_BEGIN_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_END_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COPY, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_BEGIN_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_END_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COORD_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_FORMAT_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_VISIBLE_FORMAT_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_CONTENT_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_HIDE, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_SET, + EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_DISABLED_GET, + EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD, + EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL, + EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL, + EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_ADD, + EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL, + EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL_FULL, + EDJE_OBJ_SUB_ID_PART_SWALLOW, + EDJE_OBJ_SUB_ID_PART_UNSWALLOW, + EDJE_OBJ_SUB_ID_PART_SWALLOW_GET, + EDJE_OBJ_SUB_ID_SIZE_MIN_GET, + EDJE_OBJ_SUB_ID_SIZE_MAX_GET, + EDJE_OBJ_SUB_ID_CALC_FORCE, + EDJE_OBJ_SUB_ID_SIZE_MIN_CALC, + EDJE_OBJ_SUB_ID_PARTS_EXTENDS_CALC, + EDJE_OBJ_SUB_ID_SIZE_MIN_RESTRICTED_CALC, + EDJE_OBJ_SUB_ID_PART_STATE_GET, + EDJE_OBJ_SUB_ID_PART_DRAG_DIR_GET, + EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_SET, + EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_GET, + EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_SET, + EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_GET, + EDJE_OBJ_SUB_ID_PART_DRAG_STEP_SET, + EDJE_OBJ_SUB_ID_PART_DRAG_STEP_GET, + EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_SET, + EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_GET, + EDJE_OBJ_SUB_ID_PART_DRAG_STEP, + EDJE_OBJ_SUB_ID_PART_DRAG_PAGE, + EDJE_OBJ_SUB_ID_PART_BOX_APPEND, + EDJE_OBJ_SUB_ID_PART_BOX_PREPEND, + EDJE_OBJ_SUB_ID_PART_BOX_INSERT_BEFORE, + EDJE_OBJ_SUB_ID_PART_BOX_INSERT_AT, + EDJE_OBJ_SUB_ID_PART_BOX_REMOVE, + EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_AT, + EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_ALL, + EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET, + EDJE_OBJ_SUB_ID_PART_TABLE_CHILD_GET, + EDJE_OBJ_SUB_ID_PART_TABLE_PACK, + EDJE_OBJ_SUB_ID_PART_TABLE_UNPACK, + EDJE_OBJ_SUB_ID_PART_TABLE_COL_ROW_SIZE_GET, + EDJE_OBJ_SUB_ID_PART_TABLE_CLEAR, + EDJE_OBJ_SUB_ID_PERSPECTIVE_SET, + EDJE_OBJ_SUB_ID_PERSPECTIVE_GET, + EDJE_OBJ_SUB_ID_PRELOAD, + EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET, + EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET, + + EDJE_OBJ_SUB_ID_PART_EXTERNAL_OBJECT_GET, + EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_SET, + EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_GET, + EDJE_OBJ_SUB_ID_PART_EXTERNAL_CONTENT_GET, + EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_TYPE_GET, + + EDJE_OBJ_SUB_ID_FILE_SET, + EDJE_OBJ_SUB_ID_FILE_GET, + EDJE_OBJ_SUB_ID_LOAD_ERROR_GET, + + EDJE_OBJ_SUB_ID_MESSAGE_SEND, + EDJE_OBJ_SUB_ID_MESSAGE_HANDLER_SET, + EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS, + + EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_ADD, + EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL, + EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL_FULL, + EDJE_OBJ_SUB_ID_SIGNAL_EMIT, + EDJE_OBJ_SUB_ID_PLAY_SET, + EDJE_OBJ_SUB_ID_PLAY_GET, + EDJE_OBJ_SUB_ID_ANIMATION_SET, + EDJE_OBJ_SUB_ID_ANIMATION_GET, + + EDJE_OBJ_SUB_ID_LAST +}; + +#define EDJE_OBJ_ID(sub_id) (EDJE_OBJ_BASE_ID + sub_id) + +#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) +#define edje_obj_scale_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SCALE_GET), EO_TYPECHECK(double *, ret) +#define edje_obj_mirrored_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_GET), EO_TYPECHECK(Eina_Bool *, ret) +#define edje_obj_mirrored_set(rtl) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_SET), EO_TYPECHECK(Eina_Bool, rtl) +#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) +#define edje_obj_freeze(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FREEZE), EO_TYPECHECK(int *, ret) +#define edje_obj_thaw(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_THAW), EO_TYPECHECK(int *, ret) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#define edje_obj_part_text_select_none(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE), EO_TYPECHECK(const char *, part) +#define edje_obj_part_text_select_all(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL), EO_TYPECHECK(const char *, part) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#define edje_obj_part_text_select_abort(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT), EO_TYPECHECK(const char *, part) +#define edje_obj_part_text_select_begin(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN), EO_TYPECHECK(const char *, part) +#define edje_obj_part_text_select_extend(part) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND), EO_TYPECHECK(const char *, part) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#define edje_obj_part_unswallow(obj_swallow) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_UNSWALLOW), EO_TYPECHECK(Evas_Object *, obj_swallow) +#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) +#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) +#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) +#define edje_obj_calc_force() EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_CALC_FORCE) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#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) +#define edje_obj_access_part_list_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET), EO_TYPECHECK(Eina_List **, ret) +#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) +#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) +#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) +#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) +#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) +#define edje_obj_perspective_set(ps) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_SET), EO_TYPECHECK(Edje_Perspective *, ps) +#define edje_obj_perspective_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_GET), EO_TYPECHECK(const Edje_Perspective **, ret) +#define edje_obj_preload(cancel, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PRELOAD), EO_TYPECHECK(Eina_Bool, cancel), EO_TYPECHECK(Eina_Bool *, ret) +#define edje_obj_update_hints_set(update) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET), EO_TYPECHECK(Eina_Bool, update) +#define edje_obj_update_hints_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET), EO_TYPECHECK(Eina_Bool *, ret) + +#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) +#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) +#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) +#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) +#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) + +/** + * @def edje_obj_file_set + * + * @param[in] file in + * @param[in] group in + * @param[out] ret out + * + */ +#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) +#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) +#define edje_obj_load_error_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_LOAD_ERROR_GET), EO_TYPECHECK(Edje_Load_Error *, ret) + +#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) +#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) +#define edje_obj_message_signal_process() EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS) + +#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) +#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) +#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) +#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) +#define edje_obj_play_set(play) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_SET), EO_TYPECHECK(Eina_Bool, play) +#define edje_obj_play_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_GET), EO_TYPECHECK(Eina_Bool *, ret) +#define edje_obj_animation_set(on) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_SET), EO_TYPECHECK(Eina_Bool, on) +#define edje_obj_animation_get(ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_GET), EO_TYPECHECK(Eina_Bool *, ret) + +#define EDJE_EDIT_CLASS edje_edit_class_get() + +const Eo_Class *edje_edit_class_get(void) EINA_CONST; + /** * @defgroup Edje_External_Part_Group Edje Use of External Parts * 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 @@ #include "edje_private.h" +#include + typedef struct _Edje_Transition_Animation_Data Edje_Transition_Animation_Data; struct _Edje_Transition_Animation_Data { @@ -169,7 +171,7 @@ _edje_box_recalc_apply(Edje *ed __UNUSED__, Edje_Real_Part *ep, Edje_Calc_Params ep->typedata.container->anim->end.align.x = param2_desc->box.align.x; ep->typedata.container->anim->end.align.y = param2_desc->box.align.y; - priv = evas_object_smart_data_get(ep->object); + priv = eo_data_get(ep->object, EVAS_OBJ_BOX_CLASS); if (priv == NULL) return; 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 @@ #define EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT #include "Edje_Edit.h" +#include + +#define MY_CLASS EDJE_EDIT_CLASS + static const char EDJE_EDIT_ERROR_GROUP_CURRENTLY_USED_STR[] = "Current group cannot be deleted"; static const char EDJE_EDIT_ERROR_GROUP_REFERENCED_STR[] = "Group still in use"; static 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; /* Get eed(Edje_Edit*) from obj(Evas_Object*) */ #define GET_EED_OR_RETURN(RET) \ Edje_Edit *eed; \ - if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ + if (!eo_isa(obj, MY_CLASS)) \ return RET; \ - eed = evas_object_smart_data_get(obj); \ + eed = eo_data_get(obj, MY_CLASS); \ if (!eed) return RET; /* Get ed(Edje*) from obj(Evas_Object*) */ @@ -39,9 +43,9 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0; Edje *ed; \ Edje_Edit *eed; \ Edje_Real_Part *rp; \ - if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ + if (!eo_isa(obj, MY_CLASS)) \ return RET; \ - eed = evas_object_smart_data_get(obj); \ + eed = eo_data_get(obj, MY_CLASS); \ if (!eed) return RET; \ ed = (Edje *)eed; \ rp = _edje_real_part_get(ed, part); \ @@ -53,9 +57,9 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0; Edje_Edit *eed; \ Edje_Real_Part *rp; \ Edje_Part_Description_Common *pd; \ - if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ + if (!eo_isa(obj, MY_CLASS)) \ return RET; \ - eed = evas_object_smart_data_get(obj); \ + eed = eo_data_get(obj, MY_CLASS); \ if (!eed) return RET; \ ed = (Edje *)eed; \ rp = _edje_real_part_get(ed, part); \ @@ -66,7 +70,7 @@ EAPI Eina_Error EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST = 0; /* Get epr(Edje_Program*) from obj(Evas_Object*) and prog(char*)*/ #define GET_EPR_OR_RETURN(RET) \ Edje_Program *epr; \ - if (!evas_object_smart_type_check_ptr(obj, _edje_edit_type)) \ + if (!eo_isa(obj, MY_CLASS)) \ return RET; \ epr = _edje_program_get_byname(obj, prog); \ if (!epr) return RET; @@ -120,47 +124,8 @@ struct _Program_Script Eina_Bool delete_me:1; }; -static void _edje_edit_smart_add(Evas_Object *obj); -static void _edje_edit_smart_del(Evas_Object *obj); - -static Eina_Bool _edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested); static Eina_Bool _edje_edit_edje_file_save(Eet_File *eetf, Edje_File *ef); -EVAS_SMART_SUBCLASS_NEW(_edje_edit_type, _edje_edit, Edje_Smart_Api, - Edje_Smart_Api, _edje_object_smart_class_get, NULL) - -static void -_edje_edit_smart_set_user(Edje_Smart_Api *sc) -{ - sc->base.add = _edje_edit_smart_add; - sc->base.del = _edje_edit_smart_del; - sc->file_set = _edje_edit_smart_file_set; -} - -static void -_edje_edit_smart_add(Evas_Object *obj) -{ - Edje_Edit *eed; - - eed = evas_object_smart_data_get(obj); - if (!eed) - { - const Evas_Smart *smart; - const Evas_Smart_Class *sc; - - eed = calloc(1, sizeof(Edje_Edit)); - if (!eed) return; - - smart = evas_object_smart_smart_get(obj); - sc = evas_smart_class_get(smart); - eed->base.api = (const Edje_Smart_Api *)sc; - - evas_object_smart_data_set(obj, eed); - } - - _edje_edit_parent_sc->base.add(obj); -} - static void _edje_edit_data_clean(Edje_Edit *eed) { @@ -192,15 +157,12 @@ _edje_edit_data_clean(Edje_Edit *eed) } static void -_edje_edit_smart_del(Evas_Object *obj) +_edje_edit_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) { - Edje_Edit *eed; - - eed = evas_object_smart_data_get(obj); - + Edje_Edit *eed = _pd; _edje_edit_data_clean(eed); - _edje_edit_parent_sc->base.del(obj); + eo_do_super(obj, evas_obj_smart_del()); } static void @@ -211,16 +173,20 @@ _edje_edit_program_script_free(Program_Script *ps) free(ps); } -static Eina_Bool -_edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested) +static void +_edje_edit_smart_file_set(Eo *obj, void *_pd, va_list *list) { - Edje_Edit *eed; + const char *file = va_arg(*list, const char *); + const char *group= va_arg(*list, const char *); + Eina_Array *nested = va_arg(*list, Eina_Array *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje_Edit *eed = _pd; Eet_File *ef; char **keys, buf[64]; int count, i; int len = strlen("edje/scripts/embryo/source/"); - eed = evas_object_smart_data_get(obj); + if (ret) *ret = EINA_FALSE; _edje_edit_data_clean(eed); @@ -237,8 +203,10 @@ _edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group, * (GROUP parts or BOX/TABLE items pointing to non-existent/renamed * groups). */ - if (!_edje_edit_parent_sc->file_set(obj, file, group, nested)) - return EINA_FALSE; + Eina_Bool int_ret = EINA_FALSE; + eo_do_super(obj, edje_obj_file_set(file, group, nested, &int_ret)); + if (!int_ret) + return; eed->program_scripts = eina_hash_int32_new((Eina_Free_Cb)_edje_edit_program_script_free); @@ -265,7 +233,7 @@ _edje_edit_smart_file_set(Evas_Object *obj, const char *file, const char *group, if (keys) free(keys); eet_close(ef); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } static void @@ -280,14 +248,22 @@ _edje_edit_error_register(void) } EAPI Evas_Object * -edje_edit_object_add(Evas *e) +edje_edit_object_add(Evas *evas) { + Evas_Object *e; + e = eo_add(MY_CLASS, evas); + eo_unref(e); + return e; +} + +static void +_constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED) +{ + eo_do_super(obj, eo_constructor()); eina_error_set(0); if (!EDJE_EDIT_ERROR_GROUP_DOES_NOT_EXIST) _edje_edit_error_register(); - - return evas_object_smart_add(e, _edje_edit_smart_class_new()); } /* End of Edje_Edit smart stuff */ @@ -462,7 +438,7 @@ _edje_import_image_file(Edje *ed, const char *path, int id) int bytes; /* Try to load the file */ - im = evas_object_image_add(ed->base.evas); + im = evas_object_image_add(ed->base->evas); if (!im) return EINA_FALSE; 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, // pc = ed->collection; - part_obj = edje_edit_object_add(ed->base.evas); + part_obj = edje_edit_object_add(ed->base->evas); old = eina_stringshare_add(old_group_name); @@ -2101,26 +2077,26 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type rp->part = ep; if (ep->type == EDJE_PART_TYPE_RECTANGLE) - rp->object = evas_object_rectangle_add(ed->base.evas); + rp->object = evas_object_rectangle_add(ed->base->evas); else if (ep->type == EDJE_PART_TYPE_IMAGE || ep->type == EDJE_PART_TYPE_PROXY) - rp->object = evas_object_image_add(ed->base.evas); + rp->object = evas_object_image_add(ed->base->evas); else if (ep->type == EDJE_PART_TYPE_TEXT) { _edje_text_part_on_add(ed, rp); - rp->object = evas_object_text_add(ed->base.evas); + rp->object = evas_object_text_add(ed->base->evas); evas_object_text_font_source_set(rp->object, ed->path); } else if (ep->type == EDJE_PART_TYPE_SWALLOW || ep->type == EDJE_PART_TYPE_GROUP || ep->type == EDJE_PART_TYPE_EXTERNAL) { - rp->object = evas_object_rectangle_add(ed->base.evas); + rp->object = evas_object_rectangle_add(ed->base->evas); evas_object_color_set(rp->object, 0, 0, 0, 0); evas_object_pass_events_set(rp->object, 1); evas_object_pointer_mode_set(rp->object, EVAS_OBJECT_POINTER_MODE_NOGRAB); } else if (ep->type == EDJE_PART_TYPE_TEXTBLOCK) - rp->object = evas_object_textblock_add(ed->base.evas); + rp->object = evas_object_textblock_add(ed->base->evas); else if (ep->type != EDJE_PART_TYPE_SPACER) ERR("wrong part type %i!", ep->type); if (rp->object) @@ -2155,8 +2131,8 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type if (child) _edje_real_part_swallow(rp, child, EINA_TRUE); } - evas_object_clip_set(rp->object, ed->base.clipper); - evas_object_show(ed->base.clipper); + evas_object_clip_set(rp->object, ed->base->clipper); + evas_object_show(ed->base->clipper); } /* Update table_parts */ @@ -2256,7 +2232,7 @@ edje_edit_part_del(Evas_Object *obj, const char* part) if (real->clip_to == rp) { - evas_object_clip_set(real->object, ed->base.clipper); + evas_object_clip_set(real->object, ed->base->clipper); real->clip_to = NULL; } if (real->drag && real->drag->confine_to == rp) @@ -2298,7 +2274,7 @@ edje_edit_part_del(Evas_Object *obj, const char* part) /* if all parts are gone, hide the clipper */ if (ed->table_parts_size == 0) - evas_object_hide(ed->base.clipper); + evas_object_hide(ed->base->clipper); edje_object_calc_force(obj); @@ -2507,9 +2483,9 @@ edje_edit_part_clip_to_set(Evas_Object *obj, const char *part, const char *clip_ evas_object_clip_unset(rp->object); } - evas_object_clip_set(rp->object, ed->base.clipper); + evas_object_clip_set(rp->object, ed->base->clipper); if (rp->typedata.swallow->swallowed_object) - evas_object_clip_set(rp->typedata.swallow->swallowed_object, ed->base.clipper); + evas_object_clip_set(rp->typedata.swallow->swallowed_object, ed->base->clipper); rp->part->clip_to_id = -1; rp->clip_to = NULL; @@ -2692,7 +2668,7 @@ edje_edit_part_source_set(Evas_Object *obj, const char *part, const char *source if (source) { rp->part->source = eina_stringshare_add(source); - child_obj = edje_object_add(ed->base.evas); + child_obj = edje_object_add(ed->base->evas); edje_object_file_set(child_obj, ed->file->path, source); _edje_real_part_swallow(rp, child_obj, EINA_TRUE); } @@ -7185,7 +7161,7 @@ _edje_generate_source_of_group(Edje *ed, Edje_Part_Collection_Directory_Entry *p Edje_Part_Collection *pc; Eina_Bool ret = EINA_TRUE; - obj = edje_edit_object_add(ed->base.evas); + obj = edje_edit_object_add(ed->base->evas); if (!edje_object_file_set(obj, ed->file->path, group)) return EINA_FALSE; 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 return EINA_FALSE; } - eed = evas_object_smart_data_get(obj); + eed = eo_data_get(obj, MY_CLASS); pc = eed->base.collection; BUF_APPENDF(I1"group { name: \"%s\";\n", group); @@ -7823,3 +7799,30 @@ edje_edit_print_internal_status(Evas_Object *obj) INF("****************** END ************************"); */ } + +static void +_class_constructor(Eo_Class *klass) +{ + const Eo_Op_Func_Description func_desc[] = { + EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _edje_edit_smart_del), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_SET), _edje_edit_smart_file_set), + EO_OP_FUNC_SENTINEL + }; + + eo_class_funcs_set(klass, func_desc); +} + +static const Eo_Class_Description class_desc = { + EO_VERSION, + "Edje_Edit", + EO_CLASS_TYPE_REGULAR, + EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0), + NULL, + sizeof(Edje_Edit), + _class_constructor, + NULL +}; + +EO_DEFINE_CLASS(edje_edit_class_get, &class_desc, EDJE_OBJ_CLASS, NULL); + 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) CHKPARAM(2); ed = embryo_program_data_get(ep); - evas_pointer_canvas_xy_get(ed->base.evas, &x, &y); + evas_pointer_canvas_xy_get(ed->base->evas, &x, &y); x -= ed->x; y -= ed->y; SETINT((int)x, params[1]); @@ -784,7 +784,7 @@ _edje_embryo_fn_get_mouse_buttons(Embryo_Program *ep, Embryo_Cell *params) CHKPARAM(0); ed = embryo_program_data_get(ep); - return evas_pointer_button_down_mask_get(ed->base.evas); + return evas_pointer_button_down_mask_get(ed->base->evas); } /* emit(sig[], src[]) */ @@ -2608,7 +2608,7 @@ _edje_embryo_fn_part_swallow(Embryo_Program *ep, Embryo_Cell *params) rp = ed->table_parts[part_id % ed->table_parts_size]; if (!rp) return 0; - new_obj = edje_object_add(ed->base.evas); + new_obj = edje_object_add(ed->base->evas); if (!new_obj) return 0; 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) sel = calloc(1, sizeof(Sel)); en->sel = eina_list_append(en->sel, sel); - ob = edje_object_add(en->rp->edje->base.evas); + ob = edje_object_add(en->rp->edje->base->evas); edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source); evas_object_smart_member_add(ob, smart); evas_object_stack_below(ob, o); @@ -588,7 +588,7 @@ _sel_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en) sel->obj_bg = ob; _edje_subobj_register(en->rp->edje, sel->obj_bg); - ob = edje_object_add(en->rp->edje->base.evas); + ob = edje_object_add(en->rp->edje->base->evas); edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source2); evas_object_smart_member_add(ob, smart); evas_object_stack_above(ob, o); @@ -846,7 +846,7 @@ _anchors_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en) sel = calloc(1, sizeof(Sel)); an->sel = eina_list_append(an->sel, sel); - ob = edje_object_add(en->rp->edje->base.evas); + ob = edje_object_add(en->rp->edje->base->evas); edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source5); evas_object_smart_member_add(ob, smart); evas_object_stack_below(ob, o); @@ -856,7 +856,7 @@ _anchors_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en) sel->obj_bg = ob; _edje_subobj_register(en->rp->edje, sel->obj_bg); - ob = edje_object_add(en->rp->edje->base.evas); + ob = edje_object_add(en->rp->edje->base->evas); edje_object_file_set(ob, en->rp->edje->path, en->rp->part->source6); evas_object_smart_member_add(ob, smart); evas_object_stack_above(ob, o); @@ -866,7 +866,7 @@ _anchors_update(Evas_Textblock_Cursor *c __UNUSED__, Evas_Object *o, Entry *en) sel->obj_fg = ob; _edje_subobj_register(en->rp->edje, sel->obj_fg); - ob = evas_object_rectangle_add(en->rp->edje->base.evas); + ob = evas_object_rectangle_add(en->rp->edje->base->evas); evas_object_color_set(ob, 0, 0, 0, 0); evas_object_smart_member_add(ob, smart); evas_object_stack_above(ob, o); @@ -2229,8 +2229,8 @@ _edje_entry_init(Edje *ed) evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb, ed); evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb, ed); evas_object_event_callback_add(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb, ed); - evas_event_callback_add(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed); - evas_event_callback_add(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed); + evas_event_callback_add(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed); + evas_event_callback_add(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed); } void @@ -2246,9 +2246,9 @@ _edje_entry_shutdown(Edje *ed) evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb); evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb); evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb); - if (evas_event_callback_del_full(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed) != ed) + if (evas_event_callback_del_full(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_IN, _evas_focus_in_cb, ed) != ed) ERR("could not unregister EVAS_CALLBACK_FOCUS_IN"); - if (evas_event_callback_del_full(ed->base.evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed) != ed) + if (evas_event_callback_del_full(ed->base->evas, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _evas_focus_out_cb, ed) != ed) ERR("could not unregister EVAS_CALLBACK_FOCUS_OUT"); } @@ -2290,7 +2290,7 @@ _edje_entry_real_part_init(Edje_Real_Part *rp) evas_object_textblock_replace_char_set(rp->object, "*"); } - en->cursor_bg = edje_object_add(rp->edje->base.evas); + en->cursor_bg = edje_object_add(rp->edje->base->evas); edje_object_file_set(en->cursor_bg, rp->edje->path, rp->part->source3); evas_object_smart_member_add(en->cursor_bg, rp->edje->obj); evas_object_stack_below(en->cursor_bg, rp->object); @@ -2298,7 +2298,7 @@ _edje_entry_real_part_init(Edje_Real_Part *rp) evas_object_pass_events_set(en->cursor_bg, EINA_TRUE); _edje_subobj_register(en->rp->edje, en->cursor_bg); - en->cursor_fg = edje_object_add(rp->edje->base.evas); + en->cursor_fg = edje_object_add(rp->edje->base->evas); edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4); evas_object_smart_member_add(en->cursor_fg, rp->edje->obj); evas_object_stack_above(en->cursor_fg, rp->object); @@ -2346,8 +2346,8 @@ _edje_entry_real_part_init(Edje_Real_Part *rp) ecore_imf_context_client_window_set (en->imf_context, (void *)ecore_evas_window_get - (ecore_evas_ecore_evas_get(rp->edje->base.evas))); - ecore_imf_context_client_canvas_set(en->imf_context, rp->edje->base.evas); + (ecore_evas_ecore_evas_get(rp->edje->base->evas))); + ecore_imf_context_client_canvas_set(en->imf_context, rp->edje->base->evas); ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context, _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) EAPI Evas_Object * edje_object_part_external_object_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + Evas_Object *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_external_object_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_external_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object **ret = va_arg(*list, Evas_Object **); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; /* Need to recalc before providing the object. */ _edje_recalc_do(ed); @@ -39,59 +50,86 @@ edje_object_part_external_object_get(const Evas_Object *obj, const char *part) if (!rp) { ERR("no part '%s'", part); - return NULL; + return; } if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) { ERR("cannot get external object of a part '%s' that is not EXTERNAL", rp->part->name); - return NULL; + return; } if ((rp->type != EDJE_RP_TYPE_SWALLOW) || - (!rp->typedata.swallow)) return NULL; - return rp->typedata.swallow->swallowed_object; + (!rp->typedata.swallow)) return; + *ret = rp->typedata.swallow->swallowed_object; } EAPI Eina_Bool edje_object_part_external_param_set(Evas_Object *obj, const char *part, const Edje_External_Param *param) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_external_param_set(part, param, &ret)); + return ret; +} + +void +_part_external_param_set(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const Edje_External_Param *param = va_arg(*list, const Edje_External_Param *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_FALSE; + + Edje *ed = _pd; Edje_Real_Part *rp; - if ((!param) || (!param->name)) return EINA_FALSE; + if ((!param) || (!param->name)) return; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { ERR("no part '%s'", part); - return EINA_FALSE; + return; } - return _edje_external_param_set(obj, rp, param); + if (_edje_external_param_set(obj, rp, param)) + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Edje_External_Param *param) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_external_param_get(part, param, &ret)); + return ret; +} + +void +_part_external_param_get(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_External_Param *param = va_arg(*list, Edje_External_Param *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + *ret = EINA_FALSE; + + const Edje *ed = _pd; Edje_Real_Part *rp; - if ((!param) || (!param->name)) return EINA_FALSE; + if ((!param) || (!param->name)) return; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { ERR("no part '%s'", part); - return EINA_FALSE; + return; } - return _edje_external_param_get(obj, rp, param); + *ret = _edje_external_param_get(obj, rp, param); } @@ -99,62 +137,90 @@ edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Ed EAPI Evas_Object * edje_object_part_external_content_get(const Evas_Object *obj, const char *part, const char *content) { - Edje *ed; + if (!obj) return NULL; + Evas_Object *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_external_content_get(part, content, &ret)); + return ret; +} + +void +_part_external_content_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *content = va_arg(*list, const char *); + Evas_Object **ret = va_arg(*list, Evas_Object **); + *ret = NULL; + + const Edje *ed = _pd; Edje_Real_Part *rp; - if (!content) return EINA_FALSE; + if (!content) return; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { ERR("no part '%s'", part); - return EINA_FALSE; + return; } if ((rp->type != EDJE_RP_TYPE_SWALLOW) || - (!rp->typedata.swallow)) return NULL; - return _edje_external_content_get(rp->typedata.swallow->swallowed_object, content); + (!rp->typedata.swallow)) return; + *ret = _edje_external_content_get(rp->typedata.swallow->swallowed_object, content); } EAPI Edje_External_Param_Type edje_object_part_external_param_type_get(const Evas_Object *obj, const char *part, const char *param) { - Edje *ed; + if (!obj) return EDJE_EXTERNAL_PARAM_TYPE_MAX; + Edje_External_Param_Type ret = EDJE_EXTERNAL_PARAM_TYPE_MAX; + eo_do((Eo *)obj, edje_obj_part_external_param_type_get(part, param, &ret)); + return ret; +} + +void +_part_external_param_type_get(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *param = va_arg(*list, const char *); + Edje_External_Param_Type *ret = va_arg(*list, Edje_External_Param_Type *); + *ret = EDJE_EXTERNAL_PARAM_TYPE_MAX; + + const Edje *ed = _pd; Edje_Real_Part *rp; Edje_External_Type *type; Edje_External_Param_Info *info; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EDJE_EXTERNAL_PARAM_TYPE_MAX; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, (char *)part); if (!rp) { ERR("no part '%s'", part); - return EDJE_EXTERNAL_PARAM_TYPE_MAX; + return; } if ((rp->type != EDJE_RP_TYPE_SWALLOW) || - (!rp->typedata.swallow)) return EDJE_EXTERNAL_PARAM_TYPE_MAX; + (!rp->typedata.swallow)) return; type = evas_object_data_get(rp->typedata.swallow->swallowed_object, "Edje_External_Type"); if (!type) { ERR("no external type for object %p", obj); - return EDJE_EXTERNAL_PARAM_TYPE_MAX; + return; } if (!type->parameters_info) { ERR("no parameters information for external type '%s'", type->module_name); - return EDJE_EXTERNAL_PARAM_TYPE_MAX; + return; } for (info = type->parameters_info; info->name; info++) if (strcmp(info->name, param) == 0) - return info->type; + { + *ret = info->type; + return; + } ERR("no parameter '%s' external type '%s'", param, type->module_name); - return EDJE_EXTERNAL_PARAM_TYPE_MAX; } 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); EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char *file, const char *group) { - Eina_Bool ret; - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; Eina_Array *nested; - ed = _edje_fetch(obj); - if (!ed) - return EINA_FALSE; - nested = eina_array_new(8); - ret = ed->api->file_set(obj, file, group, nested); + eo_do(obj, edje_obj_file_set(file, group, nested, &ret)); eina_array_free(nested); nested = NULL; @@ -93,15 +89,16 @@ edje_object_file_set(Evas_Object *obj, const char *file, const char *group) EAPI void edje_object_file_get(const Evas_Object *obj, const char **file, const char **group) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_file_get(file, group)); +} - ed = _edje_fetch(obj); - if (!ed) - { - if (file) *file = NULL; - if (group) *group = NULL; - return; - } +void +_file_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char **file = va_arg(*list, const char **); + const char **group = va_arg(*list, const char **); + const Edje *ed = _pd; if (file) *file = ed->path; if (group) *group = ed->group; } @@ -109,11 +106,18 @@ edje_object_file_get(const Evas_Object *obj, const char **file, const char **gro EAPI Edje_Load_Error edje_object_load_error_get(const Evas_Object *obj) { - Edje *ed; + if (!obj) return EDJE_LOAD_ERROR_NONE; + Edje_Load_Error ret = EDJE_LOAD_ERROR_NONE; + eo_do((Eo *)obj, edje_obj_load_error_get(&ret)); + return ret; +} - ed = _edje_fetch(obj); - if (!ed) return EDJE_LOAD_ERROR_NONE; - return ed->load_error; +void +_load_error_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Edje_Load_Error *ret = va_arg(*list, Edje_Load_Error *); + const Edje *ed = _pd; + *ret = ed->load_error; } EAPI const char * @@ -545,15 +549,15 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g switch (ep->type) { case EDJE_PART_TYPE_RECTANGLE: - rp->object = evas_object_rectangle_add(ed->base.evas); + rp->object = evas_object_rectangle_add(ed->base->evas); break; case EDJE_PART_TYPE_PROXY: case EDJE_PART_TYPE_IMAGE: - rp->object = evas_object_image_add(ed->base.evas); + rp->object = evas_object_image_add(ed->base->evas); break; case EDJE_PART_TYPE_TEXT: _edje_text_part_on_add(ed, rp); - rp->object = evas_object_text_add(ed->base.evas); + rp->object = evas_object_text_add(ed->base->evas); evas_object_text_font_source_set(rp->object, ed->path); break; case EDJE_PART_TYPE_GROUP: @@ -562,7 +566,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g case EDJE_PART_TYPE_EXTERNAL: if (ep->type == EDJE_PART_TYPE_EXTERNAL) externals = eina_list_append(externals, rp); - rp->object = evas_object_rectangle_add(ed->base.evas); + rp->object = evas_object_rectangle_add(ed->base->evas); evas_object_color_set(rp->object, 0, 0, 0, 0); evas_object_pass_events_set(rp->object, 1); 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 break; case EDJE_PART_TYPE_TEXTBLOCK: textblocks = eina_list_append(textblocks, rp); - rp->object = evas_object_textblock_add(ed->base.evas); + rp->object = evas_object_textblock_add(ed->base->evas); break; case EDJE_PART_TYPE_BOX: sources = eina_list_append(sources, rp); - rp->object = evas_object_box_add(ed->base.evas); + rp->object = evas_object_box_add(ed->base->evas); rp->typedata.container->anim = _edje_box_layout_anim_new(rp->object); break; case EDJE_PART_TYPE_TABLE: sources = eina_list_append(sources, rp); - rp->object = evas_object_table_add(ed->base.evas); + rp->object = evas_object_table_add(ed->base->evas); break; case EDJE_PART_TYPE_GRADIENT: 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 evas_object_precise_is_inside_set(rp->object, 1); } if (rp->part->clip_to_id < 0) - evas_object_clip_set(rp->object, ed->base.clipper); + evas_object_clip_set(rp->object, ed->base->clipper); } } if (n > 0) @@ -807,9 +811,9 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g #ifdef EDJE_CALC_CACHE ed->all_part_change = EINA_TRUE; #endif - if ((evas_object_clipees_get(ed->base.clipper)) && + if ((evas_object_clipees_get(ed->base->clipper)) && (evas_object_visible_get(obj))) - evas_object_show(ed->base.clipper); + evas_object_show(ed->base->clipper); /* instantiate 'internal swallows' */ EINA_LIST_FREE(externals, rp) @@ -893,7 +897,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g } } - child_obj = edje_object_add(ed->base.evas); + child_obj = edje_object_add(ed->base->evas); group_path = eina_list_append(group_path, group_path_entry); if (rp->part->type == EDJE_PART_TYPE_GROUP) { 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 _elua_polish_evas_object(Edje *ed, Edje_Lua_Evas_Object *elo) { evas_object_smart_member_add(elo->evas_obj, ed->obj); - evas_object_clip_set(elo->evas_obj, ed->base.clipper); + evas_object_clip_set(elo->evas_obj, ed->base->clipper); evas_object_move(elo->evas_obj, ed->x, ed->y); evas_object_resize(elo->evas_obj, 0, 0); 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) _class_member_free(ed->members.text_class, _edje_text_class_member_direct_del); _class_member_free(ed->members.color_class, _edje_color_class_member_direct_del); - free(ed); } void _edje_clean_objects(Edje *ed) { - evas_object_del(ed->base.clipper); - ed->base.evas = NULL; + evas_object_del(ed->base->clipper); + ed->base->evas = NULL; ed->obj = NULL; - ed->base.clipper = NULL; + ed->base->clipper = NULL; } void 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 EAPI void edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg) { + if (!obj) return; + eo_do(obj, edje_obj_message_send(type, id, msg)); +} + +void +_message_send(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +{ + Edje_Message_Type type = va_arg(*list, Edje_Message_Type); + int id = va_arg(*list, int); + void *msg = va_arg(*list, void *); _edje_object_message_popornot_send(obj, type, id, msg, EINA_FALSE); } @@ -41,15 +51,28 @@ edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void EAPI void edje_object_message_handler_set(Evas_Object *obj, Edje_Message_Handler_Cb func, void *data) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_message_handler_set(func, data)); +} - ed = _edje_fetch(obj); - if (!ed) return; +void +_message_handler_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Edje_Message_Handler_Cb func = va_arg(*list, Edje_Message_Handler_Cb); + void *data = va_arg(*list, void *); + Edje *ed = _pd; _edje_message_cb_set(ed, func, data); } EAPI void edje_object_message_signal_process(Evas_Object *obj) +{ + if (!obj) return; + eo_do(obj, edje_obj_message_signal_process()); +} + +void +_message_signal_process(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) { Eina_List *l, *ln, *tmpq = NULL; Edje *ed; @@ -59,7 +82,7 @@ edje_object_message_signal_process(Evas_Object *obj) Eina_List *groups = NULL; int gotos = 0; - ed = _edje_fetch(obj); + ed = _pd; if (!ed) return; 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 ; * use of this, but who knows what will be possible in the future */ #define EDJE_SMART_API_VERSION 1 -typedef struct _Edje_Smart_Api Edje_Smart_Api; - -struct _Edje_Smart_Api -{ - Evas_Smart_Class base; - int version; - Eina_Bool (*file_set)(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested); -}; - /* Basic macro to init the Edje Smart API */ #define EDJE_SMART_API_INIT(smart_class_init) {smart_class_init, EDJE_SMART_API_VERSION, NULL} @@ -1109,12 +1100,11 @@ typedef struct _Edje_Signals_Sources_Patterns Edje_Signals_Sources_Patterns; struct _Edje { - Evas_Object_Smart_Clipped_Data base; + Evas_Object_Smart_Clipped_Data *base; /* This contains (or should): Evas_Object *clipper; // a big rect to clip this Edje to Evas *evas; // the Evas this Edje belongs to */ - const Edje_Smart_Api *api; const char *path; const char *group; const char *parent; @@ -1752,9 +1742,6 @@ void _edje_collection_free_part_description_free(int type, Edje_Part_Collection_Directory_Entry *ce, Eina_Bool free_strings); -void _edje_object_smart_set(Edje_Smart_Api *sc); -const Edje_Smart_Api * _edje_object_smart_class_get(void); - void _edje_del(Edje *ed); void _edje_ref(Edje *ed); void _edje_unref(Edje *ed); @@ -1788,7 +1775,7 @@ const char * _edje_text_class_font_get(Edje *ed, Edje_Real_Part *_edje_real_part_get(const Edje *ed, const char *part); Edje_Real_Part *_edje_real_part_recursive_get(const Edje *ed, const char *part); -Edje_Color_Class *_edje_color_class_find(Edje *ed, const char *color_class); +Edje_Color_Class *_edje_color_class_find(const Edje *ed, const char *color_class); void _edje_color_class_member_direct_del(const char *color_class, void *lookup); void _edje_color_class_member_add(Edje *ed, const char *color_class); void _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 void _edje_user_definition_remove(Edje_User_Defined *eud, Evas_Object *child); void _edje_user_definition_free(Edje_User_Defined *eud); +void _scale_set(Eo *obj, void *_pd, va_list *list); +void _scale_get(Eo *obj, void *_pd, va_list *list); +void _mirrored_get(Eo *obj, void *_pd, va_list *list); +void _mirrored_set(Eo *obj, void *_pd, va_list *list); +void _data_get(Eo *obj, void *_pd, va_list *list); +void _freeze(Eo *obj, void *_pd, va_list *list); +void _thaw(Eo *obj, void *_pd, va_list *list); +void _color_class_set(Eo *obj, void *_pd, va_list *list); +void _color_class_get(Eo *obj, void *_pd, va_list *list); +void _text_class_set(Eo *obj, void *_pd, va_list *list); +void _part_exists(Eo *obj, void *_pd, va_list *list); +void _part_object_get(Eo *obj, void *_pd, va_list *list); +void _part_geometry_get(Eo *obj, void *_pd, va_list *list); +void _item_provider_set(Eo *obj, void *_pd, va_list *list); +void _text_change_cb_set(Eo *obj, void *_pd, va_list *list); +void _part_text_style_user_push(Eo *obj, void *_pd, va_list *list); +void _part_text_style_user_pop(Eo *obj, void *_pd, va_list *list); +void _part_text_style_user_peek(Eo *obj, void *_pd, va_list *list); +void _part_text_set(Eo *obj, void *_pd, va_list *list); +void _part_text_get(Eo *obj, void *_pd, va_list *list); +void _part_text_escaped_set(Eo *obj, void *_pd, va_list *list); +void _part_text_unescaped_set(Eo *obj, void *_pd, va_list *list); +void _part_text_unescaped_get(Eo *obj, void *_pd, va_list *list); +void _part_text_selection_get(Eo *obj, void *_pd, va_list *list); +void _part_text_select_none(Eo *obj, void *_pd, va_list *list); +void _part_text_select_all(Eo *obj, void *_pd, va_list *list); +void _part_text_insert(Eo *obj, void *_pd, va_list *list); +void _part_text_append(Eo *obj, void *_pd, va_list *list); +void _part_text_anchor_list_get(Eo *obj, void *_pd, va_list *list); +void _part_text_anchor_geometry_get(Eo *obj, void *_pd, va_list *list); +void _part_text_item_list_get(Eo *obj, void *_pd, va_list *list); +void _part_text_item_geometry_get(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_geometry_get(Eo *obj, void *_pd, va_list *list); +void _part_text_user_insert(Eo *obj, void *_pd, va_list *list); +void _part_text_select_allow_set(Eo *obj, void *_pd, va_list *list); +void _part_text_select_abort(Eo *obj, void *_pd, va_list *list); +void _part_text_select_begin(Eo *obj, void *_pd, va_list *list); +void _part_text_select_extend(Eo *obj, void *_pd, va_list *list); +void _part_text_imf_context_get(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_next(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_prev(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_up(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_down(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_begin_set(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_end_set(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_copy(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_line_begin_set(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_line_end_set(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_coord_set(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_is_format_get(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_is_visible_format_get(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_content_get(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_pos_set(Eo *obj, void *_pd, va_list *list); +void _part_text_cursor_pos_get(Eo *obj, void *_pd, va_list *list); +void _part_text_imf_context_reset(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_layout_set(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_layout_get(Eo *obj, void *_pd, va_list *list); +void _part_text_autocapital_type_set(Eo *obj, void *_pd, va_list *list); +void _part_text_autocapital_type_get(Eo *obj, void *_pd, va_list *list); +void _part_text_prediction_allow_set(Eo *obj, void *_pd, va_list *list); +void _part_text_prediction_allow_get(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_enabled_set(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_enabled_get(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_show(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_hide(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_language_set(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_language_get(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_imdata_set(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_imdata_get(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_return_key_type_set(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_return_key_type_get(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_return_key_disabled_set(Eo *obj, void *_pd, va_list *list); +void _part_text_input_panel_return_key_disabled_get(Eo *obj, void *_pd, va_list *list); +void _text_insert_filter_callback_add(Eo *obj, void *_pd, va_list *list); +void _text_insert_filter_callback_del(Eo *obj, void *_pd, va_list *list); +void _text_insert_filter_callback_del_full(Eo *obj, void *_pd, va_list *list); +void _text_markup_filter_callback_add(Eo *obj, void *_pd, va_list *list); +void _text_markup_filter_callback_del(Eo *obj, void *_pd, va_list *list); +void _text_markup_filter_callback_del_full(Eo *obj, void *_pd, va_list *list); +void _part_swallow(Eo *obj, void *_pd, va_list *list); +void _part_unswallow(Eo *obj, void *_pd, va_list *list); +void _part_swallow_get(Eo *obj, void *_pd, va_list *list); +void _size_min_get(Eo *obj, void *_pd, va_list *list); +void _size_max_get(Eo *obj, void *_pd, va_list *list); +void _calc_force(Eo *obj, void *_pd, va_list *list); +void _size_min_calc(Eo *obj, void *_pd, va_list *list); +void _parts_extends_calc(Eo *obj, void *_pd, va_list *list); +void _size_min_restricted_calc(Eo *obj, void *_pd, va_list *list); +void _part_state_get(Eo *obj, void *_pd, va_list *list); +void _part_drag_dir_get(Eo *obj, void *_pd, va_list *list); +void _part_drag_value_set(Eo *obj, void *_pd, va_list *list); +void _part_drag_value_get(Eo *obj, void *_pd, va_list *list); +void _part_drag_size_set(Eo *obj, void *_pd, va_list *list); +void _part_drag_size_get(Eo *obj, void *_pd, va_list *list); +void _part_drag_step_set(Eo *obj, void *_pd, va_list *list); +void _part_drag_step_get(Eo *obj, void *_pd, va_list *list); +void _part_drag_page_set(Eo *obj, void *_pd, va_list *list); +void _part_drag_page_get(Eo *obj, void *_pd, va_list *list); +void _part_drag_step(Eo *obj, void *_pd, va_list *list); +void _part_drag_page(Eo *obj, void *_pd, va_list *list); +void _part_box_append(Eo *obj, void *_pd, va_list *list); +void _part_box_prepend(Eo *obj, void *_pd, va_list *list); +void _part_box_insert_before(Eo *obj, void *_pd, va_list *list); +void _part_box_insert_at(Eo *obj, void *_pd, va_list *list); +void _part_box_remove(Eo *obj, void *_pd, va_list *list); +void _part_box_remove_at(Eo *obj, void *_pd, va_list *list); +void _part_box_remove_all(Eo *obj, void *_pd, va_list *list); +void _access_part_list_get(Eo *obj, void *_pd, va_list *list); +void _part_table_child_get(Eo *obj, void *_pd, va_list *list); +void _part_table_pack(Eo *obj, void *_pd, va_list *list); +void _part_table_unpack(Eo *obj, void *_pd, va_list *list); +void _part_table_col_row_size_get(Eo *obj, void *_pd, va_list *list); +void _part_table_clear(Eo *obj, void *_pd, va_list *list); +void _perspective_set(Eo *obj, void *_pd, va_list *list); +void _perspective_get(Eo *obj, void *_pd, va_list *list); +void _preload(Eo *obj, void *_pd, va_list *list); +void _update_hints_set(Eo *obj, void *_pd, va_list *list); +void _update_hints_get(Eo *obj, void *_pd, va_list *list); + +void _part_external_object_get(Eo *obj, void *_pd, va_list *list); +void _part_external_param_set(Eo *obj, void *_pd, va_list *list); +void _part_external_param_get(Eo *obj, void *_pd, va_list *list); +void _part_external_content_get(Eo *obj, void *_pd, va_list *list); +void _part_external_param_type_get(Eo *obj, void *_pd, va_list *list); + +void _file_get(Eo *obj, void *_pd, va_list *list); +void _load_error_get(Eo *obj, void *_pd, va_list *list); + +void _message_send(Eo *obj, void *_pd, va_list *list); +void _message_handler_set(Eo *obj, void *_pd, va_list *list); +void _message_signal_process(Eo *obj, void *_pd, va_list *list); + +void _signal_callback_add(Eo *obj, void *_pd, va_list *list); +void _signal_callback_del(Eo *obj, void *_pd, va_list *list); +void _signal_callback_del_full(Eo *obj, void *_pd, va_list *list); +void _signal_emit(Eo *obj, void *_pd, va_list *list); +void _play_set(Eo *obj, void *_pd, va_list *list); +void _play_get(Eo *obj, void *_pd, va_list *list); +void _animation_set(Eo *obj, void *_pd, va_list *list); +void _animation_get(Eo *obj, void *_pd, va_list *list); + #ifdef HAVE_LIBREMIX #include #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 EAPI void edje_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) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_signal_callback_add(emission, source, (Edje_Signal_Cb)func, data)); +} + +void +_signal_callback_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *emission = va_arg(*list, const char *); + const char *source = va_arg(*list, const char *); + Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb); + void *data = va_arg(*list, void *); + + Edje *ed = _pd; Edje_Signal_Callback *escb; if ((!emission) || (!source) || (!func)) return; - ed = _edje_fetch(obj); + ed = _pd; if (!ed) return; if (ed->delete_me) return; escb = calloc(1, sizeof(Edje_Signal_Callback)); @@ -80,14 +92,28 @@ edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const ch EAPI void * edje_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)) { - Edje *ed; + if (!obj) return NULL; + void *ret = NULL; + eo_do(obj, edje_obj_signal_callback_del(emission, source, (Edje_Signal_Cb)func, &ret)); + return ret; +} + +void +_signal_callback_del(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *emission = va_arg(*list, const char *); + const char *source = va_arg(*list, const char *); + Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb); + void **ret = va_arg(*list, void **); + if (ret) *ret = NULL; + + Edje *ed = _pd; Eina_List *l; Edje_Signal_Callback *escb; - if ((!emission) || (!source) || (!func)) return NULL; - ed = _edje_fetch(obj); - if (!ed) return NULL; - if (ed->delete_me) return NULL; + if ((!emission) || (!source) || (!func)) return; + if (!ed) return; + if (ed->delete_me) return; EINA_LIST_FOREACH(ed->callbacks, l, escb) { if ((escb->func == func) && @@ -113,23 +139,39 @@ edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const ch if (escb->source) eina_stringshare_del(escb->source); free(escb); } - return data; + if (ret) *ret = data; + return; } } - return NULL; + return; } EAPI void * edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func, void *data) { - Edje *ed; + if (!obj) return NULL; + void *ret = NULL; + eo_do(obj, edje_obj_signal_callback_del_full(emission, source, func, data, &ret)); + return ret; +} + +void +_signal_callback_del_full(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *emission = va_arg(*list, const char *); + const char *source = va_arg(*list, const char *); + Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb); + void *data = va_arg(*list, void *); + void **ret = va_arg(*list, void **); + if (ret) *ret = NULL; + + Edje *ed = _pd; Eina_List *l; Edje_Signal_Callback *escb; - if ((!emission) || (!source) || (!func)) return NULL; - ed = _edje_fetch(obj); - if (!ed) return NULL; - if (ed->delete_me) return NULL; + if ((!emission) || (!source) || (!func)) return; + if (!ed) return; + if (ed->delete_me) return; EINA_LIST_FOREACH(ed->callbacks, l, escb) { if ((escb->func == func) && (escb->data == data) && @@ -155,19 +197,30 @@ edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, con if (escb->source) eina_stringshare_del(escb->source); free(escb); } - return data2; + if (ret) *ret = data2; + return; } } - return NULL; + return; } EAPI void edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *source) { + if (!obj) return; + if (!eo_isa(obj, EDJE_OBJ_CLASS)) return; + eo_do(obj, edje_obj_signal_emit(emission, source)); +} + +void +_signal_emit(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *emission = va_arg(*list, const char *); + const char *source = va_arg(*list, const char *); Edje *ed; if ((!emission) || (!source)) return; - ed = _edje_fetch(obj); + ed = _pd; if (!ed) return; if (ed->delete_me) return; _edje_emit(ed, (char *)emission, (char *)source); @@ -177,13 +230,21 @@ edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *sour EAPI void edje_object_play_set(Evas_Object *obj, Eina_Bool play) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_play_set(play)); +} + +void +_play_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Eina_Bool play = va_arg(*list, int); + + Edje *ed = _pd; double t; Eina_List *l; Edje_Running_Program *runp; unsigned int i; - ed = _edje_fetch(obj); if (!ed) return; if (ed->delete_me) return; if (play) @@ -216,24 +277,41 @@ edje_object_play_set(Evas_Object *obj, Eina_Bool play) EAPI Eina_Bool edje_object_play_get(const Evas_Object *obj) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_play_get(&ret)); + return ret; +} - ed = _edje_fetch(obj); - if (!ed) return EINA_FALSE; - if (ed->delete_me) return EINA_FALSE; - if (ed->paused) return EINA_FALSE; - return EINA_TRUE; +void +_play_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + *ret = EINA_FALSE; + + if (!ed) return; + if (ed->delete_me) return; + if (ed->paused) return; + *ret = EINA_TRUE; } /* FIXDOC: Verify/Expand */ EAPI void edje_object_animation_set(Evas_Object *obj, Eina_Bool on) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_animation_set(on)); +} + +void +_animation_set(Eo *obj, void *_pd, va_list *list) +{ + Eina_Bool on = va_arg(*list, int); + Edje *ed = _pd; Eina_List *l; unsigned int i; - ed = _edje_fetch(obj); if (!ed) return; if (ed->delete_me) return; _edje_block(ed); @@ -290,13 +368,23 @@ edje_object_animation_set(Evas_Object *obj, Eina_Bool on) EAPI Eina_Bool edje_object_animation_get(const Evas_Object *obj) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_animation_get(&ret)); + return ret; +} - ed = _edje_fetch(obj); - if (!ed) return EINA_FALSE; - if (ed->delete_me) return EINA_FALSE; - if (ed->no_anim) return EINA_FALSE; - return EINA_TRUE; +void +_animation_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + *ret = EINA_FALSE; + + if (!ed) return; + if (ed->delete_me) return; + if (ed->no_anim) return; + *ret = EINA_TRUE; } /* 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) oi->ed = ed; oi->obj = o; evas_object_smart_member_add(oi->obj, oi->ed->obj); - evas_object_clip_set(oi->obj, oi->ed->base.clipper); + evas_object_clip_set(oi->obj, oi->ed->base->clipper); evas_object_geometry_get(oi->obj, &(oi->x), &(oi->y), &(oi->w), &(oi->h)); snprintf(buf, sizeof(buf), "%i", oi->oid); 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 @@ #include "edje_private.h" -static void _edje_smart_add(Evas_Object * obj); -static void _edje_smart_del(Evas_Object * obj); -static void _edje_smart_move(Evas_Object * obj, Evas_Coord x, Evas_Coord y); -static void _edje_smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h); -static void _edje_smart_show(Evas_Object * obj); -static void _edje_smart_hide(Evas_Object * obj); -static void _edje_smart_calculate(Evas_Object * obj); +#include -static Eina_Bool _edje_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested); +EAPI Eo_Op EDJE_OBJ_BASE_ID = EO_NOOP; -static Edje_Smart_Api _edje_smart_class = EDJE_SMART_API_INIT_NAME_VERSION("edje"); -static Evas_Smart_Class _edje_smart_parent; -static Evas_Smart *_edje_smart = NULL; +#define MY_CLASS EDJE_OBJ_CLASS Eina_List *_edje_edjes = NULL; @@ -22,59 +14,20 @@ EAPI Evas_Object * edje_object_add(Evas *evas) { Evas_Object *e; - - _edje_lib_ref(); - - if (!_edje_smart) - { - memset(&_edje_smart_parent, 0, sizeof(_edje_smart_parent)); - _edje_object_smart_set(&_edje_smart_class); - _edje_smart = - evas_smart_class_new((Evas_Smart_Class *)&_edje_smart_class); - } - - e = evas_object_smart_add(evas, _edje_smart); - + e = eo_add(MY_CLASS, evas); + eo_unref(e); return e; } -void -_edje_object_smart_set(Edje_Smart_Api *sc) +static void +_constructor(Eo *obj, void *class_data, va_list *list EINA_UNUSED) { - if (!sc) - return; + Edje *ed = class_data; + ed->base = eo_data_get(obj, EVAS_OBJ_SMART_CLIPPED_CLASS); - evas_object_smart_clipped_smart_set(&sc->base); - - _edje_smart_parent.add = sc->base.add; /* Save parent class */ - sc->base.add = _edje_smart_add; - _edje_smart_parent.del = sc->base.del; /* Save parent class */ - sc->base.del = _edje_smart_del; - /* we'll handle move thank you */ - sc->base.move = _edje_smart_move; - sc->base.resize = _edje_smart_resize; - _edje_smart_parent.show = sc->base.show; /* Save parent class */ - sc->base.show = _edje_smart_show; - _edje_smart_parent.hide = sc->base.hide; /* Save parent class */ - sc->base.hide = _edje_smart_hide; - sc->base.calculate = _edje_smart_calculate; - //sc->base.member_add = NULL; - //sc->base.member_del = NULL; - sc->file_set = _edje_smart_file_set; -} - -const Edje_Smart_Api * -_edje_object_smart_class_get(void) -{ - static const Edje_Smart_Api *class = NULL; - - if (class) - return class; - - _edje_object_smart_set(&_edje_smart_class); - class = &_edje_smart_class; - - return class; + eo_do_super(obj, eo_constructor()); + eo_do(obj, evas_obj_type_set("edje")); + _edje_lib_ref(); } static void @@ -89,36 +42,21 @@ _edje_color_class_free(void *data) /* Private Routines */ static void -_edje_smart_add(Evas_Object *obj) +_edje_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED) { - Edje *ed; + Edje *ed = _pd; Evas *tev = evas_object_evas_get(obj); evas_event_freeze(tev); - ed = evas_object_smart_data_get(obj); - if (!ed) - { - const Evas_Smart *smart; - const Evas_Smart_Class *sc; - ed = calloc(1, sizeof(Edje)); - if (!ed) goto end_smart_add; - - smart = evas_object_smart_smart_get(obj); - sc = evas_smart_class_get(smart); - ed->api = (const Edje_Smart_Api *)sc; - - evas_object_smart_data_set(obj, ed); - } - - ed->base.evas = evas_object_evas_get(obj); - ed->base.clipper = evas_object_rectangle_add(ed->base.evas); - evas_object_static_clip_set(ed->base.clipper, 1); - evas_object_smart_member_add(ed->base.clipper, obj); - evas_object_color_set(ed->base.clipper, 255, 255, 255, 255); - evas_object_move(ed->base.clipper, -10000, -10000); - evas_object_resize(ed->base.clipper, 20000, 20000); - evas_object_pass_events_set(ed->base.clipper, 1); + ed->base->evas = evas_object_evas_get(obj); + ed->base->clipper = evas_object_rectangle_add(ed->base->evas); + evas_object_static_clip_set(ed->base->clipper, 1); + evas_object_smart_member_add(ed->base->clipper, obj); + evas_object_color_set(ed->base->clipper, 255, 255, 255, 255); + evas_object_move(ed->base->clipper, -10000, -10000); + evas_object_resize(ed->base->clipper, 20000, 20000); + evas_object_pass_events_set(ed->base->clipper, 1); ed->is_rtl = EINA_FALSE; ed->have_objects = EINA_TRUE; ed->references = 1; @@ -142,18 +80,15 @@ _edje_smart_add(Evas_Object *obj) printf("--- EDJE DUMP [%i]\n", eina_list_count(_edje_edjes)); } */ -end_smart_add: evas_event_thaw(tev); evas_event_thaw_eval(tev); } static void -_edje_smart_del(Evas_Object * obj) +_edje_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) { - Edje *ed; + Edje *ed = _pd; - ed = evas_object_smart_data_get(obj); - if (!ed) return; _edje_block_violate(ed); ed->delete_me = 1; _edje_edjes = eina_list_remove(_edje_edjes, obj); @@ -168,12 +103,12 @@ _edje_smart_del(Evas_Object * obj) } static void -_edje_smart_move(Evas_Object * obj, Evas_Coord x, Evas_Coord y) +_edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list) { - Edje *ed; + Evas_Coord x = va_arg(*list, Evas_Coord); + Evas_Coord y = va_arg(*list, Evas_Coord); + Edje *ed = _pd; - ed = evas_object_smart_data_get(obj); - if (!ed) return; if ((ed->x == x) && (ed->y == y)) return; ed->x = x; ed->y = y; @@ -264,12 +199,12 @@ _edje_limit_get(Edje *ed, Edje_Limit **limits, unsigned int length, Evas_Coord s } static void -_edje_smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h) +_edje_smart_resize(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list) { - Edje *ed; + Evas_Coord w = va_arg(*list, Evas_Coord); + Evas_Coord h = va_arg(*list, Evas_Coord); + Edje *ed = _pd; - ed = evas_object_smart_data_get(obj); - if (!ed) return; if ((w == ed->w) && (h == ed->h)) return; if (ed->collection) { @@ -298,13 +233,11 @@ _edje_smart_resize(Evas_Object * obj, Evas_Coord w, Evas_Coord h) } static void -_edje_smart_show(Evas_Object * obj) +_edje_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED) { - Edje *ed; + Edje *ed = _pd; - _edje_smart_parent.show(obj); - ed = evas_object_smart_data_get(obj); - if (!ed) return; + eo_do_super(obj, evas_obj_smart_show()); if (evas_object_visible_get(obj)) return; if (_edje_script_only(ed)) { @@ -320,13 +253,11 @@ _edje_smart_show(Evas_Object * obj) } static void -_edje_smart_hide(Evas_Object * obj) +_edje_smart_hide(Eo *obj, void *_pd, va_list *list EINA_UNUSED) { - Edje *ed; + Edje *ed = _pd; - _edje_smart_parent.hide(obj); - ed = evas_object_smart_data_get(obj); - if (!ed) return; + eo_do_super(obj, evas_obj_smart_hide()); if (!evas_object_visible_get(obj)) return; if (_edje_script_only(ed)) { @@ -342,17 +273,330 @@ _edje_smart_hide(Evas_Object * obj) } static void -_edje_smart_calculate(Evas_Object *obj) +_edje_smart_calculate(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) { - Edje *ed; - - ed = evas_object_smart_data_get(obj); - if (!ed) return; + Edje *ed = _pd; _edje_recalc_do(ed); } -static Eina_Bool -_edje_smart_file_set(Evas_Object *obj, const char *file, const char *group, Eina_Array *nested) +static void +_edje_smart_file_set(Eo *obj, void *_pd EINA_UNUSED, va_list *list) { - return _edje_object_file_set_internal(obj, file, group, NULL, NULL, nested); + const char *file = va_arg(*list, const char *); + const char *group = va_arg(*list, const char *); + Eina_Array *nested = va_arg(*list, Eina_Array *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_FALSE; + if (_edje_object_file_set_internal(obj, file, group, NULL, NULL, nested)) + if (ret) *ret = EINA_TRUE; } + +static void +_class_constructor(Eo_Class *klass) +{ + const Eo_Op_Func_Description func_desc[] = { + EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _edje_smart_add), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _edje_smart_del), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _edje_smart_move), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_SHOW), _edje_smart_show), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_HIDE), _edje_smart_hide), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _edje_smart_resize), + EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CALCULATE), _edje_smart_calculate), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SCALE_SET), _scale_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SCALE_GET), _scale_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_GET), _mirrored_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MIRRORED_SET), _mirrored_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_DATA_GET), _data_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FREEZE), _freeze), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_THAW), _thaw), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_COLOR_CLASS_SET), _color_class_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_COLOR_CLASS_GET), _color_class_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_CLASS_SET), _text_class_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXISTS), _part_exists), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_OBJECT_GET), _part_object_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_GEOMETRY_GET), _part_geometry_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ITEM_PROVIDER_SET), _item_provider_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_CHANGE_CB_SET), _text_change_cb_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PUSH), _part_text_style_user_push), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_POP), _part_text_style_user_pop), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PEEK), _part_text_style_user_peek), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SET), _part_text_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_GET), _part_text_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ESCAPED_SET), _part_text_escaped_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_SET), _part_text_unescaped_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_GET), _part_text_unescaped_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECTION_GET), _part_text_selection_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE), _part_text_select_none), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL), _part_text_select_all), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INSERT), _part_text_insert), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_APPEND), _part_text_append), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_LIST_GET), _part_text_anchor_list_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_GEOMETRY_GET), _part_text_anchor_geometry_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_LIST_GET), _part_text_item_list_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_GEOMETRY_GET), _part_text_item_geometry_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_GEOMETRY_GET), _part_text_cursor_geometry_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_USER_INSERT), _part_text_user_insert), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALLOW_SET), _part_text_select_allow_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT), _part_text_select_abort), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN), _part_text_select_begin), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND), _part_text_select_extend), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_GET), _part_text_imf_context_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_NEXT), _part_text_cursor_next), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_PREV), _part_text_cursor_prev), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_UP), _part_text_cursor_up), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_DOWN), _part_text_cursor_down), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_BEGIN_SET), _part_text_cursor_begin_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_END_SET), _part_text_cursor_end_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COPY), _part_text_cursor_copy), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_BEGIN_SET), _part_text_cursor_line_begin_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_END_SET), _part_text_cursor_line_end_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COORD_SET), _part_text_cursor_coord_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_FORMAT_GET), _part_text_cursor_is_format_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_VISIBLE_FORMAT_GET), _part_text_cursor_is_visible_format_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_CONTENT_GET), _part_text_cursor_content_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_SET), _part_text_cursor_pos_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_GET), _part_text_cursor_pos_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET), _part_text_imf_context_reset), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET), _part_text_input_panel_layout_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET), _part_text_input_panel_layout_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET), _part_text_autocapital_type_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET), _part_text_autocapital_type_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET), _part_text_prediction_allow_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_GET), _part_text_prediction_allow_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_SET), _part_text_input_panel_enabled_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_GET), _part_text_input_panel_enabled_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_SHOW), _part_text_input_panel_show), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_HIDE), _part_text_input_panel_hide), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_SET), _part_text_input_panel_language_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_GET), _part_text_input_panel_language_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_SET), _part_text_input_panel_imdata_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_GET), _part_text_input_panel_imdata_get), + 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), + 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), + 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), + 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), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD), _text_insert_filter_callback_add), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL), _text_insert_filter_callback_del), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL), _text_insert_filter_callback_del_full), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_ADD), _text_markup_filter_callback_add), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL), _text_markup_filter_callback_del), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL_FULL), _text_markup_filter_callback_del_full), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_SWALLOW), _part_swallow), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_UNSWALLOW), _part_unswallow), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_SWALLOW_GET), _part_swallow_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_GET), _size_min_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MAX_GET), _size_max_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_CALC_FORCE), _calc_force), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_CALC), _size_min_calc), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PARTS_EXTENDS_CALC), _parts_extends_calc), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIZE_MIN_RESTRICTED_CALC), _size_min_restricted_calc), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_STATE_GET), _part_state_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_DIR_GET), _part_drag_dir_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_SET), _part_drag_value_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_GET), _part_drag_value_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_SET), _part_drag_size_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_GET), _part_drag_size_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_SET), _part_drag_step_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_GET), _part_drag_step_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_SET), _part_drag_page_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_GET), _part_drag_page_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_STEP), _part_drag_step), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE), _part_drag_page), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_APPEND), _part_box_append), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_PREPEND), _part_box_prepend), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_BEFORE), _part_box_insert_before), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_AT), _part_box_insert_at), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE), _part_box_remove), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_AT), _part_box_remove_at), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_ALL), _part_box_remove_all), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET), _access_part_list_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_CHILD_GET), _part_table_child_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_PACK), _part_table_pack), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_UNPACK), _part_table_unpack), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_COL_ROW_SIZE_GET), _part_table_col_row_size_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TABLE_CLEAR), _part_table_clear), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_SET), _perspective_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PERSPECTIVE_GET), _perspective_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PRELOAD), _preload), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET), _update_hints_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET), _update_hints_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_OBJECT_GET), _part_external_object_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_SET), _part_external_param_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_GET), _part_external_param_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_CONTENT_GET), _part_external_content_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_TYPE_GET), _part_external_param_type_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_SET), _edje_smart_file_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_GET), _file_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_LOAD_ERROR_GET), _load_error_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_SEND), _message_send), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_HANDLER_SET), _message_handler_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS), _message_signal_process), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_ADD), _signal_callback_add), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL), _signal_callback_del), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL_FULL), _signal_callback_del_full), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_EMIT), _signal_emit), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_SET), _play_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PLAY_GET), _play_get), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_SET), _animation_set), + EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_ANIMATION_GET), _animation_get), + EO_OP_FUNC_SENTINEL + }; + + eo_class_funcs_set(klass, func_desc); +} + +static const Eo_Op_Description op_desc[] = { + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SCALE_SET, "Set the scaling factor for a given Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SCALE_GET, "Get a given Edje object's scaling factor."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MIRRORED_GET, "Get the RTL orientation for this object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MIRRORED_SET, "Set the RTL orientation for this object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_DATA_GET, "Retrive an EDC data field's value from a given Edje"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_FREEZE, "Freezes the Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_THAW, "Thaws the Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_COLOR_CLASS_SET, "Sets the object color class."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_COLOR_CLASS_GET, "Gets the object color class."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_CLASS_SET, "Sets Edje text class."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXISTS, "Check if an Edje part exists in a given Edje object's group"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_OBJECT_GET, "Get a handle to the Evas object implementing a given Edje"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_GEOMETRY_GET, "Retrieve the geometry of a given Edje part, in a given Edje"), + 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"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_CHANGE_CB_SET, "Set the object text callback."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PUSH, "Set the style of the"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_POP, "Delete the top style form the user style stack."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_STYLE_USER_PEEK, "Return the text of the object part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SET, "Sets the text for an object part"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_GET, "Return the text of the object part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ESCAPED_SET, "Sets the text for an object part, but converts HTML escapes to UTF8"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_SET, "Sets the raw (non escaped) text for an object part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_UNESCAPED_GET, "Returns the text of the object part, without escaping."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECTION_GET, "Return the selection text of the object part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_NONE, "Set the selection to be none."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALL, "Set the selection to be everything."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INSERT, "Insert text for an object part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_APPEND, "Insert text for an object part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_LIST_GET, "Return a list of char anchor names."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ANCHOR_GEOMETRY_GET, "Return a list of Evas_Textblock_Rectangle anchor rectangles."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_LIST_GET, "Return a list of char item names."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_ITEM_GEOMETRY_GET, "Return item geometry."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_GEOMETRY_GET, "Returns the cursor geometry of the part relative to the edje"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_USER_INSERT, "This function inserts text as if the user has inserted it."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ALLOW_SET, "Enables selection if the entry is an EXPLICIT selection mode"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_ABORT, "Aborts any selection action on a part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_BEGIN, "Starts selecting at current cursor position"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_SELECT_EXTEND, "Extends the current selection to the current cursor position"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_GET, "Get the input method context in entry."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_NEXT, "Advances the cursor to the next cursor position."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_PREV, "Moves the cursor to the previous char"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_UP, "Move the cursor to the char above the current cursor position."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_DOWN, "Moves the cursor to the char below the current cursor position."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_BEGIN_SET, "Moves the cursor to the beginning of the text part"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_END_SET, "Moves the cursor to the end of the text part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COPY, "Copy the cursor to another cursor."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_BEGIN_SET, "Move the cursor to the beginning of the line."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_LINE_END_SET, "Move the cursor to the end of the line."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_COORD_SET, "Position the given cursor to a X,Y position."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_FORMAT_GET, "Returns whether the cursor points to a format."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_IS_VISIBLE_FORMAT_GET, "Return true if the cursor points to a visible format"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_CONTENT_GET, "Returns the content (char) at the cursor position."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_SET, "Sets the cursor position to the given value"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_CURSOR_POS_GET, "Retrieves the current position of the cursor"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET, "Reset the input method context if needed."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET, "Set the layout of the input panel."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET, "Get the layout of the input panel."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET, "Set the autocapitalization type on the immodule."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET, "Retrieves the autocapitalization type"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET, "Set whether the prediction is allowed or not."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_GET, "Get whether the prediction is allowed or not."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_SET, "Sets the attribute to show the input panel automatically."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_ENABLED_GET, "Retrieve the attribute to show the input panel automatically."), + 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."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_HIDE, "Hide the input panel (virtual keyboard)."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_SET, "Set the language mode of the input panel."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LANGUAGE_GET, "Get the language mode of the input panel."), + 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."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_IMDATA_GET, "Get the specific data of the current active input panel."), + 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."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_RETURN_KEY_TYPE_GET, "Get the return key type."), + 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."), + 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."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_ADD, "Add a filter function for newly inserted text."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL, "Delete a function from the filter list."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_INSERT_FILTER_CALLBACK_DEL_FULL, "Delete a function and matching user data from the filter list."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_ADD, "Add a markup filter function for newly inserted text."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_TEXT_MARKUP_FILTER_CALLBACK_DEL, "Delete a function from the markup filter list."), + 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."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_SWALLOW, "Swallows an object into one of the Edje object @c SWALLOW"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_UNSWALLOW, "Unswallow an object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_SWALLOW_GET, "Get the object currently swallowed by a part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MIN_GET, "Get the minimum size specified -- as an EDC property -- for a"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MAX_GET, "Get the maximum size specified -- as an EDC property -- for a"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_CALC_FORCE, "Force a Size/Geometry calculation."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MIN_CALC, "Calculate the minimum required size for a given Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PARTS_EXTENDS_CALC, "Calculate the geometry of the region, relative to a given Edje"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIZE_MIN_RESTRICTED_CALC, "Calculate the minimum required size for a given Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_STATE_GET, "Returns the state of the Edje part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_DIR_GET, "Determine dragable directions."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_SET, "Set the dragable object location."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_VALUE_GET, "Get the dragable object location."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_SET, "Set the dragable object size."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_SIZE_GET, "Get the dragable object size."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_SET, "Sets the drag step increment."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_STEP_GET, "Gets the drag step increment values."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_SET, "Sets the page step increments."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE_GET, "Gets the page step increments."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_STEP, "Steps the dragable x,y steps."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_DRAG_PAGE, "Pages x,y steps."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_APPEND, "Appends an object to the box."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_PREPEND, "Prepends an object to the box."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_BEFORE, "Adds an object to the box."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_INSERT_AT, "Inserts an object to the box."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE, "Removes an object from the box."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_AT, "Removes an object from the box."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_BOX_REMOVE_ALL, "Removes all elements from the box."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_ACCESS_PART_LIST_GET, "Retrieve a list all accessibility part names"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_CHILD_GET, "Retrieve a child from a table"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_PACK, "Packs an object into the table."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_UNPACK, "Removes an object from the table."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_COL_ROW_SIZE_GET, "Gets the number of columns and rows the table has."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_TABLE_CLEAR, "Removes all object from the table."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PERSPECTIVE_SET, "Set the given perspective object on this Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PERSPECTIVE_GET, "Get the current perspective used on this Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PRELOAD, "Preload the images on the Edje Object in the background."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_UPDATE_HINTS_SET, "Edje will automatically update the size hints on itself."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_UPDATE_HINTS_GET, "Wether or not Edje will update size hints on itself."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_OBJECT_GET, "Get the object created by this external part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_SET, "Set the parameter for the external part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_PARAM_GET, "Get the parameter for the external part."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PART_EXTERNAL_CONTENT_GET, "Get an object contained in an part of type EXTERNAL"), + 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."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_FILE_SET, "Sets the @b EDJ file (and group within it) to load an Edje"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_FILE_GET, "Get the file and group name that a given Edje object is bound to"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_LOAD_ERROR_GET, "Gets the (last) file loading error for a given Edje object"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MESSAGE_SEND, "Send an (Edje) message to a given Edje object"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MESSAGE_HANDLER_SET, "Set an Edje message handler function for a given Edje object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_MESSAGE_SIGNAL_PROCESS, "Process an object's message queue."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_ADD, "Add a callback for an arriving Edje signal, emitted by"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL, "Remove a signal-triggered callback from an object."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_CALLBACK_DEL_FULL, "Unregister/delete a callback set for an arriving Edje"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_SIGNAL_EMIT, "Send/emit an Edje signal to a given Edje object"), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PLAY_SET, "Set the Edje object to playing or paused states."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_PLAY_GET, "Get the Edje object's state."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_ANIMATION_SET, "Set the object's animation state."), + EO_OP_DESCRIPTION(EDJE_OBJ_SUB_ID_ANIMATION_GET, "Get the Edje object's animation state."), + EO_OP_DESCRIPTION_SENTINEL +}; + +static const Eo_Class_Description class_desc = { + EO_VERSION, + "Edje_Smart", + EO_CLASS_TYPE_REGULAR, + EO_CLASS_DESCRIPTION_OPS(&EDJE_OBJ_BASE_ID, op_desc, EDJE_OBJ_SUB_ID_LAST), + NULL, + sizeof(Edje), + _class_constructor, + NULL +}; + +EO_DEFINE_CLASS(edje_object_class_get, &class_desc, EVAS_OBJ_SMART_CLIPPED_CLASS, NULL); + 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) EAPI Eina_Bool edje_object_scale_set(Evas_Object *obj, double scale) { + if (!eo_isa(obj, EDJE_OBJ_CLASS)) return EINA_FALSE; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_scale_set(scale, &ret)); + return ret; +} + +void +_scale_set(Eo *obj, void *_pd, va_list *list) +{ + double scale = va_arg(*list, double); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_TRUE; + Edje *ed, *ged; Evas_Object *o; Eina_List *l; - ed = _edje_fetch(obj); - if (!ed) return EINA_FALSE; - if (ed->scale == scale) return EINA_TRUE; + ed = _pd; + if (ed->scale == scale) return; ed->scale = FROM_DOUBLE(scale); EINA_LIST_FOREACH(ed->groups, l, ged) ged->scale = ed->scale; EINA_LIST_FOREACH(ed->subobjs, l, o) edje_object_calc_force(o); edje_object_calc_force(obj); - return EINA_TRUE; } EAPI double edje_object_scale_get(const Evas_Object *obj) { - Edje *ed; + if (!obj) return 0.0; + double ret = 0.0; + eo_do((Eo *)obj, edje_obj_scale_get(&ret)); + return ret; +} - ed = _edje_fetch(obj); - if (!ed) return 0.0; - return TO_DOUBLE(ed->scale); +void +_scale_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + double *ret = va_arg(*list, double *); + const Edje *ed = _pd; + *ret = TO_DOUBLE(ed->scale); } EAPI Eina_Bool edje_object_mirrored_get(const Evas_Object *obj) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_mirrored_get(&ret)); + return ret; +} - ed = _edje_fetch(obj); - if (!ed) return EINA_FALSE; - - return ed->is_rtl; +void +_mirrored_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + *ret = ed->is_rtl; } void _edje_object_orientation_inform(Evas_Object *obj) { + if (!obj) return; if (edje_object_mirrored_get(obj)) edje_object_signal_emit(obj, "edje,state,rtl", "edje"); else @@ -398,11 +424,18 @@ _edje_object_orientation_inform(Evas_Object *obj) EAPI void edje_object_mirrored_set(Evas_Object *obj, Eina_Bool rtl) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_mirrored_set(rtl)); +} + +void +_mirrored_set(Eo *obj, void *_pd, va_list *list) +{ + Eina_Bool rtl = va_arg(*list, int); + + Edje *ed = _pd; unsigned int i; - ed = _edje_fetch(obj); - if (!ed) return; if (ed->is_rtl == rtl) return; ed->is_rtl = rtl; @@ -429,24 +462,46 @@ edje_object_mirrored_set(Evas_Object *obj, Eina_Bool rtl) EAPI const char * edje_object_data_get(const Evas_Object *obj, const char *key) { - Edje *ed; + if (!obj) return NULL; + const char *ret = NULL; + eo_do((Eo *)obj, edje_obj_data_get(key, &ret)); + return ret; +} + +void +_data_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *key = va_arg(*list, const char *); + const char **ret = va_arg(*list, const char **); + *ret = NULL; + + const Edje *ed = _pd; - ed = _edje_fetch(obj); if ((!ed) || (!key)) - return NULL; - if (!ed->collection) return NULL; - if (!ed->collection->data) return NULL; - return edje_string_get(eina_hash_find(ed->collection->data, key)); + return; + if (!ed->collection) return; + if (!ed->collection->data) return; + *ret = edje_string_get(eina_hash_find(ed->collection->data, key)); } EAPI int edje_object_freeze(Evas_Object *obj) { - Edje *ed; + if (!obj) return 0; + int ret = 0; + eo_do(obj, edje_obj_freeze(&ret)); + return ret; +} + +void +_freeze(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int *ret = va_arg(*list, int *); + + Edje *ed = _pd; unsigned int i; - ed = _edje_fetch(obj); - if (!ed) return 0; + if (ret) *ret = 0; for (i = 0; i < ed->table_parts_size; i++) { Edje_Real_Part *rp; @@ -457,17 +512,27 @@ edje_object_freeze(Evas_Object *obj) (rp->typedata.swallow->swallowed_object)) edje_object_freeze(rp->typedata.swallow->swallowed_object); } - return _edje_freeze(ed); + int int_ret = _edje_freeze(ed); + if (ret) *ret = int_ret; } EAPI int edje_object_thaw(Evas_Object *obj) { - Edje *ed; + if (!obj) return 0; + int ret; + eo_do(obj, edje_obj_thaw(&ret)); + return ret; +} + +void +_thaw(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + int *ret = va_arg(*list, int *); + Edje *ed = _pd; unsigned int i; - ed = _edje_fetch(obj); - if (!ed) return 0; + if (ret) *ret = 0; for (i = 0; i < ed->table_parts_size; i++) { Edje_Real_Part *rp; @@ -479,7 +544,8 @@ edje_object_thaw(Evas_Object *obj) (rp->typedata.swallow->swallowed_object)) edje_object_thaw(rp->typedata.swallow->swallowed_object); } - return _edje_thaw(ed); + int int_ret = _edje_thaw(ed); + if (ret) *ret = int_ret; } EAPI Eina_Bool @@ -645,12 +711,36 @@ _edje_color_class_list_foreach(const Eina_Hash *hash __UNUSED__, const void *key EAPI Eina_Bool edje_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) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_color_class_set(color_class, r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3, &ret)); + return ret; +} + +void +_color_class_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *color_class = va_arg(*list, const char *); + int r = va_arg(*list, int); + int g = va_arg(*list, int); + int b = va_arg(*list, int); + int a = va_arg(*list, int); + int r2 = va_arg(*list, int); + int g2 = va_arg(*list, int); + int b2 = va_arg(*list, int); + int a2 = va_arg(*list, int); + int r3 = va_arg(*list, int); + int g3 = va_arg(*list, int); + int b3 = va_arg(*list, int); + int a3 = va_arg(*list, int); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_FALSE; + + Edje *ed = _pd; Edje_Color_Class *cc; unsigned int i; - ed = _edje_fetch(obj); - if ((!ed) || (!color_class)) return EINA_FALSE; + if ((!ed) || (!color_class)) return; if (r < 0) r = 0; else if (r > 255) r = 255; if (g < 0) g = 0; @@ -668,7 +758,10 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in (cc->b2 == b2) && (cc->a2 == a2) && (cc->r3 == r3) && (cc->g3 == g3) && (cc->b3 == b3) && (cc->a3 == a3)) - return EINA_TRUE; + { + if (ret) *ret = EINA_TRUE; + return; + } cc->r = r; cc->g = g; cc->b = b; @@ -687,16 +780,17 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in ed->all_part_change = EINA_TRUE; #endif _edje_recalc(ed); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; + return; } color_class = eina_stringshare_add(color_class); - if (!color_class) return EINA_FALSE; + if (!color_class) return; cc = malloc(sizeof(Edje_Color_Class)); if (!cc) { eina_stringshare_del(color_class); - return EINA_FALSE; + return; } cc->name = color_class; cc->r = r; @@ -735,13 +829,38 @@ edje_object_color_class_set(Evas_Object *obj, const char *color_class, int r, in _edje_recalc(ed); _edje_emit(ed, "color_class,set", color_class); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_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) { - Edje *ed = _edje_fetch(obj); + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_color_class_get(color_class, r, g, b, a, r2, g2, b2, a2, r3, g3, b3, a3, &ret)); + return ret; +} + +void +_color_class_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *color_class = va_arg(*list, const char *); + int *r = va_arg(*list, int *); + int *g = va_arg(*list, int *); + int *b = va_arg(*list, int *); + int *a = va_arg(*list, int *); + int *r2 = va_arg(*list, int *); + int *g2 = va_arg(*list, int *); + int *b2 = va_arg(*list, int *); + int *a2 = va_arg(*list, int *); + int *r3 = va_arg(*list, int *); + int *g3 = va_arg(*list, int *); + int *b3 = va_arg(*list, int *); + int *a3 = va_arg(*list, int *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_FALSE; + + const Edje *ed = _pd; Edje_Color_Class *cc = _edje_color_class_find(ed, color_class); if (cc) @@ -753,7 +872,8 @@ edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int S(r3, g3, b3, a3); #undef S #undef X - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; + return; } else { @@ -764,7 +884,7 @@ edje_object_color_class_get(const Evas_Object *obj, const char *color_class, int S(r3, g3, b3, a3); #undef S #undef X - return EINA_FALSE; + return; } } @@ -917,13 +1037,27 @@ _edje_text_class_list_foreach(const Eina_Hash *hash __UNUSED__, const void *key, EAPI Eina_Bool edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char *font, Evas_Font_Size size) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_text_class_set(text_class, font, size, &ret)); + return ret; +} + +void +_text_class_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *text_class = va_arg(*list, const char *); + const char *font = va_arg(*list, const char *); + Evas_Font_Size size = va_arg(*list, Evas_Font_Size); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + + Edje *ed = _pd; Eina_List *l; Edje_Text_Class *tc = NULL; unsigned int i; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!text_class)) return EINA_FALSE; + if ((!ed) || (!text_class)) return; /* for each text_class in the edje */ 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 if ((tc->size == size) && ((tc->font == font) || (tc->font && font && !strcmp(tc->font, font)))) - return EINA_TRUE; + { + if (ret) *ret = EINA_TRUE; + return; + } /* Update new text class properties */ eina_stringshare_replace(&tc->font, font); @@ -947,12 +1084,12 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char { /* No matches, create a new text class */ tc = calloc(1, sizeof(Edje_Text_Class)); - if (!tc) return EINA_FALSE; + if (!tc) return; tc->name = eina_stringshare_add(text_class); if (!tc->name) { free(tc); - return EINA_FALSE; + return; } tc->font = eina_stringshare_add(font); tc->size = size; @@ -980,53 +1117,92 @@ edje_object_text_class_set(Evas_Object *obj, const char *text_class, const char #endif _edje_textblock_style_all_update(ed); _edje_recalc(ed); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_exists(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_exists(part, &ret)); + return ret; +} + +void +_part_exists(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + *ret = EINA_FALSE; + + const Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - return EINA_TRUE; + if (!rp) return; + *ret = EINA_TRUE; } EAPI const Evas_Object * edje_object_part_object_get(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return NULL; + const Evas_Object *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_object_get(part, &ret)); + return ret; +} + +void +_part_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const Evas_Object **ret = va_arg(*list, const Evas_Object **); + *ret = NULL; + Edje *ed = (Edje *)_pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; /* Need to recalc before providing the object. */ _edje_recalc_do(ed); rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; - return rp->object; + if (!rp) return; + *ret = rp->object; } EAPI Eina_Bool edje_object_part_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h ) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_geometry_get(part, x, y, w, h, &ret)); + return ret; +} + +void +_part_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Coord *x = va_arg(*list, Evas_Coord *); + Evas_Coord *y = va_arg(*list, Evas_Coord *); + Evas_Coord *w = va_arg(*list, Evas_Coord *); + Evas_Coord *h = va_arg(*list, Evas_Coord *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_FALSE; + + Edje *ed = (Edje *)_pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) { if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0; - return EINA_FALSE; + return; } /* 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 if (y) *y = 0; if (w) *w = 0; if (h) *h = 0; - return EINA_FALSE; + return; } if (x) *x = rp->x; if (y) *y = rp->y; if (w) *w = rp->w; if (h) *h = rp->h; - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI void edje_object_item_provider_set(Evas_Object *obj, Edje_Item_Provider_Cb func, void *data) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_item_provider_set(func, data)); +} - ed = _edje_fetch(obj); - if (!ed) return; +void +_item_provider_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Edje_Item_Provider_Cb func = va_arg(*list, Edje_Item_Provider_Cb); + void *data = va_arg(*list, void *); + Edje *ed = _pd; ed->item_provider.func = func; ed->item_provider.data = data; } @@ -1063,11 +1245,18 @@ edje_object_item_provider_set(Evas_Object *obj, Edje_Item_Provider_Cb func, void EAPI void edje_object_text_change_cb_set(Evas_Object *obj, Edje_Text_Change_Cb func, void *data) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_text_change_cb_set(func, data)); +} + +void +_text_change_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Edje_Text_Change_Cb func = va_arg(*list, Edje_Text_Change_Cb); + void *data = va_arg(*list, void *); + Edje *ed = _pd; unsigned int i; - ed = _edje_fetch(obj); - if (!ed) return; ed->text_change.func = func; ed->text_change.data = data; @@ -1156,11 +1345,19 @@ EAPI void edje_object_part_text_style_user_push(Evas_Object *obj, const char *part, const char *style) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_style_user_push(part, style)); +} + +void +_part_text_style_user_push(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *style = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; Evas_Textblock_Style *ts; - ed = _edje_fetch(obj); if ((!ed) || (!part) || (!style)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1180,10 +1377,17 @@ edje_object_part_text_style_user_push(Evas_Object *obj, const char *part, EAPI void edje_object_part_text_style_user_pop(Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_style_user_pop(part)); +} + +void +_part_text_style_user_pop(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1200,21 +1404,30 @@ edje_object_part_text_style_user_pop(Evas_Object *obj, const char *part) EAPI const char * edje_object_part_text_style_user_peek(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return NULL; + const char *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_style_user_peek(part, &ret)); + return ret; +} + +void +_part_text_style_user_peek(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char **ret = va_arg(*list, const char **); + if (ret) *ret = NULL; + const Edje *ed = _pd; Edje_Real_Part *rp; const Evas_Textblock_Style *ts; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; - if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return NULL; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return; ts = evas_object_textblock_style_user_peek(rp->object); if (ts) - return evas_textblock_style_get(ts); - else - return NULL; + if (ret) *ret = evas_textblock_style_get(ts); } static void @@ -1246,64 +1459,111 @@ _edje_user_define_string(Edje *ed, const char *part, const char *raw_text) EAPI Eina_Bool edje_object_part_text_set(Evas_Object *obj, const char *part, const char *text) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_set(part, text, &ret)); + return ret; +} + +void +_part_text_set(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *text = va_arg(*list, const char *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_FALSE; + Edje *ed = _pd; Edje_Real_Part *rp; Eina_Bool r; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if ((rp->part->type != EDJE_PART_TYPE_TEXT) && - (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return EINA_FALSE; + (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return; if ((rp->type != EDJE_RP_TYPE_TEXT) || - (!rp->typedata.text)) return EINA_TRUE; + (!rp->typedata.text)) + { + if (ret) *ret = EINA_TRUE; + return; + } r = _edje_object_part_text_raw_set(obj, rp, part, text); _edje_user_define_string(ed, part, rp->typedata.text->text); - return r; + if (ret) *ret = r; } EAPI const char * edje_object_part_text_get(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return NULL; + const char *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_get(part, &ret)); + return ret; +} + +void +_part_text_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char **ret = va_arg(*list, const char **); + *ret = NULL; + Edje *ed = (Edje *)_pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; /* Need to recalc before providing the object. */ _edje_recalc_do(ed); rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if ((rp->type != EDJE_RP_TYPE_TEXT) || - (!rp->typedata.text)) return NULL; + (!rp->typedata.text)) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_text_get(rp); + { + *ret = _edje_entry_text_get(rp); + return; + } else { if (rp->part->type == EDJE_PART_TYPE_TEXT) - return rp->typedata.text->text; + { + *ret = rp->typedata.text->text; + return; + } if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) - return evas_object_textblock_text_markup_get(rp->object); + { + *ret = evas_object_textblock_text_markup_get(rp->object); + return; + } } - return NULL; } EAPI Eina_Bool edje_object_part_text_escaped_set(Evas_Object *obj, const char *part, const char *text) { - Edje *ed; - Edje_Real_Part *rp; - Eina_Bool ret; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_escaped_set(part, text, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_escaped_set(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *text = va_arg(*list, const char *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + if (ret) *ret = EINA_FALSE; + Edje *ed = _pd; + Edje_Real_Part *rp; + Eina_Bool int_ret; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if ((rp->type != EDJE_RP_TYPE_TEXT) || - (!rp->typedata.text)) return EINA_FALSE; + (!rp->typedata.text)) return; if ((rp->part->type == EDJE_PART_TYPE_TEXT) && (text)) { Eina_Strbuf *sbuf; @@ -1354,16 +1614,17 @@ edje_object_part_text_escaped_set(Evas_Object *obj, const char *part, const char } p++; } - ret = _edje_object_part_text_raw_set + int_ret = _edje_object_part_text_raw_set (obj, rp, part, eina_strbuf_string_get(sbuf)); _edje_user_define_string(ed, part, rp->typedata.text->text); eina_strbuf_free(sbuf); - return ret; + if (ret) *ret = int_ret; + return; } - if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return EINA_FALSE; - ret = _edje_object_part_text_raw_set(obj, rp, part, text); + if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return; + int_ret = _edje_object_part_text_raw_set(obj, rp, part, text); _edje_user_define_string(ed, part, rp->typedata.text->text); - return ret; + if (ret) *ret = int_ret; } @@ -1478,84 +1739,129 @@ _edje_text_unescape(const char *text) EAPI Eina_Bool edje_object_part_text_unescaped_set(Evas_Object *obj, const char *part, const char *text_to_escape) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_unescaped_set(part, text_to_escape, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return ret; +void +_part_text_unescaped_set(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *text_to_escape = va_arg(*list, const char *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + Eina_Bool int_ret; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return ret; + if (!rp) return; if ((rp->type != EDJE_RP_TYPE_TEXT) || - (!rp->typedata.text)) return EINA_FALSE; + (!rp->typedata.text)) return; if (rp->part->type == EDJE_PART_TYPE_TEXT) - ret = _edje_object_part_text_raw_set(obj, rp, part, text_to_escape); + int_ret = _edje_object_part_text_raw_set(obj, rp, part, text_to_escape); else if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) { char *text = _edje_text_escape(text_to_escape); - ret = _edje_object_part_text_raw_set(obj, rp, part, text); + int_ret = _edje_object_part_text_raw_set(obj, rp, part, text); free(text); } _edje_user_define_string(ed, part, rp->typedata.text->text); - return ret; + if (ret) *ret = int_ret; } EAPI char * edje_object_part_text_unescaped_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + char *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_unescaped_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_text_unescaped_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + char **ret = va_arg(*list, char **); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; /* Need to recalc before providing the object. */ _edje_recalc_do(ed); rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if ((rp->type != EDJE_RP_TYPE_TEXT) || - (!rp->typedata.text)) return NULL; + (!rp->typedata.text)) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { const char *t = _edje_entry_text_get(rp); - return _edje_text_unescape(t); + *ret = _edje_text_unescape(t); + return; } else { - if (rp->part->type == EDJE_PART_TYPE_TEXT) return strdup(rp->typedata.text->text); + if (rp->part->type == EDJE_PART_TYPE_TEXT) + { + *ret = strdup(rp->typedata.text->text); + return; + } if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK) { const char *t = evas_object_textblock_text_markup_get(rp->object); - return _edje_text_unescape(t); + *ret = _edje_text_unescape(t); + return; } } - return NULL; } EAPI const char * edje_object_part_text_selection_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + const char* ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_selection_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_text_selection_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char **ret = va_arg(*list, const char **); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_selection_get(rp); - return NULL; + *ret = _edje_entry_selection_get(rp); } EAPI void edje_object_part_text_select_none(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_select_none(part)); +} + +void +_part_text_select_none(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1566,10 +1872,17 @@ edje_object_part_text_select_none(const Evas_Object *obj, const char *part) EAPI void edje_object_part_text_select_all(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_select_all(part)); +} + +void +_part_text_select_all(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1580,10 +1893,18 @@ edje_object_part_text_select_all(const Evas_Object *obj, const char *part) EAPI void edje_object_part_text_insert(Evas_Object *obj, const char *part, const char *text) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_insert(part, text)); +} + +void +_part_text_insert(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *text = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1604,10 +1925,18 @@ edje_object_part_text_insert(Evas_Object *obj, const char *part, const char *tex EAPI void edje_object_part_text_append(Evas_Object *obj, const char *part, const char *text) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_append(part, text)); +} + +void +_part_text_append(Eo *obj, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *text = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1627,70 +1956,130 @@ edje_object_part_text_append(Evas_Object *obj, const char *part, const char *tex EAPI const Eina_List * edje_object_part_text_anchor_list_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + const Eina_List *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_anchor_list_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_text_anchor_list_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const Eina_List **ret = va_arg(*list, const Eina_List **); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_anchors_list(rp); - return NULL; + *ret = _edje_entry_anchors_list(rp); } EAPI const Eina_List * edje_object_part_text_anchor_geometry_get(const Evas_Object *obj, const char *part, const char *anchor) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + const Eina_List *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_anchor_geometry_get(part, anchor, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_text_anchor_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *anchor = va_arg(*list, const char *); + const Eina_List **ret = va_arg(*list, const Eina_List **); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_anchor_geometry_get(rp, anchor); - return NULL; + *ret = _edje_entry_anchor_geometry_get(rp, anchor); } EAPI const Eina_List * edje_object_part_text_item_list_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + const Eina_List *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_item_list_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_text_item_list_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const Eina_List **ret = va_arg(*list, const Eina_List **); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_items_list(rp); - return NULL; + *ret = _edje_entry_items_list(rp); } EAPI Eina_Bool edje_object_part_text_item_geometry_get(const Evas_Object *obj, const char *part, const char *item, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_text_item_geometry_get(part, item, cx, cy, cw, ch, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_item_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *item = va_arg(*list, const char *); + Evas_Coord *cx = va_arg(*list, Evas_Coord *); + Evas_Coord *cy = va_arg(*list, Evas_Coord *); + Evas_Coord *cw = va_arg(*list, Evas_Coord *); + Evas_Coord *ch = va_arg(*list, Evas_Coord *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_item_geometry_get(rp, item, cx, cy, cw, ch); - return EINA_FALSE; + { + Eina_Bool int_ret = _edje_entry_item_geometry_get(rp, item, cx, cy, cw, ch); + if (ret) *ret = int_ret; + } } EAPI void edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_cursor_geometry_get(part, x, y, w, h)); +} + +void +_part_text_cursor_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Coord *x = va_arg(*list, Evas_Coord *); + Evas_Coord *y = va_arg(*list, Evas_Coord *); + Evas_Coord *w = va_arg(*list, Evas_Coord *); + Evas_Coord *h = va_arg(*list, Evas_Coord *); + const Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; @@ -1709,10 +2098,18 @@ edje_object_part_text_cursor_geometry_get(const Evas_Object *obj, const char *pa EAPI void edje_object_part_text_user_insert(const Evas_Object *obj, const char *part, const char *text) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_user_insert(part, text)); +} + +void +_part_text_user_insert(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const char *text = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1723,10 +2120,18 @@ edje_object_part_text_user_insert(const Evas_Object *obj, const char *part, cons EAPI void edje_object_part_text_select_allow_set(const Evas_Object *obj, const char *part, Eina_Bool allow) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_select_allow_set(part, allow)); +} + +void +_part_text_select_allow_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool allow = va_arg(*list, int); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1737,10 +2142,17 @@ edje_object_part_text_select_allow_set(const Evas_Object *obj, const char *part, EAPI void edje_object_part_text_select_abort(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_select_abort(part)); +} + +void +_part_text_select_abort(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1751,10 +2163,17 @@ edje_object_part_text_select_abort(const Evas_Object *obj, const char *part) EAPI void edje_object_part_text_select_begin(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_select_begin(part)); +} + +void +_part_text_select_begin(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1765,10 +2184,17 @@ edje_object_part_text_select_begin(const Evas_Object *obj, const char *part) EAPI void edje_object_part_text_select_extend(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_select_extend(part)); +} + +void +_part_text_select_extend(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1779,96 +2205,161 @@ edje_object_part_text_select_extend(const Evas_Object *obj, const char *part) EAPI void * edje_object_part_text_imf_context_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + void *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_imf_context_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_text_imf_context_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + void **ret = va_arg(*list, void **); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, (char *)part); - if (!rp) return NULL; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - return _edje_entry_imf_context_get(rp); - else - return NULL; + *ret = _edje_entry_imf_context_get(rp); } EAPI Eina_Bool edje_object_part_text_cursor_next(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_cursor_next(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_cursor_next(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_next(rp, cur); + Eina_Bool int_ret = _edje_entry_cursor_next(rp, cur); + if (ret) *ret = int_ret; } - return EINA_FALSE; } EAPI Eina_Bool edje_object_part_text_cursor_prev(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_cursor_prev(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_cursor_prev(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_prev(rp, cur); + Eina_Bool int_ret = _edje_entry_cursor_prev(rp, cur); + if (ret) *ret = int_ret; } - return EINA_FALSE; } EAPI Eina_Bool edje_object_part_text_cursor_up(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_cursor_up(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_cursor_up(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_up(rp, cur); + Eina_Bool int_ret = _edje_entry_cursor_up(rp, cur); + if (ret) *ret = int_ret; } - return EINA_FALSE; } EAPI Eina_Bool edje_object_part_text_cursor_down(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_cursor_down(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_cursor_down(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_down(rp, cur); + Eina_Bool int_ret = _edje_entry_cursor_down(rp, cur); + if (ret) *ret = int_ret; } - return EINA_FALSE; } EAPI void edje_object_part_text_cursor_begin_set(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_cursor_begin_set(part, cur)); +} + +void +_part_text_cursor_begin_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1881,10 +2372,18 @@ edje_object_part_text_cursor_begin_set(Evas_Object *obj, const char *part, Edje_ EAPI void edje_object_part_text_cursor_end_set(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_cursor_end_set(part, cur)); +} + +void +_part_text_cursor_end_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1897,10 +2396,19 @@ edje_object_part_text_cursor_end_set(Evas_Object *obj, const char *part, Edje_Cu EAPI void edje_object_part_text_cursor_copy(Evas_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_cursor_copy(part, src, dst)); +} + +void +_part_text_cursor_copy(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor src = va_arg(*list, Edje_Cursor); + Edje_Cursor dst = va_arg(*list, Edje_Cursor); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1913,10 +2421,18 @@ edje_object_part_text_cursor_copy(Evas_Object *obj, const char *part, Edje_Curso EAPI void edje_object_part_text_cursor_line_begin_set(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_cursor_line_begin_set(part, cur)); +} + +void +_part_text_cursor_line_begin_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1929,10 +2445,18 @@ edje_object_part_text_cursor_line_begin_set(Evas_Object *obj, const char *part, EAPI void edje_object_part_text_cursor_line_end_set(Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_cursor_line_end_set(part, cur)); +} + +void +_part_text_cursor_line_end_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -1946,78 +2470,134 @@ EAPI Eina_Bool edje_object_part_text_cursor_coord_set(Evas_Object *obj, const char *part, Edje_Cursor cur, Evas_Coord x, Evas_Coord y) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_text_cursor_coord_set(part, cur, x, y, &ret)); + return ret; +} + +void +_part_text_cursor_coord_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Evas_Coord x = va_arg(*list, Evas_Coord); + Evas_Coord y = va_arg(*list, Evas_Coord); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if (ret) *ret = EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_coord_set(rp, cur, x, y); + Eina_Bool int_ret = _edje_entry_cursor_coord_set(rp, cur, x, y); + if (ret) *ret = int_ret; } - return EINA_FALSE; } EAPI Eina_Bool edje_object_part_text_cursor_is_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_text_cursor_is_format_get(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_cursor_is_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_is_format_get(rp, cur); + *ret = _edje_entry_cursor_is_format_get(rp, cur); } - return EINA_FALSE; } EAPI Eina_Bool edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_text_cursor_is_visible_format_get(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return 0; +void +_part_text_cursor_is_visible_format_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return 0; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_is_visible_format_get(rp, cur); + *ret = _edje_entry_cursor_is_visible_format_get(rp, cur); } - return 0; } EAPI char * edje_object_part_text_cursor_content_get(const Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + char *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_text_cursor_content_get(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_text_cursor_content_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + char **ret = va_arg(*list, char **); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_content_get(rp, cur); + *ret = _edje_entry_cursor_content_get(rp, cur); } - return NULL; } EAPI void edje_object_part_text_cursor_pos_set(Evas_Object *obj, const char *part, Edje_Cursor cur, int pos) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_cursor_pos_set(part, cur, pos)); +} + +void +_part_text_cursor_pos_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + int pos = va_arg(*list, int); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2030,27 +2610,45 @@ edje_object_part_text_cursor_pos_set(Evas_Object *obj, const char *part, Edje_Cu EAPI int edje_object_part_text_cursor_pos_get(const Evas_Object *obj, const char *part, Edje_Cursor cur) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return 0; + int ret; + eo_do((Eo *)obj, edje_obj_part_text_cursor_pos_get(part, cur, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return 0; +void +_part_text_cursor_pos_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Cursor cur = va_arg(*list, Edje_Cursor); + int *ret = va_arg(*list, int *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = 0; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return 0; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_cursor_pos_get(rp, cur); + *ret = _edje_entry_cursor_pos_get(rp, cur); } - return 0; } EAPI void edje_object_part_text_imf_context_reset(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_imf_context_reset(part)); +} + +void +_part_text_imf_context_reset(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2063,10 +2661,18 @@ edje_object_part_text_imf_context_reset(const Evas_Object *obj, const char *part EAPI void edje_object_part_text_input_panel_layout_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Layout layout) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_input_panel_layout_set(part, layout)); +} + +void +_part_text_input_panel_layout_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Input_Panel_Layout layout = va_arg(*list, Edje_Input_Panel_Layout); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2079,27 +2685,45 @@ edje_object_part_text_input_panel_layout_set(Evas_Object *obj, const char *part, EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EDJE_INPUT_PANEL_LAYOUT_INVALID; + Edje_Input_Panel_Layout ret; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_layout_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EDJE_INPUT_PANEL_LAYOUT_INVALID; +void +_part_text_input_panel_layout_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Input_Panel_Layout *ret = va_arg(*list, Edje_Input_Panel_Layout *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EDJE_INPUT_PANEL_LAYOUT_INVALID; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_input_panel_layout_get(rp); + *ret = _edje_entry_input_panel_layout_get(rp); } - return EDJE_INPUT_PANEL_LAYOUT_INVALID; } EAPI void edje_object_part_text_autocapital_type_set(Evas_Object *obj, const char *part, Edje_Text_Autocapital_Type autocapital_type) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_autocapital_type_set(part, autocapital_type)); +} + +void +_part_text_autocapital_type_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Text_Autocapital_Type autocapital_type = va_arg(*list, Edje_Text_Autocapital_Type); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2112,27 +2736,45 @@ edje_object_part_text_autocapital_type_set(Evas_Object *obj, const char *part, E EAPI Edje_Text_Autocapital_Type edje_object_part_text_autocapital_type_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EDJE_TEXT_AUTOCAPITAL_TYPE_NONE; + Edje_Text_Autocapital_Type ret; + eo_do((Eo *)obj, edje_obj_part_text_autocapital_type_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EDJE_TEXT_AUTOCAPITAL_TYPE_NONE; +void +_part_text_autocapital_type_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Text_Autocapital_Type *ret = va_arg(*list, Edje_Text_Autocapital_Type *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EDJE_TEXT_AUTOCAPITAL_TYPE_NONE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EDJE_TEXT_AUTOCAPITAL_TYPE_NONE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_autocapital_type_get(rp); + *ret = _edje_entry_autocapital_type_get(rp); } - return EDJE_TEXT_AUTOCAPITAL_TYPE_NONE; } EAPI void edje_object_part_text_prediction_allow_set(Evas_Object *obj, const char *part, Eina_Bool prediction) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_prediction_allow_set(part, prediction)); +} + +void +_part_text_prediction_allow_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool prediction = va_arg(*list, int); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2145,27 +2787,45 @@ edje_object_part_text_prediction_allow_set(Evas_Object *obj, const char *part, E EAPI Eina_Bool edje_object_part_text_prediction_allow_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_text_prediction_allow_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_prediction_allow_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_prediction_allow_get(rp); + *ret = _edje_entry_prediction_allow_get(rp); } - return EINA_FALSE; } EAPI void edje_object_part_text_input_panel_enabled_set(Evas_Object *obj, const char *part, Eina_Bool enabled) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_input_panel_enabled_set(part, enabled)); +} + +void +_part_text_input_panel_enabled_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool enabled = va_arg(*list, int); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2178,27 +2838,44 @@ edje_object_part_text_input_panel_enabled_set(Evas_Object *obj, const char *part EAPI Eina_Bool edje_object_part_text_input_panel_enabled_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_enabled_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_input_panel_enabled_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_input_panel_enabled_get(rp); + *ret = _edje_entry_input_panel_enabled_get(rp); } - return EINA_FALSE; } EAPI void edje_object_part_text_input_panel_show(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_show(part)); +} + +void +_part_text_input_panel_show(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2209,10 +2886,17 @@ edje_object_part_text_input_panel_show(const Evas_Object *obj, const char *part) EAPI void edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_hide(part)); +} + +void +_part_text_input_panel_hide(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2223,10 +2907,18 @@ edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part) EAPI void edje_object_part_text_input_panel_language_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Lang lang) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_input_panel_language_set(part, lang)); +} + +void +_part_text_input_panel_language_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Input_Panel_Lang lang = va_arg(*list, Edje_Input_Panel_Lang); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2239,27 +2931,46 @@ edje_object_part_text_input_panel_language_set(Evas_Object *obj, const char *par EAPI Edje_Input_Panel_Lang edje_object_part_text_input_panel_language_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EDJE_INPUT_PANEL_LANG_AUTOMATIC; + Edje_Input_Panel_Lang ret; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_language_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EDJE_INPUT_PANEL_LANG_AUTOMATIC; +void +_part_text_input_panel_language_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Input_Panel_Lang *ret = va_arg(*list, Edje_Input_Panel_Lang *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EDJE_INPUT_PANEL_LANG_AUTOMATIC; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EDJE_INPUT_PANEL_LANG_AUTOMATIC; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_input_panel_language_get(rp); + *ret = _edje_entry_input_panel_language_get(rp); } - return EDJE_INPUT_PANEL_LANG_AUTOMATIC; } EAPI void edje_object_part_text_input_panel_imdata_set(Evas_Object *obj, const char *part, const void *data, int len) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_input_panel_imdata_set(part, data, len)); +} + +void +_part_text_input_panel_imdata_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + const void *data = va_arg(*list, const void *); + int len = va_arg(*list, int); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2272,10 +2983,19 @@ edje_object_part_text_input_panel_imdata_set(Evas_Object *obj, const char *part, EAPI void edje_object_part_text_input_panel_imdata_get(const Evas_Object *obj, const char *part, void *data, int *len) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_imdata_get(part, data, len)); +} + +void +_part_text_input_panel_imdata_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + void *data = va_arg(*list, void *); + int *len = va_arg(*list, int *); + const Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2288,10 +3008,18 @@ edje_object_part_text_input_panel_imdata_get(const Evas_Object *obj, const char EAPI void edje_object_part_text_input_panel_return_key_type_set(Evas_Object *obj, const char *part, Edje_Input_Panel_Return_Key_Type return_key_type) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_input_panel_return_key_type_set(part, return_key_type)); +} + +void +_part_text_input_panel_return_key_type_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Input_Panel_Return_Key_Type return_key_type = va_arg(*list, Edje_Input_Panel_Return_Key_Type); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2304,27 +3032,45 @@ edje_object_part_text_input_panel_return_key_type_set(Evas_Object *obj, const ch EAPI Edje_Input_Panel_Return_Key_Type edje_object_part_text_input_panel_return_key_type_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT; + Edje_Input_Panel_Return_Key_Type ret; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_return_key_type_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT; +void +_part_text_input_panel_return_key_type_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Input_Panel_Return_Key_Type *ret = va_arg(*list, Edje_Input_Panel_Return_Key_Type *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_input_panel_return_key_type_get(rp); + *ret = _edje_entry_input_panel_return_key_type_get(rp); } - return EDJE_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT; } EAPI void edje_object_part_text_input_panel_return_key_disabled_set(Evas_Object *obj, const char *part, Eina_Bool disabled) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_part_text_input_panel_return_key_disabled_set(part, disabled)); +} + +void +_part_text_input_panel_return_key_disabled_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool disabled = va_arg(*list, int); + Edje *ed = _pd; Edje_Real_Part *rp; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); if (!rp) return; @@ -2337,27 +3083,46 @@ edje_object_part_text_input_panel_return_key_disabled_set(Evas_Object *obj, cons EAPI Eina_Bool edje_object_part_text_input_panel_return_key_disabled_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_text_input_panel_return_key_disabled_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_text_input_panel_return_key_disabled_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; + if (!rp) return; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) { - return _edje_entry_input_panel_return_key_disabled_get(rp); + *ret = _edje_entry_input_panel_return_key_disabled_get(rp); } - return EINA_FALSE; } EAPI void edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_text_insert_filter_callback_add(part, func, data)); +} + +void +_text_insert_filter_callback_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Text_Filter_Cb func = va_arg(*list, Edje_Text_Filter_Cb); + void *data = va_arg(*list, void *); + Edje *ed = _pd; Edje_Text_Insert_Filter_Callback *cb; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; cb = calloc(1, sizeof(Edje_Text_Insert_Filter_Callback)); cb->part = eina_stringshare_add(part); @@ -2370,12 +3135,24 @@ edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, EAPI void * edje_object_text_insert_filter_callback_del(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func) { - Edje *ed; + if (!obj) return NULL; + void *ret = NULL; + eo_do(obj, edje_obj_text_insert_filter_callback_del(part, func, &ret)); + return ret; +} + +void +_text_insert_filter_callback_del(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Text_Filter_Cb func = va_arg(*list, Edje_Text_Filter_Cb); + void **ret = va_arg(*list, void **); + Edje *ed = _pd; Edje_Text_Insert_Filter_Callback *cb; Eina_List *l; + if (ret) *ret = NULL; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; EINA_LIST_FOREACH(ed->text_insert_filter_callbacks, l, cb) { if ((!strcmp(cb->part, part)) && (cb->func == func)) @@ -2385,21 +3162,34 @@ edje_object_text_insert_filter_callback_del(Evas_Object *obj, const char *part, eina_list_remove_list(ed->text_insert_filter_callbacks, l); eina_stringshare_del(cb->part); free(cb); - return data; + if (ret) *ret = data; + return; } } - return NULL; } EAPI void * edje_object_text_insert_filter_callback_del_full(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data) { - Edje *ed; + if (!obj) return NULL; + void *ret = NULL; + eo_do(obj, edje_obj_text_insert_filter_callback_del_full(part, func, data, &ret)); + return ret; +} + +void +_text_insert_filter_callback_del_full(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Text_Filter_Cb func = va_arg(*list, Edje_Text_Filter_Cb); + void *data = va_arg(*list, void *); + void **ret = va_arg(*list, void **); + Edje *ed = _pd; Edje_Text_Insert_Filter_Callback *cb; Eina_List *l; + if (ret) *ret = NULL; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; EINA_LIST_FOREACH(ed->text_insert_filter_callbacks, l, cb) { if ((!strcmp(cb->part, part)) && (cb->func == func) && @@ -2410,19 +3200,28 @@ edje_object_text_insert_filter_callback_del_full(Evas_Object *obj, const char *p eina_list_remove_list(ed->text_insert_filter_callbacks, l); eina_stringshare_del(cb->part); free(cb); - return tmp; + if (ret) *ret = tmp; + return; } } - return NULL; } EAPI void edje_object_text_markup_filter_callback_add(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_text_markup_filter_callback_add(part, func, data)); +} + +void +_text_markup_filter_callback_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Markup_Filter_Cb func = va_arg(*list, Edje_Markup_Filter_Cb); + void *data = va_arg(*list, void *); + Edje *ed = _pd; Edje_Markup_Filter_Callback *cb; - ed = _edje_fetch(obj); if ((!ed) || (!part)) return; cb = calloc(1, sizeof(Edje_Markup_Filter_Callback)); cb->part = eina_stringshare_add(part); @@ -2435,12 +3234,24 @@ edje_object_text_markup_filter_callback_add(Evas_Object *obj, const char *part, EAPI void * edje_object_text_markup_filter_callback_del(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func) { - Edje *ed; + if (!obj) return NULL; + void *ret = NULL; + eo_do(obj, edje_obj_text_markup_filter_callback_del(part, func, &ret)); + return ret; +} + +void +_text_markup_filter_callback_del(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Markup_Filter_Cb func = va_arg(*list, Edje_Markup_Filter_Cb); + void **ret = va_arg(*list, void **); + Edje *ed = _pd; Edje_Markup_Filter_Callback *cb; Eina_List *l; + if (ret) *ret = NULL; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; EINA_LIST_FOREACH(ed->markup_filter_callbacks, l, cb) { if ((!strcmp(cb->part, part)) && (cb->func == func)) @@ -2450,21 +3261,34 @@ edje_object_text_markup_filter_callback_del(Evas_Object *obj, const char *part, eina_list_remove_list(ed->markup_filter_callbacks, l); eina_stringshare_del(cb->part); free(cb); - return data; + if (ret) *ret = data; + return; } } - return NULL; } EAPI void * edje_object_text_markup_filter_callback_del_full(Evas_Object *obj, const char *part, Edje_Markup_Filter_Cb func, void *data) { - Edje *ed; + if (!obj) return NULL; + void *ret = NULL; + eo_do(obj, edje_obj_text_markup_filter_callback_del_full(part, func, data, &ret)); + return ret; +} + +void +_text_markup_filter_callback_del_full(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Markup_Filter_Cb func = va_arg(*list, Edje_Markup_Filter_Cb); + void *data = va_arg(*list, void *); + void **ret = va_arg(*list, void **); + Edje *ed = _pd; Edje_Markup_Filter_Callback *cb; Eina_List *l; + if (ret) *ret = NULL; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; EINA_LIST_FOREACH(ed->markup_filter_callbacks, l, cb) { if ((!strcmp(cb->part, part)) && (cb->func == func) && @@ -2475,21 +3299,33 @@ edje_object_text_markup_filter_callback_del_full(Evas_Object *obj, const char *p eina_list_remove_list(ed->markup_filter_callbacks, l); eina_stringshare_del(cb->part); free(cb); - return tmp; + if (ret) *ret = tmp; + return; } } - return NULL; } EAPI Eina_Bool edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_swallow) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_swallow(part, obj_swallow, &ret)); + return ret; +} + +void +_part_swallow(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *obj_swallow = va_arg(*list, Evas_Object *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; Edje_User_Defined *eud = NULL; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; /* Need to recalc before providing the object. */ // XXX: I guess this is not required, removing for testing purposes @@ -2512,15 +3348,15 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw if (!rp) { DBG("cannot swallow part %s: part not exist!", part); - return EINA_FALSE; + return; } if (rp->part->type != EDJE_PART_TYPE_SWALLOW) { ERR("cannot swallow part %s: not swallow type!", rp->part->name); - return EINA_FALSE; + return; } if ((rp->type != EDJE_RP_TYPE_SWALLOW) || - (!rp->typedata.swallow)) return EINA_FALSE; + (!rp->typedata.swallow)) return; _edje_real_part_swallow(rp, obj_swallow, EINA_TRUE); if (rp->typedata.swallow->swallowed_object) @@ -2538,7 +3374,7 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw } } - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } static void @@ -2558,6 +3394,7 @@ _recalc_extern_parent(Evas_Object *obj) EAPI void edje_extern_object_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord minh) { + if (!obj) return; Edje_Real_Part *rp; evas_object_size_hint_min_set(obj, minw, minh); @@ -2576,6 +3413,7 @@ edje_extern_object_min_size_set(Evas_Object *obj, Evas_Coord minw, Evas_Coord mi EAPI void edje_extern_object_max_size_set(Evas_Object *obj, Evas_Coord maxw, Evas_Coord maxh) { + if (!obj) return; Edje_Real_Part *rp; evas_object_size_hint_max_set(obj, maxw, maxh); @@ -2594,6 +3432,7 @@ edje_extern_object_max_size_set(Evas_Object *obj, Evas_Coord maxw, Evas_Coord ma EAPI void edje_extern_object_aspect_set(Evas_Object *obj, Edje_Aspect_Control aspect, Evas_Coord aw, Evas_Coord ah) { + if (!obj) return; Edje_Real_Part *rp; Evas_Aspect_Control asp; @@ -2813,6 +3652,14 @@ edje_box_layout_register(const char *name, Evas_Object_Box_Layout func, void *(* EAPI void edje_object_part_unswallow(Evas_Object *obj, Evas_Object *obj_swallow) { + if (!obj) return; + eo_do(obj, edje_obj_part_unswallow(obj_swallow)); +} + +void +_part_unswallow(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Evas_Object *obj_swallow = va_arg(*list, Evas_Object *); Edje_Real_Part *rp; if (!obj_swallow) return; @@ -2836,9 +3683,8 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_Object *obj_swallow) if (obj) { - Edje *ed; + Edje *ed = _pd; - ed = _edje_fetch(obj); if (!ed && obj) { ERR("edje_object_part_unswallow called on a non Edje object ('%s').", @@ -2874,28 +3720,47 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_Object *obj_swallow) EAPI Evas_Object * edje_object_part_swallow_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + Evas_Object *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_swallow_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_swallow_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object **ret = va_arg(*list, Evas_Object **); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; /* Need to recalc before providing the object. */ _edje_recalc_do(ed); rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; + if (!rp) return; if ((rp->type != EDJE_RP_TYPE_SWALLOW) || - (!rp->typedata.swallow)) return NULL; - return rp->typedata.swallow->swallowed_object; + (!rp->typedata.swallow)) return; + *ret = rp->typedata.swallow->swallowed_object; } EAPI void edje_object_size_min_get(const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_size_min_get(minw, minh)); +} + +void +_size_min_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Evas_Coord *minw = va_arg(*list, Evas_Coord *); + Evas_Coord *minh = va_arg(*list, Evas_Coord *); + const Edje *ed = _pd; - ed = _edje_fetch(obj); if ((!ed) || (!ed->collection)) { if (minw) *minw = 0; @@ -2909,9 +3774,17 @@ edje_object_size_min_get(const Evas_Object *obj, Evas_Coord *minw, Evas_Coord *m EAPI void edje_object_size_max_get(const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh) { - Edje *ed; + if (!obj) return; + eo_do((Eo *)obj, edje_obj_size_max_get(maxw, maxh)); +} + +void +_size_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Evas_Coord *maxw = va_arg(*list, Evas_Coord *); + Evas_Coord *maxh = va_arg(*list, Evas_Coord *); + Edje *ed = (Edje *)_pd; - ed = _edje_fetch(obj); if ((!ed) || (!ed->collection)) { if (maxw) *maxw = 0; @@ -2945,10 +3818,16 @@ edje_object_size_max_get(const Evas_Object *obj, Evas_Coord *maxw, Evas_Coord *m EAPI void edje_object_calc_force(Evas_Object *obj) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_calc_force()); +} + +void +_calc_force(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) +{ + Edje *ed = _pd; int pf, pf2; - ed = _edje_fetch(obj); if (!ed) return; ed->dirty = EINA_TRUE; #ifdef EDJE_CALC_CACHE @@ -2970,25 +3849,48 @@ edje_object_calc_force(Evas_Object *obj) EAPI void edje_object_size_min_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh) { + if (!obj) return; + eo_do(obj, edje_obj_size_min_calc(minw, minh)); +} + +void +_size_min_calc(Eo *obj, void *_pd EINA_UNUSED, va_list *list) +{ + Evas_Coord *minw = va_arg(*list, Evas_Coord *); + Evas_Coord *minh = va_arg(*list, Evas_Coord *); edje_object_size_min_restricted_calc(obj, minw, minh, 0, 0); } EAPI Eina_Bool edje_object_parts_extends_calc(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_parts_extends_calc(x, y, w, h, &ret)); + return ret; +} + +void +_parts_extends_calc(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Evas_Coord *x = va_arg(*list, Evas_Coord *); + Evas_Coord *y = va_arg(*list, Evas_Coord *); + Evas_Coord *w = va_arg(*list, Evas_Coord *); + Evas_Coord *h = va_arg(*list, Evas_Coord *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Evas_Coord xx1 = INT_MAX, yy1 = INT_MAX; Evas_Coord xx2 = 0, yy2 = 0; unsigned int i; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); if (!ed) { if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0; - return EINA_FALSE; + return; } ed->calc_only = EINA_TRUE; @@ -3023,13 +3925,24 @@ edje_object_parts_extends_calc(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, E if (w) *w = xx2 - xx1; if (h) *h = yy2 - yy1; - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI void edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_size_min_restricted_calc(minw, minh, restrictedw, restrictedh)); +} + +void +_size_min_restricted_calc(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Evas_Coord *minw = va_arg(*list, Evas_Coord *); + Evas_Coord *minh = va_arg(*list, Evas_Coord *); + Evas_Coord restrictedw = va_arg(*list, Evas_Coord); + Evas_Coord restrictedh = va_arg(*list, Evas_Coord); + Edje *ed = _pd; Evas_Coord pw, ph; int maxw, maxh; int okw, okh; @@ -3037,7 +3950,6 @@ edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Co Edje_Real_Part *pep = NULL; Eina_Bool has_non_fixed_tb = EINA_FALSE; - ed = _edje_fetch(obj); if ((!ed) || (!ed->collection)) { if (minw) *minw = restrictedw; @@ -3181,14 +4093,26 @@ edje_object_size_min_restricted_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Co EAPI const char * edje_object_part_state_get(const Evas_Object *obj, const char *part, double *val_ret) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + const char *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_state_get(part, val_ret, &ret)); + return ret; +} + +void +_part_state_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double *val_ret = va_arg(*list, double *); + const char **ret = va_arg(*list, const char **); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = ""; - ed = _edje_fetch(obj); if ((!ed) || (!part)) { if (val_ret) *val_ret = 0; - return ""; + return; } /* Need to recalc before providing the object. */ @@ -3199,14 +4123,16 @@ edje_object_part_state_get(const Evas_Object *obj, const char *part, double *val { if (val_ret) *val_ret = 0; INF("part not found"); - return ""; + return; } if (rp->chosen_description) { if (val_ret) *val_ret = rp->chosen_description->state.value; if (rp->chosen_description->state.name) - return rp->chosen_description->state.name; - return "default"; + *ret = rp->chosen_description->state.name; + else + *ret = "default"; + return; } else { @@ -3214,48 +4140,72 @@ edje_object_part_state_get(const Evas_Object *obj, const char *part, double *val { if (val_ret) *val_ret = rp->param1.description->state.value; if (rp->param1.description->state.name) - return rp->param1.description->state.name; - return "default"; + *ret = rp->param1.description->state.name; + else + *ret = "default"; + return; } } if (val_ret) *val_ret = 0; - return ""; } EAPI Edje_Drag_Dir edje_object_part_drag_dir_get(const Evas_Object *obj, const char *part) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EDJE_DRAG_DIR_NONE; + Edje_Drag_Dir ret; + eo_do((Eo *)obj, edje_obj_part_drag_dir_get(part, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EDJE_DRAG_DIR_NONE; +void +_part_drag_dir_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Edje_Drag_Dir *ret = va_arg(*list, Edje_Drag_Dir *); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = EDJE_DRAG_DIR_NONE; + + if ((!ed) || (!part)) return; /* Need to recalc before providing the object. */ _edje_recalc_do(ed); rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EDJE_DRAG_DIR_NONE; - if ((rp->part->dragable.x) && (rp->part->dragable.y)) return EDJE_DRAG_DIR_XY; - else if (rp->part->dragable.x) return EDJE_DRAG_DIR_X; - else if (rp->part->dragable.y) return EDJE_DRAG_DIR_Y; - return EDJE_DRAG_DIR_NONE; + if (!rp) return; + if ((rp->part->dragable.x) && (rp->part->dragable.y)) *ret = EDJE_DRAG_DIR_XY; + else if (rp->part->dragable.x) *ret = EDJE_DRAG_DIR_X; + else if (rp->part->dragable.y) *ret = EDJE_DRAG_DIR_Y; } EAPI Eina_Bool edje_object_part_drag_value_set(Evas_Object *obj, const char *part, double dx, double dy) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_drag_value_set(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_value_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double dx = va_arg(*list, double); + double dy = va_arg(*list, double); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; Edje_User_Defined *eud; Eina_List *l; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (!rp->drag) return EINA_FALSE; - if (rp->drag->down.count > 0) return EINA_FALSE; + if (!rp) return; + if (!rp->drag) return; + if (rp->drag->down.count > 0) return; EINA_LIST_FOREACH(ed->user_defined, l, eud) if (eud->type == EDJE_USER_DRAG_VALUE && !strcmp(part, eud->part)) @@ -3281,7 +4231,11 @@ edje_object_part_drag_value_set(Evas_Object *obj, const char *part, double dx, d } if (rp->part->dragable.x < 0) dx = 1.0 - dx; if (rp->part->dragable.y < 0) dy = 1.0 - dy; - if ((rp->drag->val.x == FROM_DOUBLE(dx)) && (rp->drag->val.y == FROM_DOUBLE(dy))) return EINA_TRUE; + if ((rp->drag->val.x == FROM_DOUBLE(dx)) && (rp->drag->val.y == FROM_DOUBLE(dy))) + { + if (ret) *ret = EINA_TRUE; + return; + } rp->drag->val.x = FROM_DOUBLE(dx); rp->drag->val.y = FROM_DOUBLE(dy); #ifdef EDJE_CALC_CACHE @@ -3289,23 +4243,36 @@ edje_object_part_drag_value_set(Evas_Object *obj, const char *part, double dx, d #endif _edje_dragable_pos_set(rp->edje, rp, rp->drag->val.x, rp->drag->val.y); _edje_emit(rp->edje, "drag,set", rp->part->name); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } /* FIXME: Should this be x and y instead of dx/dy? */ EAPI Eina_Bool edje_object_part_drag_value_get(const Evas_Object *obj, const char *part, double *dx, double *dy) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_drag_value_get(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_value_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double *dx = va_arg(*list, double *); + double *dy = va_arg(*list, double *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = (Edje *)_pd; Edje_Real_Part *rp; double ddx, ddy; + *ret = EINA_FALSE; - ed = _edje_fetch(obj); if ((!ed) || (!part)) { if (dx) *dx = 0; if (dy) *dy = 0; - return EINA_FALSE; + return; } /* Need to recalc before providing the object. */ @@ -3316,7 +4283,7 @@ edje_object_part_drag_value_get(const Evas_Object *obj, const char *part, double { if (dx) *dx = 0; if (dy) *dy = 0; - return EINA_FALSE; + return; } ddx = TO_DOUBLE(rp->drag->val.x); ddy = TO_DOUBLE(rp->drag->val.y); @@ -3324,22 +4291,35 @@ edje_object_part_drag_value_get(const Evas_Object *obj, const char *part, double if (rp->part->dragable.y < 0) ddy = 1.0 - ddy; if (dx) *dx = ddx; if (dy) *dy = ddy; - return EINA_TRUE; + *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_size_set(Evas_Object *obj, const char *part, double dw, double dh) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_drag_size_set(part, dw, dh, &ret)); + return ret; +} + +void +_part_drag_size_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double dw = va_arg(*list, double); + double dh = va_arg(*list, double); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; Edje_User_Defined *eud; Eina_List *l; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (!rp->drag) return EINA_FALSE; + if (!rp) return; + if (!rp->drag) return; EINA_LIST_FOREACH(ed->user_defined, l, eud) if (eud->type == EDJE_USER_DRAG_SIZE && !strcmp(part, eud->part)) @@ -3362,7 +4342,11 @@ edje_object_part_drag_size_set(Evas_Object *obj, const char *part, double dw, do else if (dw > 1.0) dw = 1.0; if (dh < 0.0) dh = 0.0; else if (dh > 1.0) dh = 1.0; - if ((rp->drag->size.x == FROM_DOUBLE(dw)) && (rp->drag->size.y == FROM_DOUBLE(dh))) return EINA_TRUE; + if ((rp->drag->size.x == FROM_DOUBLE(dw)) && (rp->drag->size.y == FROM_DOUBLE(dh))) + { + if (ret) *ret = EINA_TRUE; + return; + } rp->drag->size.x = FROM_DOUBLE(dw); rp->drag->size.y = FROM_DOUBLE(dh); rp->edje->dirty = EINA_TRUE; @@ -3371,21 +4355,34 @@ edje_object_part_drag_size_set(Evas_Object *obj, const char *part, double dw, do rp->invalidate = 1; #endif _edje_recalc(rp->edje); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_size_get(const Evas_Object *obj, const char *part, double *dw, double *dh) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_drag_size_get(part, dw, dh, &ret)); + return ret; +} + +void +_part_drag_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double *dw = va_arg(*list, double *); + double *dh = va_arg(*list, double *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; - ed = _edje_fetch(obj); if ((!ed) || (!part)) { if (dw) *dw = 0; if (dh) *dh = 0; - return EINA_FALSE; + return; } /* Need to recalc before providing the object. */ @@ -3396,26 +4393,39 @@ edje_object_part_drag_size_get(const Evas_Object *obj, const char *part, double { if (dw) *dw = 0; if (dh) *dh = 0; - return EINA_FALSE; + return; } if (dw) *dw = TO_DOUBLE(rp->drag->size.x); if (dh) *dh = TO_DOUBLE(rp->drag->size.y); - return EINA_TRUE; + *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_step_set(Evas_Object *obj, const char *part, double dx, double dy) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_drag_step_set(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_step_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double dx = va_arg(*list, double); + double dy = va_arg(*list, double); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; Edje_User_Defined *eud; Eina_List *l; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (!rp->drag) return EINA_FALSE; + if (!rp) return; + if (!rp->drag) return; EINA_LIST_FOREACH(ed->user_defined, l, eud) if (eud->type == EDJE_USER_DRAG_STEP && !strcmp(part, eud->part)) @@ -3443,21 +4453,34 @@ edje_object_part_drag_step_set(Evas_Object *obj, const char *part, double dx, do #ifdef EDJE_CALC_CACHE rp->invalidate = 1; #endif - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_step_get(const Evas_Object *obj, const char *part, double *dx, double *dy) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_drag_step_get(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_step_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double *dx = va_arg(*list, double *); + double *dy = va_arg(*list, double *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; - ed = _edje_fetch(obj); if ((!ed) || (!part)) { if (dx) *dx = 0; if (dy) *dy = 0; - return EINA_FALSE; + return; } /* Need to recalc before providing the object. */ @@ -3468,26 +4491,39 @@ edje_object_part_drag_step_get(const Evas_Object *obj, const char *part, double { if (dx) *dx = 0; if (dy) *dy = 0; - return EINA_FALSE; + return; } if (dx) *dx = TO_DOUBLE(rp->drag->step.x); if (dy) *dy = TO_DOUBLE(rp->drag->step.y); - return EINA_TRUE; + *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_page_set(Evas_Object *obj, const char *part, double dx, double dy) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_drag_page_set(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_page_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double dx = va_arg(*list, double); + double dy = va_arg(*list, double); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; Edje_User_Defined *eud; Eina_List *l; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (!rp->drag) return EINA_FALSE; + if (!rp) return; + if (!rp->drag) return; EINA_LIST_FOREACH(ed->user_defined, l, eud) if (eud->type == EDJE_USER_DRAG_PAGE && !strcmp(part, eud->part)) @@ -3515,21 +4551,34 @@ edje_object_part_drag_page_set(Evas_Object *obj, const char *part, double dx, do #ifdef EDJE_CALC_CACHE rp->invalidate = 1; #endif - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_page_get(const Evas_Object *obj, const char *part, double *dx, double *dy) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_drag_page_get(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_page_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double *dx = va_arg(*list, double *); + double *dy = va_arg(*list, double *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = (Edje *)_pd; + Edje_Real_Part *rp; + *ret = EINA_FALSE; - ed = _edje_fetch(obj); if ((!ed) || (!part)) { if (dx) *dx = 0; if (dy) *dy = 0; - return EINA_FALSE; + return; } /* Need to recalc before providing the object. */ @@ -3540,28 +4589,41 @@ edje_object_part_drag_page_get(const Evas_Object *obj, const char *part, double { if (dx) *dx = 0; if (dy) *dy = 0; - return EINA_FALSE; + return; } if (dx) *dx = TO_DOUBLE(rp->drag->page.x); if (dy) *dy = TO_DOUBLE(rp->drag->page.y); - return EINA_TRUE; + *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_step(Evas_Object *obj, const char *part, double dx, double dy) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_drag_step(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_step(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double dx = va_arg(*list, double); + double dy = va_arg(*list, double); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; FLOAT_T px, py; Edje_User_Defined *eud; Eina_List *l; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (!rp->drag) return EINA_FALSE; - if (rp->drag->down.count > 0) return EINA_FALSE; + if (!rp) return; + if (!rp->drag) return; + if (rp->drag->down.count > 0) return; EINA_LIST_FOREACH(ed->user_defined, l, eud) if (eud->type == EDJE_USER_DRAG_STEP && !strcmp(part, eud->part)) @@ -3588,30 +4650,47 @@ edje_object_part_drag_step(Evas_Object *obj, const char *part, double dx, double MUL(rp->drag->step.y, rp->part->dragable.y))); rp->drag->val.x = CLAMP (rp->drag->val.x, ZERO, FROM_DOUBLE(1.0)); rp->drag->val.y = CLAMP (rp->drag->val.y, ZERO, FROM_DOUBLE(1.0)); - if ((px == rp->drag->val.x) && (py == rp->drag->val.y)) return EINA_TRUE; + if ((px == rp->drag->val.x) && (py == rp->drag->val.y)) + { + if (ret) *ret = EINA_TRUE; + return; + } #ifdef EDJE_CALC_CACHE rp->invalidate = 1; #endif _edje_dragable_pos_set(rp->edje, rp, rp->drag->val.x, rp->drag->val.y); _edje_emit(rp->edje, "drag,step", rp->part->name); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_drag_page(Evas_Object *obj, const char *part, double dx, double dy) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_drag_page(part, dx, dy, &ret)); + return ret; +} + +void +_part_drag_page(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + double dx = va_arg(*list, double); + double dy = va_arg(*list, double); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; FLOAT_T px, py; Edje_User_Defined *eud; Eina_List *l; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (!rp->drag) return EINA_FALSE; - if (rp->drag->down.count > 0) return EINA_FALSE; + if (!rp) return; + if (!rp->drag) return; + if (rp->drag->down.count > 0) return; EINA_LIST_FOREACH(ed->user_defined, l, eud) if (eud->type == EDJE_USER_DRAG_PAGE && !strcmp(part, eud->part)) @@ -3636,13 +4715,17 @@ edje_object_part_drag_page(Evas_Object *obj, const char *part, double dx, double rp->drag->val.y = ADD(py, MUL(FROM_DOUBLE(dy), MUL(rp->drag->page.y, rp->part->dragable.y))); rp->drag->val.x = CLAMP (rp->drag->val.x, ZERO, FROM_DOUBLE(1.0)); rp->drag->val.y = CLAMP (rp->drag->val.y, ZERO, FROM_DOUBLE(1.0)); - if ((px == rp->drag->val.x) && (py == rp->drag->val.y)) return EINA_TRUE; + if ((px == rp->drag->val.x) && (py == rp->drag->val.y)) + { + if (ret) *ret = EINA_TRUE; + return; + } #ifdef EDJE_CALC_CACHE rp->invalidate = 1; #endif _edje_dragable_pos_set(rp->edje, rp, rp->drag->val.x, rp->drag->val.y); _edje_emit(rp->edje, "drag,page", rp->part->name); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } void @@ -3665,133 +4748,183 @@ _edje_box_shutdown(void) EAPI Eina_Bool edje_object_part_box_append(Evas_Object *obj, const char *part, Evas_Object *child) { - Edje *ed; - Edje_Real_Part *rp; - Eina_Bool r; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_box_append(part, child, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part) || (!child)) return EINA_FALSE; +void +_part_box_append(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *child = va_arg(*list, Evas_Object *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part) || (!child)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_BOX) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_BOX) return; - r = _edje_real_part_box_append(rp, child); - - if (r) + if (_edje_real_part_box_append(rp, child)) { Edje_User_Defined *eud; eud = _edje_user_definition_new(EDJE_USER_BOX_PACK, part, ed); - if (!eud) return r; + if (!eud) return; eud->u.box.child = child; eud->u.box.index = -1; evas_object_event_callback_add(child, EVAS_CALLBACK_DEL, _edje_user_def_del_cb, eud); + if (ret) *ret = EINA_TRUE; } - return r; } EAPI Eina_Bool edje_object_part_box_prepend(Evas_Object *obj, const char *part, Evas_Object *child) { - Edje *ed; - Edje_Real_Part *rp; - Eina_Bool r; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_box_prepend(part, child, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_box_prepend(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *child = va_arg(*list, Evas_Object *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_BOX) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_BOX) return; - r = _edje_real_part_box_prepend(rp, child); - - if (r) + if (_edje_real_part_box_prepend(rp, child)) { Edje_User_Defined *eud; eud = _edje_user_definition_new(EDJE_USER_BOX_PACK, part, ed); - if (!eud) return r; + if (!eud) return; eud->u.box.child = child; evas_object_event_callback_add(child, EVAS_CALLBACK_DEL, _edje_user_def_del_cb, eud); + if (ret) *ret = EINA_TRUE; } - return r; } EAPI Eina_Bool edje_object_part_box_insert_before(Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference) { - Edje *ed; - Edje_Real_Part *rp; - Eina_Bool r; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_box_insert_before(part, child, reference, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_box_insert_before(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *child = va_arg(*list, Evas_Object *); + const Evas_Object *reference = va_arg(*list, const Evas_Object *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_BOX) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_BOX) return; - r = _edje_real_part_box_insert_before(rp, child, reference); - - if (r) + if (_edje_real_part_box_insert_before(rp, child, reference)) { Edje_User_Defined *eud; eud = _edje_user_definition_new(EDJE_USER_BOX_PACK, part, ed); - if (!eud) return r; + if (!eud) return; eud->u.box.child = child; evas_object_event_callback_add(child, EVAS_CALLBACK_DEL, _edje_user_def_del_cb, eud); + if (ret) *ret = EINA_TRUE; } - return r; } EAPI Eina_Bool edje_object_part_box_insert_at(Evas_Object *obj, const char *part, Evas_Object *child, unsigned int pos) { - Edje *ed; - Edje_Real_Part *rp; - Eina_Bool r; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_box_insert_at(part, child, pos, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_box_insert_at(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *child = va_arg(*list, Evas_Object *); + unsigned int pos = va_arg(*list, unsigned int); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_BOX) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_BOX) return; - r = _edje_real_part_box_insert_at(rp, child, pos); - - if (r) + if (_edje_real_part_box_insert_at(rp, child, pos)) { Edje_User_Defined *eud; eud = _edje_user_definition_new(EDJE_USER_BOX_PACK, part, ed); - if (!eud) return r; + if (!eud) return; eud->u.box.child = child; evas_object_event_callback_add(child, EVAS_CALLBACK_DEL, _edje_user_def_del_cb, eud); + if (ret) *ret = EINA_TRUE; } - return r; } EAPI Evas_Object * edje_object_part_box_remove(Evas_Object *obj, const char *part, Evas_Object *child) { - Edje *ed; + if (!obj) return NULL; + Evas_Object *ret = NULL; + eo_do(obj, edje_obj_part_box_remove(part, child, &ret)); + return ret; +} + +void +_part_box_remove(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *child = va_arg(*list, Evas_Object *); + Evas_Object **ret = va_arg(*list, Evas_Object **); + Edje *ed = _pd; Edje_Real_Part *rp; Evas_Object *r; + if (ret) *ret = NULL; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; - if (rp->part->type != EDJE_PART_TYPE_BOX) return NULL; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_BOX) return; r = _edje_real_part_box_remove(rp, child); @@ -3804,25 +4937,38 @@ edje_object_part_box_remove(Evas_Object *obj, const char *part, Evas_Object *chi if (eud->type == EDJE_USER_BOX_PACK && eud->u.box.child == child && !strcmp(eud->part, part)) { _edje_user_definition_free(eud); - return r; + if (ret) *ret = r; + return; } } - return r; + if (ret) *ret = r; } EAPI Evas_Object * edje_object_part_box_remove_at(Evas_Object *obj, const char *part, unsigned int pos) { - Edje *ed; + if (!obj) return NULL; + Evas_Object *ret = NULL; + eo_do(obj, edje_obj_part_box_remove_at(part, pos, &ret)); + return ret; +} + +void +_part_box_remove_at(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + unsigned int pos = va_arg(*list, unsigned int); + Evas_Object **ret = va_arg(*list, Evas_Object **); + Edje *ed = _pd; Edje_Real_Part *rp; Evas_Object *r; + if (ret) *ret = NULL; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; - if (rp->part->type != EDJE_PART_TYPE_BOX) return NULL; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_BOX) return; r = _edje_real_part_box_remove_at(rp, pos); @@ -3835,29 +4981,41 @@ edje_object_part_box_remove_at(Evas_Object *obj, const char *part, unsigned int if (eud->type == EDJE_USER_BOX_PACK && eud->u.box.child == r && !strcmp(eud->part, part)) { _edje_user_definition_free(eud); - return r; + if (ret) *ret = r; + return; } } - return r; + if (ret) *ret = r; } EAPI Eina_Bool edje_object_part_box_remove_all(Evas_Object *obj, const char *part, Eina_Bool clear) { - Edje *ed; - Edje_Real_Part *rp; - Eina_Bool r; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_box_remove_all(part, clear, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_box_remove_all(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool clear = va_arg(*list, int); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_BOX) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_BOX) return; - r = _edje_real_part_box_remove_all(rp, clear); - if (r) + if (_edje_real_part_box_remove_all(rp, clear)) { + if (ret) *ret = EINA_TRUE; Edje_User_Defined *eud; Eina_List *ll, *l; @@ -3865,20 +5023,29 @@ edje_object_part_box_remove_all(Evas_Object *obj, const char *part, Eina_Bool cl if (eud->type == EDJE_USER_BOX_PACK && !strcmp(eud->part, part)) { _edje_user_definition_free(eud); - return r; + return; } } - return r; } EAPI Eina_List * edje_object_access_part_list_get(const Evas_Object *obj) { - Edje *ed; - Eina_List *access_parts = NULL; + if (!obj) return NULL; + Eina_List *ret = NULL; + eo_do((Eo *)obj, edje_obj_access_part_list_get(&ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed)) return NULL; +void +_access_part_list_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Eina_List **ret = va_arg(*list, Eina_List **); + const Edje *ed = _pd; + Eina_List *access_parts = NULL; + *ret = NULL; + + if ((!ed)) return; unsigned int i; for (i = 0; i < ed->table_parts_size; i++) @@ -3889,7 +5056,7 @@ edje_object_access_part_list_get(const Evas_Object *obj) access_parts = eina_list_append(access_parts, rp->part->name); } - return access_parts; + *ret = access_parts; } static void @@ -4026,7 +5193,7 @@ _edje_real_part_box_remove_at(Edje_Real_Part *rp, unsigned int pos) Evas_Object_Box_Data *priv; Evas_Object *child_obj; - priv = evas_object_smart_data_get(rp->object); + priv = eo_data_get(rp->object, EVAS_OBJ_BOX_CLASS); opt = eina_list_nth(priv->children, pos); if (!opt) return NULL; child_obj = opt->obj; @@ -4131,39 +5298,67 @@ _edje_table_child_remove(Edje_Real_Part *rp, Evas_Object *child) EAPI Evas_Object * edje_object_part_table_child_get(const Evas_Object *obj, const char *part, unsigned int col, unsigned int row) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return NULL; + Evas_Object *ret = NULL; + eo_do((Eo *)obj, edje_obj_part_table_child_get(part, col, row, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return NULL; +void +_part_table_child_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + unsigned int col = va_arg(*list, unsigned int); + unsigned int row = va_arg(*list, unsigned int); + Evas_Object **ret = va_arg(*list, Evas_Object **); + const Edje *ed = _pd; + Edje_Real_Part *rp; + *ret = NULL; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return NULL; - if (rp->part->type != EDJE_PART_TYPE_TABLE) return NULL; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_TABLE) return; - return evas_object_table_child_get(rp->object, col, row); + *ret = evas_object_table_child_get(rp->object, col, row); } EAPI Eina_Bool edje_object_part_table_pack(Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_table_pack(part, child_obj, col, row, colspan, rowspan, &ret)); + return ret; +} + +void +_part_table_pack(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *child_obj = va_arg(*list, Evas_Object *); + unsigned short col = va_arg(*list, unsigned int); + unsigned short row = va_arg(*list, unsigned int); + unsigned short colspan = va_arg(*list, unsigned int); + unsigned short rowspan = va_arg(*list, unsigned int); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; Edje_Real_Part *rp; Edje_User_Defined *eud; - Eina_Bool r; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_TABLE) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_TABLE) return; - r = _edje_real_part_table_pack(rp, child_obj, col, row, colspan, rowspan); - if (r) + if (_edje_real_part_table_pack(rp, child_obj, col, row, colspan, rowspan)) { + if (ret) *ret = EINA_TRUE; eud = _edje_user_definition_new(EDJE_USER_TABLE_PACK, part, ed); - if (!eud) return r; + if (!eud) return; eud->u.table.child = child_obj; eud->u.table.col = col; @@ -4173,27 +5368,36 @@ edje_object_part_table_pack(Evas_Object *obj, const char *part, Evas_Object *chi evas_object_event_callback_add(child_obj, EVAS_CALLBACK_DEL, _edje_user_def_del_cb, eud); } - return r; } EAPI Eina_Bool edje_object_part_table_unpack(Evas_Object *obj, const char *part, Evas_Object *child_obj) { - Edje *ed; - Edje_Real_Part *rp; - Eina_Bool r; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_table_unpack(part, child_obj, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_table_unpack(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Evas_Object *child_obj = va_arg(*list, Evas_Object *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_TABLE) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_TABLE) return; - r = _edje_real_part_table_unpack(rp, child_obj); - - if (r) + if (_edje_real_part_table_unpack(rp, child_obj)) { + if (ret) *ret = EINA_TRUE; Edje_User_Defined *eud; Eina_List *l; @@ -4206,42 +5410,65 @@ edje_object_part_table_unpack(Evas_Object *obj, const char *part, Evas_Object *c break; } } - - return r; } EAPI Eina_Bool edje_object_part_table_col_row_size_get(const Evas_Object *obj, const char *part, int *cols, int *rows) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_part_table_col_row_size_get(part, cols, rows, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_table_col_row_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + int *cols = va_arg(*list, int *); + int *rows = va_arg(*list, int *); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_TABLE) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_TABLE) return; evas_object_table_col_row_size_get(rp->object, cols, rows); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI Eina_Bool edje_object_part_table_clear(Evas_Object *obj, const char *part, Eina_Bool clear) { - Edje *ed; - Edje_Real_Part *rp; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_part_table_clear(part, clear, &ret)); + return ret; +} - ed = _edje_fetch(obj); - if ((!ed) || (!part)) return EINA_FALSE; +void +_part_table_clear(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const char *part = va_arg(*list, const char *); + Eina_Bool clear = va_arg(*list, int); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; + Edje_Real_Part *rp; + if (ret) *ret = EINA_FALSE; + + if ((!ed) || (!part)) return; rp = _edje_real_part_recursive_get(ed, part); - if (!rp) return EINA_FALSE; - if (rp->part->type != EDJE_PART_TYPE_TABLE) return EINA_FALSE; + if (!rp) return; + if (rp->part->type != EDJE_PART_TYPE_TABLE) return; _edje_real_part_table_clear(rp, clear); - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } static void @@ -4254,7 +5481,7 @@ _edje_perspective_obj_del(void *data, __UNUSED__ Evas *e, __UNUSED__ Evas_Object { Edje *ed; - ed = evas_object_smart_data_get(o); + ed = eo_data_get(o, EDJE_OBJ_CLASS); if (!ed) continue; ed->persp = NULL; ed->dirty = EINA_TRUE; @@ -4307,7 +5534,7 @@ edje_perspective_set(Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Co { Edje *ed; - ed = evas_object_smart_data_get(o); + ed = eo_data_get(o, EDJE_OBJ_CLASS); if (!ed) continue; if (!ed->persp) { @@ -4322,7 +5549,7 @@ edje_perspective_set(Edje_Perspective *ps, Evas_Coord px, Evas_Coord py, Evas_Co { Edje *ed; - ed = evas_object_smart_data_get(o); + ed = eo_data_get(o, EDJE_OBJ_CLASS); if (!ed) continue; if (!ed->persp) { @@ -4356,7 +5583,7 @@ edje_perspective_global_set(Edje_Perspective *ps, Eina_Bool global) { Edje *ed; - ed = evas_object_smart_data_get(o); + ed = eo_data_get(o, EDJE_OBJ_CLASS); if (!ed) continue; if (!ed->persp) { @@ -4388,9 +5615,16 @@ edje_evas_global_perspective_get(const Evas *e) EAPI void edje_object_perspective_set(Evas_Object *obj, Edje_Perspective *ps) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_perspective_set(ps)); +} + +void +_perspective_set(Eo *obj, void *_pd, va_list *list) +{ + Edje_Perspective *ps = va_arg(*list, Edje_Perspective *); + Edje *ed = _pd; - ed = evas_object_smart_data_get(obj); if (!ed) return; if (ed->persp == ps) return; if (ed->persp != ps) @@ -4408,11 +5642,18 @@ edje_object_perspective_set(Evas_Object *obj, Edje_Perspective *ps) EAPI const Edje_Perspective * edje_object_perspective_get(const Evas_Object *obj) { - Edje *ed; + if (!obj) return NULL; + const Edje_Perspective *ret = NULL; + eo_do((Eo *)obj, edje_obj_perspective_get(&ret)); + return ret; +} - ed = evas_object_smart_data_get(obj); - if (!ed) return NULL; - return ed->persp; +void +_perspective_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + const Edje_Perspective **ret = va_arg(*list, const Edje_Perspective **); + const Edje *ed = _pd; + *ret = ed->persp; } #define EDJE_PRELOAD_EMISSION "preload,done" @@ -4421,12 +5662,23 @@ edje_object_perspective_get(const Evas_Object *obj) EAPI Eina_Bool edje_object_preload(Evas_Object *obj, Eina_Bool cancel) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do(obj, edje_obj_preload(cancel, &ret)); + return ret; +} + +void +_preload(Eo *obj, void *_pd, va_list *list) +{ + Eina_Bool cancel = va_arg(*list, int); + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + Edje *ed = _pd; int count; unsigned int i; + if (ret) *ret = EINA_FALSE; - ed = _edje_fetch(obj); - if (!ed) return EINA_FALSE; + if (!ed) return; _edje_recalc_do(ed); @@ -4508,15 +5760,22 @@ edje_object_preload(Evas_Object *obj, Eina_Bool cancel) _edje_emit(ed, EDJE_PRELOAD_EMISSION, EDJE_PRELOAD_SOURCE); } - return EINA_TRUE; + if (ret) *ret = EINA_TRUE; } EAPI void edje_object_update_hints_set(Evas_Object *obj, Eina_Bool update) { - Edje *ed; + if (!obj) return; + eo_do(obj, edje_obj_update_hints_set(update)); +} + +void +_update_hints_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Eina_Bool update = va_arg(*list, int); + Edje *ed = _pd; - ed = _edje_fetch(obj); if (!ed) return ; if (ed->update_hints == !!update) return ; @@ -4531,12 +5790,18 @@ edje_object_update_hints_set(Evas_Object *obj, Eina_Bool update) EAPI Eina_Bool edje_object_update_hints_get(Evas_Object *obj) { - Edje *ed; + if (!obj) return EINA_FALSE; + Eina_Bool ret = EINA_FALSE; + eo_do((Eo *)obj, edje_obj_update_hints_get(&ret)); + return ret; +} - ed = _edje_fetch(obj); - if (!ed) return EINA_FALSE; - - return ed->update_hints; +void +_update_hints_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list) +{ + Eina_Bool *ret = va_arg(*list, Eina_Bool *); + const Edje *ed = _pd; + *ret = ed->update_hints; } Eina_Bool @@ -4766,7 +6031,7 @@ _edje_real_part_get(const Edje *ed, const char *part) } Edje_Color_Class * -_edje_color_class_find(Edje *ed, const char *color_class) +_edje_color_class_find(const Edje *ed, const char *color_class) { Edje_Color_Class *cc = NULL; @@ -4914,9 +6179,9 @@ _edje_fetch(const Evas_Object *obj) { Edje *ed; - if (!evas_object_smart_type_check(obj, "edje")) + if (!obj || !eo_isa(obj, EDJE_OBJ_CLASS)) return NULL; - ed = evas_object_smart_data_get(obj); + ed = eo_data_get(obj, EDJE_OBJ_CLASS); if ((ed) && (ed->delete_me)) return NULL; return ed; } @@ -5148,7 +6413,7 @@ _edje_real_part_swallow(Edje_Real_Part *rp, evas_object_smart_member_add(rp->typedata.swallow->swallowed_object, rp->edje->obj); if (rp->clip_to) evas_object_clip_set(rp->typedata.swallow->swallowed_object, rp->clip_to->object); - else evas_object_clip_set(rp->typedata.swallow->swallowed_object, rp->edje->base.clipper); + else evas_object_clip_set(rp->typedata.swallow->swallowed_object, rp->edje->base->clipper); evas_object_stack_above(rp->typedata.swallow->swallowed_object, rp->object); evas_object_event_callback_add(rp->typedata.swallow->swallowed_object, EVAS_CALLBACK_DEL,