edje: one less pointer per Edje_Real_Part.

This commit is contained in:
Cedric Bail 2013-04-07 02:18:48 +09:00
parent 1231faf8d9
commit a645c8153f
8 changed files with 599 additions and 617 deletions

View File

@ -1932,6 +1932,7 @@ _edje_part_recalc_single_fill(Edje_Real_Part *ep,
static void
_edje_part_recalc_single_min_max(FLOAT_T sc,
Edje *edje,
Edje_Real_Part *ep,
Edje_Part_Description_Common *desc,
int *minw, int *minh,
@ -1946,7 +1947,7 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
*minw = ep->typedata.swallow->swallow_params.min.w;
}
if (ep->edje->calc_only)
if (edje->calc_only)
{
if (desc->minmul.have)
{
@ -1995,7 +1996,7 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
if (*maxw < 1) *maxw = 1;
}
}
if ((ep->edje->calc_only) && (desc->minmul.have) &&
if ((edje->calc_only) && (desc->minmul.have) &&
(desc->minmul.w != FROM_INT(1))) *maxw = *minw;
if (*maxw >= 0)
{
@ -2011,7 +2012,7 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
*minh = ep->typedata.swallow->swallow_params.min.h;
}
if (ep->edje->calc_only)
if (edje->calc_only)
{
if (desc->minmul.have)
{
@ -2060,7 +2061,7 @@ _edje_part_recalc_single_min_max(FLOAT_T sc,
if (*maxh < 1) *maxh = 1;
}
}
if ((ep->edje->calc_only) && (desc->minmul.have) &&
if ((edje->calc_only) && (desc->minmul.have) &&
(desc->minmul.h != FROM_INT(1))) *maxh = *minh;
if (*maxh >= 0)
{
@ -2196,7 +2197,7 @@ _edje_part_recalc_single(Edje *ed,
sc = ed->scale;
if (sc == ZERO) sc = _edje_scale;
_edje_part_recalc_single_min_max(sc, ep, desc, &minw, &minh, &maxw, &maxh);
_edje_part_recalc_single_min_max(sc, ed, ep, desc, &minw, &minh, &maxw, &maxh);
/* relative coords of top left & bottom right */
_edje_part_recalc_single_rel(ed, ep, desc, rel1_to_x, rel1_to_y, rel2_to_x, rel2_to_y, params);
@ -2572,7 +2573,8 @@ _edje_physics_world_geometry_check(EPhysics_World *world)
}
static void
_edje_physics_body_props_update(Edje_Real_Part *ep, Edje_Calc_Params *pf, Eina_Bool pos_update)
_edje_physics_body_props_update(Edje *edje, Edje_Real_Part *ep, Edje_Calc_Params *pf,
Eina_Bool pos_update)
{
ephysics_body_linear_movement_enable_set(ep->body,
pf->physics->mov_freedom.lin.x,
@ -2590,8 +2592,10 @@ _edje_physics_body_props_update(Edje_Real_Part *ep, Edje_Calc_Params *pf, Eina_B
if (pos_update)
{
ephysics_body_move(ep->body, ep->edje->x + pf->x,
ep->edje->y + pf->y, pf->physics->z);
ephysics_body_move(ep->body,
edje->x + pf->x,
edje->y + pf->y,
pf->physics->z);
ep->x = pf->x;
ep->y = pf->y;
ep->w = pf->w;
@ -2639,14 +2643,16 @@ static void
_edje_physics_body_update_cb(void *data, EPhysics_Body *body, void *event_info EINA_UNUSED)
{
Edje_Real_Part *rp = data;
Edje *edje = ephysics_body_data_get(body);
ephysics_body_geometry_get(body, &(rp->x), &(rp->y), NULL,
&(rp->w), &(rp->h), NULL);
ephysics_body_evas_object_update(body);
rp->edje->dirty = EINA_TRUE;
edje->dirty = EINA_TRUE;
}
static void
_edje_physics_body_add(Edje_Real_Part *rp, EPhysics_World *world)
_edje_physics_body_add(Edje *edje, Edje_Real_Part *rp, EPhysics_World *world)
{
Eina_Bool resize = EINA_TRUE;
Edje_Physics_Face *pface;
@ -2715,7 +2721,7 @@ _edje_physics_body_add(Edje_Real_Part *rp, EPhysics_World *world)
edje_obj = edje_object_add(evas);
if (!edje_obj) continue;
edje_object_file_set(edje_obj, rp->edje->path, pface->source);
edje_object_file_set(edje_obj, edje->path, pface->source);
evas_object_resize(edje_obj, 1, 1);
ephysics_body_face_evas_object_set(rp->body, pface->type,
edje_obj, EINA_FALSE);
@ -2725,6 +2731,7 @@ _edje_physics_body_add(Edje_Real_Part *rp, EPhysics_World *world)
ephysics_body_evas_object_set(rp->body, rp->object, resize);
ephysics_body_event_callback_add(rp->body, EPHYSICS_CALLBACK_BODY_UPDATE,
_edje_physics_body_update_cb, rp);
ephysics_body_data_set(rp->body, edje);
}
#endif
@ -3432,10 +3439,10 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
evas_obj_size_set(pf->w, pf->h));
if ((ep->part->physics_body) && (!ep->body))
{
if (_edje_physics_world_geometry_check(ep->edje->world))
if (_edje_physics_world_geometry_check(ed->world))
{
_edje_physics_body_add(ep, ep->edje->world);
_edje_physics_body_props_update(ep, pf, EINA_TRUE);
_edje_physics_body_add(ed, ep, ed->world);
_edje_physics_body_props_update(ed, ep, pf, EINA_TRUE);
}
}
else if (ep->body)
@ -3443,8 +3450,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
if (((ep->prev_description) &&
(chosen_desc != ep->prev_description)) ||
(pf != p1))
_edje_physics_body_props_update(
ep, pf, !pf->physics->ignore_part_pos);
_edje_physics_body_props_update(ed, ep, pf, !pf->physics->ignore_part_pos);
}
else
eo_do(ep->object,
@ -3463,7 +3469,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
evas_obj_size_set(pf->w, pf->h));
}
if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
_edje_entry_real_part_configure(ep);
_edje_entry_real_part_configure(ed, ep);
break;
case EDJE_PART_TYPE_TEXT:
/* This is correctly handle in _edje_text_recalc_apply at the moment. */

View File

@ -314,13 +314,13 @@ _edje_image_name_find(Edje_Edit *eed, int image_id)
}
static void
_edje_real_part_free(Edje_Real_Part *rp)
_edje_real_part_free(Edje *ed, Edje_Real_Part *rp)
{
if (!rp) return;
if (rp->object)
{
_edje_callbacks_del(rp->object, rp->edje);
_edje_callbacks_del(rp->object, ed);
evas_object_del(rp->object);
}
@ -333,7 +333,7 @@ _edje_real_part_free(Edje_Real_Part *rp)
evas_object_clip_unset(rp->typedata.swallow->swallowed_object);
evas_object_data_del(rp->typedata.swallow->swallowed_object, "\377 edje.swallowing_part");
if (rp->part->mouse_events)
_edje_callbacks_del(rp->typedata.swallow->swallowed_object, rp->edje);
_edje_callbacks_del(rp->typedata.swallow->swallowed_object, ed);
if (rp->part->type == EDJE_PART_TYPE_GROUP ||
rp->part->type == EDJE_PART_TYPE_EXTERNAL)
@ -360,7 +360,7 @@ _edje_real_part_free(Edje_Real_Part *rp)
if (rp->param2) free(rp->param2->set);
eina_mempool_free(_edje_real_part_state_mp, rp->param2);
_edje_unref(rp->edje);
_edje_unref(ed);
eina_mempool_free(_edje_real_part_mp, rp);
}
@ -2069,8 +2069,7 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type
ep->other.desc_count = 0;
/* Init Edje_Real_Part */
rp->edje = ed;
_edje_ref(rp->edje);
_edje_ref(ed);
rp->part = ep;
if (ep->type == EDJE_PART_TYPE_RECTANGLE)
@ -2126,7 +2125,7 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type
Evas_Object *child;
child = _edje_external_type_add(source, evas_object_evas_get(ed->obj), ed->obj, NULL, name);
if (child)
_edje_real_part_swallow(rp, child, EINA_TRUE);
_edje_real_part_swallow(ed, rp, child, EINA_TRUE);
}
evas_object_clip_set(rp->object, ed->base->clipper);
evas_object_show(ed->base->clipper);
@ -2267,7 +2266,7 @@ edje_edit_part_del(Evas_Object *obj, const char* part)
eina_mempool_free(ce->mp.part, ep);
/* Free Edje_Real_Part */
_edje_real_part_free(rp);
_edje_real_part_free(ed, rp);
/* if all parts are gone, hide the clipper */
if (ed->table_parts_size == 0)
@ -2667,7 +2666,7 @@ edje_edit_part_source_set(Evas_Object *obj, const char *part, const char *source
rp->part->source = eina_stringshare_add(source);
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);
_edje_real_part_swallow(ed, rp, child_obj, EINA_TRUE);
}
else
rp->part->source = NULL;

File diff suppressed because it is too large Load Diff

View File

@ -516,8 +516,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
return 0;
}
rp->edje = ed;
_edje_ref(rp->edje);
_edje_ref(ed);
rp->part = ep;
eina_array_push(&parts, rp);
rp->param1.description =
@ -732,7 +731,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
}
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
{
_edje_entry_real_part_init(rp);
_edje_entry_real_part_init(ed, rp);
if (!ed->has_entries)
ed->has_entries = EINA_TRUE;
}
@ -778,7 +777,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
external->external_params, rp->part->name);
if (child_obj)
{
_edje_real_part_swallow(rp, child_obj, EINA_TRUE);
_edje_real_part_swallow(ed, rp, child_obj, EINA_TRUE);
rp->param1.external_params = _edje_external_params_parse(child_obj,
external->external_params);
_edje_external_recalc_apply(ed, rp, NULL, rp->chosen_description);
@ -864,7 +863,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
group_path = eina_list_append(group_path, group_path_entry);
if (rp->part->type == EDJE_PART_TYPE_GROUP)
{
_edje_real_part_swallow(rp, child_obj, EINA_FALSE);
_edje_real_part_swallow(ed, rp, child_obj, EINA_FALSE);
}
if (!_edje_object_file_set_internal(child_obj, file, source, rp->part->name, group_path, nested))
@ -885,7 +884,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
if (rp->part->type == EDJE_PART_TYPE_GROUP)
{
ed->groups = eina_list_append(ed->groups, _edje_fetch(child_obj));
_edje_real_part_swallow(rp, child_obj, EINA_TRUE);
_edje_real_part_swallow(ed, rp, child_obj, EINA_TRUE);
_edje_subobj_register(ed, child_obj);
source = NULL;
}
@ -915,12 +914,12 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
if (rp->part->type == EDJE_PART_TYPE_BOX)
{
_edje_real_part_box_append(rp, child_obj);
_edje_real_part_box_append(ed, rp, child_obj);
evas_object_data_set(child_obj, "\377 edje.box_item", pack_it);
}
else if (rp->part->type == EDJE_PART_TYPE_TABLE)
{
_edje_real_part_table_pack(rp, child_obj,
_edje_real_part_table_pack(ed, rp, child_obj,
pack_it_copy.col, pack_it_copy.row,
pack_it_copy.colspan, pack_it_copy.rowspan);
evas_object_data_set(child_obj, "\377 edje.table_item", pack_it);
@ -986,7 +985,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
switch (eud->type)
{
case EDJE_USER_SWALLOW:
edje_object_part_swallow(obj, eud->part, eud->u.swallow.child);
edje_object_part_swallow(obj, eud->part, eud->u.swallow.child);
child = eud->u.swallow.child;
break;
case EDJE_USER_BOX_PACK:
@ -994,7 +993,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
eud = NULL;
break;
case EDJE_USER_TABLE_PACK:
edje_object_part_table_pack(obj, eud->part, eud->u.table.child,
edje_object_part_table_pack(obj, eud->part, eud->u.table.child,
eud->u.table.col, eud->u.table.row,
eud->u.table.colspan, eud->u.table.rowspan);
child = eud->u.table.child;
@ -1030,7 +1029,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
boxes = eina_list_sort(boxes, -1, _sort_defined_boxes);
EINA_LIST_FREE(boxes, eud)
{
edje_object_part_box_append(obj, eud->part, eud->u.box.child);
edje_object_part_box_append(obj, eud->part, eud->u.box.child);
_edje_user_definition_remove(eud, eud->u.box.child);
}
}
@ -1187,7 +1186,7 @@ _edje_object_collect(Edje *ed)
break;
}
}
_edje_real_part_box_remove(rp, child);
_edje_real_part_box_remove(eud->ed, rp, child);
}
}
break;
@ -1198,7 +1197,7 @@ _edje_object_collect(Edje *ed)
rp = _edje_real_part_recursive_get(ed, eud->part);
if (rp->part->type != EDJE_PART_TYPE_TABLE) continue ;
_edje_real_part_table_unpack(rp, eud->u.table.child);
_edje_real_part_table_unpack(eud->ed, rp, eud->u.table.child);
break;
}
case EDJE_USER_SWALLOW:
@ -1275,7 +1274,7 @@ _edje_file_del(Edje *ed)
#endif
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
_edje_entry_real_part_shutdown(rp);
_edje_entry_real_part_shutdown(ed, rp);
if ((rp->type == EDJE_RP_TYPE_CONTAINER) &&
(rp->typedata.container))
@ -1366,7 +1365,7 @@ _edje_file_del(Edje *ed)
}
eina_mempool_free(_edje_real_part_state_mp, rp->custom);
_edje_unref(rp->edje);
_edje_unref(ed);
eina_cow_free(_edje_calc_params_map_cow, rp->param1.p.map);
#ifdef HAVE_EPHYSICS
eina_cow_free(_edje_calc_params_physics_cow, rp->param1.p.physics);

View File

@ -1517,22 +1517,18 @@ struct _Edje_Real_Part_Swallow
struct _Edje_Real_Part
{
Edje *edje; // 4
Edje_Real_Part_State param1; // 32
Edje_Real_Part_State *param2, *custom; // 8
Edje_Part *part; // 4
int x, y, w, h; // 16
Edje_Rectangle req; // 16
Evas_Object *object; // 4
Evas_Object *nested_smart; // 4
Edje_Real_Part_Drag *drag; // 4
Edje_Real_Part *events_to; // 4
FLOAT_T description_pos; // 8
Edje_Part_Description_Common *chosen_description; // 4
Edje_Real_Part_State param1; // 32
// WITH EDJE_CALC_CACHE: 307
Edje_Real_Part_State *param2, *custom; // 8
Edje_Calc_Params *current; // 4
Edje_Real_Part *clip_to; // 4
Edje_Running_Program *program; // 4
Edje_Calc_Params *current; // 4
Edje_Real_Part *events_to; // 4
Edje_Real_Part *clip_to; // 4
#ifdef HAVE_EPHYSICS
Edje_Part_Description_Common *prev_description; // 4
EPhysics_Body *body; // 4
@ -1543,14 +1539,17 @@ struct _Edje_Real_Part
Edje_Real_Part_Container *container;
Edje_Real_Part_Swallow *swallow;
} typedata; // 4
FLOAT_T description_pos; // 8
Edje_Rectangle req; // 16
int x, y, w, h; // 16
int clicked_button; // 4
#ifdef EDJE_CALC_CACHE
int state; // 4
#endif
unsigned char type; // 1
unsigned char calculated; // 1
unsigned char calculating; // 1
unsigned char still_in : 1; // 1
unsigned char calculated : 2; // 1
unsigned char calculating : 2; // 0
unsigned char still_in : 1; // 0
#ifdef EDJE_CALC_CACHE
unsigned char invalidate : 1; // 0
#endif
@ -2012,7 +2011,7 @@ int _edje_block_break(Edje *ed);
void _edje_block_violate(Edje *ed);
void _edje_object_part_swallow_free_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
void _edje_object_part_swallow_changed_hints_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
void _edje_real_part_swallow(Edje_Real_Part *rp, Evas_Object *obj_swallow, Eina_Bool hints_update);
void _edje_real_part_swallow(Edje *ed, Edje_Real_Part *rp, Evas_Object *obj_swallow, Eina_Bool hints_update);
void _edje_real_part_swallow_clear(Edje_Real_Part *rp);
void _edje_box_init(void);
void _edje_box_shutdown(void);
@ -2023,19 +2022,19 @@ void _edje_box_layout_remove_child(Edje_Real_Part *rp, Evas_Object
Edje_Part_Box_Animation * _edje_box_layout_anim_new(Evas_Object *box);
void _edje_box_layout_free_data(void *data);
Eina_Bool _edje_real_part_box_append(Edje_Real_Part *rp, Evas_Object *child_obj);
Eina_Bool _edje_real_part_box_prepend(Edje_Real_Part *rp, Evas_Object *child_obj);
Eina_Bool _edje_real_part_box_insert_before(Edje_Real_Part *rp, Evas_Object *child_obj, const Evas_Object *ref);
Eina_Bool _edje_real_part_box_insert_at(Edje_Real_Part *rp, Evas_Object *child_obj, unsigned int pos);
Evas_Object *_edje_real_part_box_remove(Edje_Real_Part *rp, Evas_Object *child_obj);
Evas_Object *_edje_real_part_box_remove_at(Edje_Real_Part *rp, unsigned int pos);
Eina_Bool _edje_real_part_box_remove_all(Edje_Real_Part *rp, Eina_Bool clear);
Eina_Bool _edje_real_part_table_pack(Edje_Real_Part *rp, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
Eina_Bool _edje_real_part_table_unpack(Edje_Real_Part *rp, Evas_Object *child_obj);
void _edje_real_part_table_clear(Edje_Real_Part *rp, Eina_Bool clear);
Eina_Bool _edje_real_part_box_append(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj);
Eina_Bool _edje_real_part_box_prepend(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj);
Eina_Bool _edje_real_part_box_insert_before(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj, const Evas_Object *ref);
Eina_Bool _edje_real_part_box_insert_at(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj, unsigned int pos);
Evas_Object *_edje_real_part_box_remove(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj);
Evas_Object *_edje_real_part_box_remove_at(Edje *ed, Edje_Real_Part *rp, unsigned int pos);
Eina_Bool _edje_real_part_box_remove_all(Edje *ed, Edje_Real_Part *rp, Eina_Bool clear);
Eina_Bool _edje_real_part_table_pack(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
Eina_Bool _edje_real_part_table_unpack(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj);
void _edje_real_part_table_clear(Edje *ed, Edje_Real_Part *rp, Eina_Bool clear);
Evas_Object *_edje_children_get(Edje_Real_Part *rp, const char *partid);
Eina_Bool _edje_object_part_text_raw_set(Evas_Object *obj, Edje_Real_Part *rp, const char *part, const char *text);
Eina_Bool _edje_object_part_text_raw_set(Edje *ed, Evas_Object *obj, Edje_Real_Part *rp, const char *part, const char *text);
char *_edje_text_escape(const char *text);
char *_edje_text_unescape(const char *text);
@ -2229,9 +2228,9 @@ void _edje_lua_script_only_message(Edje *ed, Edje_Message *em);
void _edje_entry_init(Edje *ed);
void _edje_entry_shutdown(Edje *ed);
void _edje_entry_real_part_init(Edje_Real_Part *rp);
void _edje_entry_real_part_shutdown(Edje_Real_Part *rp);
void _edje_entry_real_part_configure(Edje_Real_Part *rp);
void _edje_entry_real_part_init(Edje *ed, Edje_Real_Part *rp);
void _edje_entry_real_part_shutdown(Edje *ed, Edje_Real_Part *rp);
void _edje_entry_real_part_configure(Edje *ed, Edje_Real_Part *rp);
const char *_edje_entry_selection_get(Edje_Real_Part *rp);
const char *_edje_entry_text_get(Edje_Real_Part *rp);
void _edje_entry_text_markup_set(Edje_Real_Part *rp, const char *text);

View File

@ -1,8 +1,8 @@
#include "edje_private.h"
static void _edje_emit_cb(Edje *ed, const char *sig, const char *src, Edje_Message_Signal_Data *data, Eina_Bool prop);
static void _edje_param_copy(Edje_Real_Part *src_part, const char *src_param, Edje_Real_Part *dst_part, const char *dst_param);
static void _edje_param_set(Edje_Real_Part *part, const char *param, const char *value);
static void _edje_param_copy(Edje *ed, Edje_Real_Part *src_part, const char *src_param, Edje_Real_Part *dst_part, const char *dst_param);
static void _edje_param_set(Edje *ed, Edje_Real_Part *part, const char *param, const char *value);
int _edje_anim_count = 0;
Ecore_Animator *_edje_timer = NULL;
@ -873,7 +873,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
src_part = ed->table_parts[pr->param.src % ed->table_parts_size];
dst_part = ed->table_parts[pr->param.dst % ed->table_parts_size];
_edje_param_copy(src_part, pr->state, dst_part, pr->state2);
_edje_param_copy(ed, src_part, pr->state, dst_part, pr->state2);
if (_edje_block_break(ed)) goto break_prog;
// _edje_emit(ed, "program,stop", pr->name);
@ -888,7 +888,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
if (_edje_block_break(ed)) goto break_prog;
part = ed->table_parts[pr->param.dst % ed->table_parts_size];
_edje_param_set(part, pr->state, pr->state2);
_edje_param_set(ed, part, pr->state, pr->state2);
if (_edje_block_break(ed)) goto break_prog;
// _edje_emit(ed, "program,stop", pr->name);
@ -1498,7 +1498,7 @@ _edje_param_external_get(Edje_Real_Part *rp, const char *name, Edje_External_Par
/* simulate external properties for native objects */
static Edje_External_Param *
_edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param *param, void **free_ptr)
_edje_param_native_get(Edje *ed, Edje_Real_Part *rp, const char *name, Edje_External_Param *param, void **free_ptr)
{
*free_ptr = NULL;
if ((rp->part->type == EDJE_PART_TYPE_TEXT) ||
@ -1509,7 +1509,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING;
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
param->s = _edje_entry_text_get(rp);
else if ((rp->part->type == EDJE_PART_TYPE_TEXT) &&
@ -1527,7 +1527,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_STRING;
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
{
const char *tmp = _edje_entry_text_get(rp);
@ -1576,7 +1576,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
{
double d;
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
d = TO_DOUBLE(rp->drag->val.x);
if (rp->part->dragable.x < 0) d = 1.0 - d;
param->name = name;
@ -1588,7 +1588,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
{
double d;
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
d = TO_DOUBLE(rp->drag->val.y);
if (rp->part->dragable.y < 0) d = 1.0 - d;
param->name = name;
@ -1599,7 +1599,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
if (!strcmp(sub_name, "size_w"))
{
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE;
param->d = TO_DOUBLE(rp->drag->size.x);
@ -1607,7 +1607,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
}
if (!strcmp(sub_name, "size_h"))
{
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE;
param->d = TO_DOUBLE(rp->drag->size.y);
@ -1616,7 +1616,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
if (!strcmp(sub_name, "step_x"))
{
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE;
param->d = TO_DOUBLE(rp->drag->step.x);
@ -1624,7 +1624,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
}
if (!strcmp(sub_name, "step_y"))
{
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE;
param->d = TO_DOUBLE(rp->drag->step.y);
@ -1633,7 +1633,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
if (!strcmp(sub_name, "page_x"))
{
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE;
param->d = TO_DOUBLE(rp->drag->page.x);
@ -1641,7 +1641,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
}
if (!strcmp(sub_name, "page_y"))
{
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
param->name = name;
param->type = EDJE_EXTERNAL_PARAM_TYPE_DOUBLE;
param->d = TO_DOUBLE(rp->drag->page.y);
@ -1656,7 +1656,7 @@ _edje_param_native_get(Edje_Real_Part *rp, const char *name, Edje_External_Param
}
static Eina_Bool
_edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External_Param *param)
_edje_param_native_set(Edje *ed, Edje_Real_Part *rp, const char *name, const Edje_External_Param *param)
{
if ((rp->part->type == EDJE_PART_TYPE_TEXT) ||
(rp->part->type == EDJE_PART_TYPE_TEXTBLOCK))
@ -1666,8 +1666,7 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
if (param->type != EDJE_EXTERNAL_PARAM_TYPE_STRING)
return EINA_FALSE;
_edje_object_part_text_raw_set
(rp->edje->obj, rp, rp->part->name, param->s);
_edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, param->s);
return EINA_TRUE;
}
if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
@ -1678,13 +1677,11 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
return EINA_FALSE;
if (rp->part->type == EDJE_PART_TYPE_TEXT)
_edje_object_part_text_raw_set
(rp->edje->obj, rp, rp->part->name, param->s);
_edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, param->s);
else
{
char *escaped = _edje_text_escape(param->s);
_edje_object_part_text_raw_set
(rp->edje->obj, rp, rp->part->name, escaped);
_edje_object_part_text_raw_set(ed, ed->obj, rp, rp->part->name, escaped);
free(escaped);
}
@ -1725,8 +1722,8 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
rp->invalidate = 1;
#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);
(ed, rp, rp->drag->val.x, rp->drag->val.y);
_edje_emit(ed, "drag,set", rp->part->name);
return EINA_TRUE;
}
if (!strcmp(sub_name, "value_y"))
@ -1744,8 +1741,8 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
rp->invalidate = 1;
#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);
(ed, rp, rp->drag->val.x, rp->drag->val.y);
_edje_emit(ed, "drag,set", rp->part->name);
return EINA_TRUE;
}
@ -1754,12 +1751,12 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
return EINA_FALSE;
rp->drag->size.x = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0));
rp->edje->recalc_call = EINA_TRUE;
rp->edje->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
_edje_recalc(ed);
return EINA_TRUE;
}
if (!strcmp(sub_name, "size_h"))
@ -1767,12 +1764,12 @@ _edje_param_native_set(Edje_Real_Part *rp, const char *name, const Edje_External
if (param->type != EDJE_EXTERNAL_PARAM_TYPE_DOUBLE)
return EINA_FALSE;
rp->drag->size.y = FROM_DOUBLE(CLAMP(param->d, 0.0, 1.0));
rp->edje->recalc_call = EINA_TRUE;
rp->edje->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
_edje_recalc(ed);
return EINA_TRUE;
}
@ -2079,7 +2076,7 @@ _edje_param_validate(const Edje_External_Param *param, const Edje_External_Param
}
static void
_edje_param_copy(Edje_Real_Part *src_part, const char *src_param, Edje_Real_Part *dst_part, const char *dst_param)
_edje_param_copy(Edje *ed, Edje_Real_Part *src_part, const char *src_param, Edje_Real_Part *dst_part, const char *dst_param)
{
Edje_External_Param val;
const Edje_External_Param_Info *dst_info;
@ -2115,7 +2112,7 @@ _edje_param_copy(Edje_Real_Part *src_part, const char *src_param, Edje_Real_Part
}
else
{
if (!_edje_param_native_get(src_part, src_param, &val, &free_ptr))
if (!_edje_param_native_get(ed, src_part, src_param, &val, &free_ptr))
{
ERR("cannot get parameter '%s' of part '%s'",
src_param, src_part->part->name);
@ -2151,7 +2148,7 @@ _edje_param_copy(Edje_Real_Part *src_part, const char *src_param, Edje_Real_Part
}
else
{
if (!_edje_param_native_set(dst_part, dst_param, &val))
if (!_edje_param_native_set(ed, dst_part, dst_param, &val))
{
ERR("failed to set parameter '%s' (%s) of part '%s'",
dst_param, edje_external_param_type_str(dst_info->type),
@ -2165,7 +2162,7 @@ _edje_param_copy(Edje_Real_Part *src_part, const char *src_param, Edje_Real_Part
}
static void
_edje_param_set(Edje_Real_Part *part, const char *param, const char *value)
_edje_param_set(Edje *ed, Edje_Real_Part *part, const char *param, const char *value)
{
Edje_External_Param val;
const Edje_External_Param_Info *info;
@ -2218,7 +2215,7 @@ _edje_param_set(Edje_Real_Part *part, const char *param, const char *value)
}
else
{
if (!_edje_param_native_set(part, param, &val))
if (!_edje_param_native_set(ed, part, param, &val))
{
ERR("failed to set parameter '%s' (%s) of part '%s'",
param, edje_external_param_type_str(info->type),

View File

@ -184,7 +184,7 @@ _edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
ed->x + ep->x,
ed->y + ep->y);
if (ep->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
_edje_entry_real_part_configure(ep);
_edje_entry_real_part_configure(ed, ep);
if ((ep->type == EDJE_RP_TYPE_SWALLOW) &&
(ep->typedata.swallow))
{

View File

@ -47,8 +47,7 @@ static Eina_Bool _edje_text_class_list_foreach(const Eina_Hash *hash, const void
static void _edje_object_image_preload_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void _edje_object_signal_preload_cb(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _edje_user_def_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *child EINA_UNUSED, void *einfo EINA_UNUSED);
static void _edje_table_child_remove(Edje_Real_Part *rp, Evas_Object *child);
static void _edje_box_child_remove(Edje_Real_Part *rp, Evas_Object *child);
static void _edje_child_remove(Edje *ed, Edje_Real_Part *rp, Evas_Object *child);
Edje_Real_Part *_edje_real_part_recursive_get_helper(const Edje *ed, char **path);
@ -103,23 +102,23 @@ _edje_user_definition_free(Edje_User_Defined *eud)
rp->typedata.swallow->swallow_params.max.w = 0;
rp->typedata.swallow->swallow_params.max.h = 0;
}
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
eud->ed->dirty = EINA_TRUE;
eud->ed->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc_do(rp->edje);
_edje_recalc_do(eud->ed);
}
break;
case EDJE_USER_BOX_PACK:
child = eud->u.box.child;
rp = _edje_real_part_recursive_get(eud->ed, eud->part);
_edje_box_child_remove(rp, child);
_edje_child_remove(eud->ed, rp, child);
break;
case EDJE_USER_TABLE_PACK:
child = eud->u.table.child;
rp = _edje_real_part_recursive_get(eud->ed, eud->part);
_edje_table_child_remove(rp, child);
_edje_child_remove(eud->ed, rp, child);
break;
case EDJE_USER_STRING:
case EDJE_USER_DRAG_STEP:
@ -1285,7 +1284,7 @@ _text_change_cb_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
}
Eina_Bool
_edje_object_part_text_raw_set(Evas_Object *obj, Edje_Real_Part *rp, const char *part, const char *text)
_edje_object_part_text_raw_set(Edje *ed, Evas_Object *obj, Edje_Real_Part *rp, const char *part, const char *text)
{
if ((rp->type != EDJE_RP_TYPE_TEXT) ||
(!rp->typedata.text)) return EINA_TRUE;
@ -1303,20 +1302,20 @@ _edje_object_part_text_raw_set(Evas_Object *obj, Edje_Real_Part *rp, const char
_edje_entry_text_markup_set(rp, text);
else
if (text) rp->typedata.text->text = eina_stringshare_add(text);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
rp->edje->recalc_hints = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->recalc_hints = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
if (rp->edje->text_change.func)
rp->edje->text_change.func(rp->edje->text_change.data, obj, part);
_edje_recalc(ed);
if (ed->text_change.func)
ed->text_change.func(ed->text_change.data, obj, part);
return EINA_TRUE;
}
Eina_Bool
_edje_object_part_text_raw_append(Evas_Object *obj, Edje_Real_Part *rp, const char *part, const char *text)
_edje_object_part_text_raw_append(Edje *ed, Evas_Object *obj, Edje_Real_Part *rp, const char *part, const char *text)
{
if ((rp->type != EDJE_RP_TYPE_TEXT) ||
(!rp->typedata.text)) return EINA_TRUE;
@ -1341,14 +1340,14 @@ _edje_object_part_text_raw_append(Evas_Object *obj, Edje_Real_Part *rp, const ch
eina_stringshare_replace(&rp->typedata.text->text, text);
}
}
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = 1;
ed->dirty = EINA_TRUE;
ed->recalc_call = 1;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
if (rp->edje->text_change.func)
rp->edje->text_change.func(rp->edje->text_change.data, obj, part);
_edje_recalc(ed);
if (ed->text_change.func)
ed->text_change.func(ed->text_change.data, obj, part);
return EINA_TRUE;
}
@ -1498,7 +1497,7 @@ _part_text_set(Eo *obj, void *_pd, va_list *list)
if (ret) *ret = EINA_TRUE;
return;
}
r = _edje_object_part_text_raw_set(obj, rp, part, text);
r = _edje_object_part_text_raw_set(ed, obj, rp, part, text);
_edje_user_define_string(ed, part, rp->typedata.text->text);
if (ret) *ret = r;
}
@ -1625,15 +1624,14 @@ _part_text_escaped_set(Eo *obj, void *_pd, va_list *list)
}
p++;
}
int_ret = _edje_object_part_text_raw_set
(obj, rp, part, eina_strbuf_string_get(sbuf));
int_ret = _edje_object_part_text_raw_set(ed, obj, rp, part, eina_strbuf_string_get(sbuf));
_edje_user_define_string(ed, part, rp->typedata.text->text);
eina_strbuf_free(sbuf);
if (ret) *ret = int_ret;
return;
}
if (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) return;
int_ret = _edje_object_part_text_raw_set(obj, rp, part, text);
int_ret = _edje_object_part_text_raw_set(ed, obj, rp, part, text);
_edje_user_define_string(ed, part, rp->typedata.text->text);
if (ret) *ret = int_ret;
}
@ -1773,12 +1771,12 @@ _part_text_unescaped_set(Eo *obj, void *_pd, va_list *list)
if ((rp->type != EDJE_RP_TYPE_TEXT) ||
(!rp->typedata.text)) return;
if (rp->part->type == EDJE_PART_TYPE_TEXT)
int_ret = _edje_object_part_text_raw_set(obj, rp, part, text_to_escape);
int_ret = _edje_object_part_text_raw_set(ed, obj, rp, part, text_to_escape);
else if (rp->part->type == EDJE_PART_TYPE_TEXTBLOCK)
{
char *text = _edje_text_escape(text_to_escape);
int_ret = _edje_object_part_text_raw_set(obj, rp, part, text);
int_ret = _edje_object_part_text_raw_set(ed, obj, rp, part, text);
free(text);
}
_edje_user_define_string(ed, part, rp->typedata.text->text);
@ -1922,15 +1920,15 @@ _part_text_insert(Eo *obj, void *_pd, va_list *list)
if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return;
if (rp->part->entry_mode <= EDJE_ENTRY_EDIT_MODE_NONE) return;
_edje_entry_text_markup_insert(rp, text);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
rp->edje->recalc_hints = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->recalc_hints = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
if (rp->edje->text_change.func)
rp->edje->text_change.func(rp->edje->text_change.data, obj, part);
_edje_recalc(ed);
if (ed->text_change.func)
ed->text_change.func(ed->text_change.data, obj, part);
}
EAPI void
@ -1952,16 +1950,16 @@ _part_text_append(Eo *obj, void *_pd, va_list *list)
rp = _edje_real_part_recursive_get(ed, part);
if (!rp) return;
if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK)) return;
_edje_object_part_text_raw_append(obj, rp, part, text);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
rp->edje->recalc_hints = EINA_TRUE;
_edje_object_part_text_raw_append(ed, obj, rp, part, text);
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->recalc_hints = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
if (rp->edje->text_change.func)
rp->edje->text_change.func(rp->edje->text_change.data, obj, part);
_edje_recalc(ed);
if (ed->text_change.func)
ed->text_change.func(ed->text_change.data, obj, part);
}
EAPI const Eina_List *
@ -2101,8 +2099,8 @@ _part_text_cursor_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
{
_edje_entry_cursor_geometry_get(rp, x, y, w, h);
if (x) *x -= rp->edje->x;
if (y) *y -= rp->edje->y;
if (x) *x -= ed->x;
if (y) *y -= ed->y;
}
}
@ -3386,7 +3384,7 @@ _part_swallow(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (rp)
{
/* The object is already swallowed somewhere, unswallow it first */
edje_object_part_unswallow(rp->edje->obj, obj_swallow);
edje_object_part_unswallow(ed->obj, obj_swallow);
}
rp = _edje_real_part_recursive_get(ed, part);
@ -3402,7 +3400,7 @@ _part_swallow(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
}
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return;
_edje_real_part_swallow(rp, obj_swallow, EINA_TRUE);
_edje_real_part_swallow(ed, rp, obj_swallow, EINA_TRUE);
if (rp->typedata.swallow->swallowed_object)
{
@ -3705,6 +3703,7 @@ void
_part_unswallow(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
{
Evas_Object *obj_swallow = va_arg(*list, Evas_Object *);
Edje *ed = _pd;
Edje_Real_Part *rp;
if (!obj_swallow) return;
@ -3728,8 +3727,6 @@ _part_unswallow(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (obj)
{
Edje *ed = _pd;
if (!ed && obj)
{
ERR("edje_object_part_unswallow called on a non Edje object ('%s').",
@ -3752,12 +3749,12 @@ _part_unswallow(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
rp->typedata.swallow->swallow_params.min.h = 0;
rp->typedata.swallow->swallow_params.max.w = 0;
rp->typedata.swallow->swallow_params.max.h = 0;
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc_do(rp->edje);
_edje_recalc_do(ed);
return;
}
}
@ -4286,8 +4283,8 @@ _part_drag_value_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
#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,set", rp->part->name);
_edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y);
_edje_emit(ed, "drag,set", rp->part->name);
if (ret) *ret = EINA_TRUE;
}
@ -4394,12 +4391,12 @@ _part_drag_size_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
}
rp->drag->size.x = FROM_DOUBLE(dw);
rp->drag->size.y = FROM_DOUBLE(dh);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
_edje_recalc(ed);
if (ret) *ret = EINA_TRUE;
}
@ -4703,8 +4700,8 @@ _part_drag_step(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
#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);
_edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y);
_edje_emit(ed, "drag,step", rp->part->name);
if (ret) *ret = EINA_TRUE;
}
@ -4768,8 +4765,8 @@ _part_drag_page(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
#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);
_edje_dragable_pos_set(ed, rp, rp->drag->val.x, rp->drag->val.y);
_edje_emit(ed, "drag,page", rp->part->name);
if (ret) *ret = EINA_TRUE;
}
@ -4815,7 +4812,7 @@ _part_box_append(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_BOX) return;
if (_edje_real_part_box_append(rp, child))
if (_edje_real_part_box_append(ed, rp, child))
{
Edje_User_Defined *eud;
@ -4854,7 +4851,7 @@ _part_box_prepend(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_BOX) return;
if (_edje_real_part_box_prepend(rp, child))
if (_edje_real_part_box_prepend(ed, rp, child))
{
Edje_User_Defined *eud;
@ -4893,7 +4890,7 @@ _part_box_insert_before(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_BOX) return;
if (_edje_real_part_box_insert_before(rp, child, reference))
if (_edje_real_part_box_insert_before(ed, rp, child, reference))
{
Edje_User_Defined *eud;
@ -4932,7 +4929,7 @@ _part_box_insert_at(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_BOX) return;
if (_edje_real_part_box_insert_at(rp, child, pos))
if (_edje_real_part_box_insert_at(ed, rp, child, pos))
{
Edje_User_Defined *eud;
@ -4971,7 +4968,7 @@ _part_box_remove(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_BOX) return;
r = _edje_real_part_box_remove(rp, child);
r = _edje_real_part_box_remove(ed, rp, child);
if (r)
{
@ -5015,7 +5012,7 @@ _part_box_remove_at(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_BOX) return;
r = _edje_real_part_box_remove_at(rp, pos);
r = _edje_real_part_box_remove_at(ed, rp, pos);
if (r)
{
@ -5058,7 +5055,7 @@ _part_box_remove_all(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_BOX) return;
if (_edje_real_part_box_remove_all(rp, clear))
if (_edje_real_part_box_remove_all(ed, rp, clear))
{
if (ret) *ret = EINA_TRUE;
Edje_User_Defined *eud;
@ -5105,184 +5102,14 @@ _access_part_list_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
}
static void
_edje_box_child_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *child EINA_UNUSED, void *einfo EINA_UNUSED)
_edje_child_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *child, void *einfo EINA_UNUSED)
{
Edje_Real_Part *rp = data;
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
}
static void
_edje_box_child_add(Edje_Real_Part *rp, Evas_Object *child)
{
evas_object_event_callback_add
(child, EVAS_CALLBACK_DEL, _edje_box_child_del_cb, rp);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
}
static void
_edje_box_child_remove(Edje_Real_Part *rp, Evas_Object *child)
{
evas_object_event_callback_del_full
(child, EVAS_CALLBACK_DEL, _edje_box_child_del_cb, rp);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
}
Eina_Bool
_edje_real_part_box_append(Edje_Real_Part *rp, Evas_Object *child_obj)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_append(rp->object, child_obj);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_box_child_add(rp, child_obj);
return EINA_TRUE;
}
Eina_Bool
_edje_real_part_box_prepend(Edje_Real_Part *rp, Evas_Object *child_obj)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_prepend(rp->object, child_obj);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_box_child_add(rp, child_obj);
return EINA_TRUE;
}
Eina_Bool
_edje_real_part_box_insert_before(Edje_Real_Part *rp, Evas_Object *child_obj, const Evas_Object *ref)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_insert_before(rp->object, child_obj, ref);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_box_child_add(rp, child_obj);
return EINA_TRUE;
}
Eina_Bool
_edje_real_part_box_insert_at(Edje_Real_Part *rp, Evas_Object *child_obj, unsigned int pos)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_insert_at(rp->object, child_obj, pos);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_box_child_add(rp, child_obj);
return EINA_TRUE;
}
Evas_Object *
_edje_real_part_box_remove(Edje_Real_Part *rp, Evas_Object *child_obj)
{
if (evas_object_data_get(child_obj, "\377 edje.box_item")) return NULL;
if (!evas_object_box_remove(rp->object, child_obj)) return NULL;
_edje_box_layout_remove_child(rp, child_obj);
_edje_box_child_remove(rp, child_obj);
return child_obj;
}
Evas_Object *
_edje_real_part_box_remove_at(Edje_Real_Part *rp, unsigned int pos)
{
Evas_Object_Box_Option *opt;
Evas_Object_Box_Data *priv;
Evas_Object *child_obj;
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;
if (evas_object_data_get(child_obj, "\377 edje.box_item")) return NULL;
if (!evas_object_box_remove_at(rp->object, pos)) return NULL;
_edje_box_layout_remove_child(rp, child_obj);
_edje_box_child_remove(rp, child_obj);
return child_obj;
}
Eina_Bool
_edje_real_part_box_remove_all(Edje_Real_Part *rp, Eina_Bool clear)
{
Eina_List *children;
int i = 0;
children = evas_object_box_children_get(rp->object);
while (children)
{
Evas_Object *child_obj = children->data;
if (evas_object_data_get(child_obj, "\377 edje.box_item"))
i++;
else
{
_edje_box_layout_remove_child(rp, child_obj);
_edje_box_child_remove(rp, child_obj);
if (!evas_object_box_remove_at(rp->object, i))
return EINA_FALSE;
if (clear)
evas_object_del(child_obj);
}
children = eina_list_remove_list(children, children);
}
return EINA_TRUE;
}
static void
_edje_table_child_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *child, void *einfo EINA_UNUSED)
{
Edje_User_Defined *eud;
Eina_List *l;
Edje_Real_Part *rp = data;
Edje *ed = evas_object_data_get(child, ".edje");
EINA_LIST_FOREACH(rp->edje->user_defined, l, eud)
EINA_LIST_FOREACH(ed->user_defined, l, eud)
if (rp->part->type == EDJE_PART_TYPE_BOX)
{
if (eud->type == EDJE_USER_BOX_PACK &&
@ -5304,40 +5131,170 @@ _edje_table_child_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *child, vo
}
}
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
_edje_recalc(ed);
}
static void
_edje_table_child_add(Edje_Real_Part *rp, Evas_Object *child)
_edje_child_add(Edje *ed, Edje_Real_Part *rp, Evas_Object *child)
{
evas_object_event_callback_add
(child, EVAS_CALLBACK_DEL, _edje_table_child_del_cb, rp);
evas_object_event_callback_add(child, EVAS_CALLBACK_DEL, _edje_child_del_cb, rp);
evas_object_data_set(child, ".edje", ed);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
_edje_recalc(ed);
}
static void
_edje_table_child_remove(Edje_Real_Part *rp, Evas_Object *child)
_edje_child_remove(Edje *ed, Edje_Real_Part *rp, Evas_Object *child)
{
evas_object_event_callback_del_full
(child, EVAS_CALLBACK_DEL, _edje_table_child_del_cb, rp);
evas_object_event_callback_del_full(child, EVAS_CALLBACK_DEL, _edje_child_del_cb, rp);
evas_object_data_del(child, ".edje");
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
#ifdef EDJE_CALC_CACHE
rp->invalidate = 1;
#endif
_edje_recalc(rp->edje);
_edje_recalc(ed);
}
Eina_Bool
_edje_real_part_box_append(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_append(rp->object, child_obj);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_child_add(ed, rp, child_obj);
return EINA_TRUE;
}
Eina_Bool
_edje_real_part_box_prepend(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_prepend(rp->object, child_obj);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_child_add(ed, rp, child_obj);
return EINA_TRUE;
}
Eina_Bool
_edje_real_part_box_insert_before(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj, const Evas_Object *ref)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_insert_before(rp->object, child_obj, ref);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_child_add(ed, rp, child_obj);
return EINA_TRUE;
}
Eina_Bool
_edje_real_part_box_insert_at(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj, unsigned int pos)
{
Evas_Object_Box_Option *opt;
opt = evas_object_box_insert_at(rp->object, child_obj, pos);
if (!opt) return EINA_FALSE;
if (!_edje_box_layout_add_child(rp, child_obj))
{
evas_object_box_remove(rp->object, child_obj);
return EINA_FALSE;
}
_edje_child_add(ed, rp, child_obj);
return EINA_TRUE;
}
Evas_Object *
_edje_real_part_box_remove(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj)
{
if (evas_object_data_get(child_obj, "\377 edje.box_item")) return NULL;
if (!evas_object_box_remove(rp->object, child_obj)) return NULL;
_edje_box_layout_remove_child(rp, child_obj);
_edje_child_remove(ed, rp, child_obj);
return child_obj;
}
Evas_Object *
_edje_real_part_box_remove_at(Edje *ed, Edje_Real_Part *rp, unsigned int pos)
{
Evas_Object_Box_Option *opt;
Evas_Object_Box_Data *priv;
Evas_Object *child_obj;
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;
if (evas_object_data_get(child_obj, "\377 edje.box_item")) return NULL;
if (!evas_object_box_remove_at(rp->object, pos)) return NULL;
_edje_box_layout_remove_child(rp, child_obj);
_edje_child_remove(ed, rp, child_obj);
return child_obj;
}
Eina_Bool
_edje_real_part_box_remove_all(Edje *ed, Edje_Real_Part *rp, Eina_Bool clear)
{
Eina_List *children;
int i = 0;
children = evas_object_box_children_get(rp->object);
while (children)
{
Evas_Object *child_obj = children->data;
if (evas_object_data_get(child_obj, "\377 edje.box_item"))
i++;
else
{
_edje_box_layout_remove_child(rp, child_obj);
_edje_child_remove(ed, rp, child_obj);
if (!evas_object_box_remove_at(rp->object, i))
return EINA_FALSE;
if (clear)
evas_object_del(child_obj);
}
children = eina_list_remove_list(children, children);
}
return EINA_TRUE;
}
EAPI Evas_Object *
@ -5399,7 +5356,7 @@ _part_table_pack(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_TABLE) return;
if (_edje_real_part_table_pack(rp, child_obj, col, row, colspan, rowspan))
if (_edje_real_part_table_pack(ed, rp, child_obj, col, row, colspan, rowspan))
{
if (ret) *ret = EINA_TRUE;
eud = _edje_user_definition_new(EDJE_USER_TABLE_PACK, part, ed);
@ -5440,7 +5397,7 @@ _part_table_unpack(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_TABLE) return;
if (_edje_real_part_table_unpack(rp, child_obj))
if (_edje_real_part_table_unpack(ed, rp, child_obj))
{
if (ret) *ret = EINA_TRUE;
Edje_User_Defined *eud;
@ -5512,7 +5469,7 @@ _part_table_clear(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
if (!rp) return;
if (rp->part->type != EDJE_PART_TYPE_TABLE) return;
_edje_real_part_table_clear(rp, clear);
_edje_real_part_table_clear(ed, rp, clear);
if (ret) *ret = EINA_TRUE;
}
@ -5850,29 +5807,29 @@ _update_hints_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
}
Eina_Bool
_edje_real_part_table_pack(Edje_Real_Part *rp, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan)
_edje_real_part_table_pack(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan)
{
Eina_Bool ret =
evas_object_table_pack(rp->object, child_obj, col, row, colspan, rowspan);
_edje_table_child_add(rp, child_obj);
_edje_child_add(ed, rp, child_obj);
return ret;
}
Eina_Bool
_edje_real_part_table_unpack(Edje_Real_Part *rp, Evas_Object *child_obj)
_edje_real_part_table_unpack(Edje *ed, Edje_Real_Part *rp, Evas_Object *child_obj)
{
Eina_Bool ret = evas_object_table_unpack(rp->object, child_obj);
if (ret)
_edje_table_child_remove(rp, child_obj);
_edje_child_remove(ed, rp, child_obj);
return ret;
}
void
_edje_real_part_table_clear(Edje_Real_Part *rp, Eina_Bool clear)
_edje_real_part_table_clear(Edje *ed, Edje_Real_Part *rp, Eina_Bool clear)
{
Eina_List *children;
@ -5881,10 +5838,10 @@ _edje_real_part_table_clear(Edje_Real_Part *rp, Eina_Bool clear)
{
Evas_Object *child_obj = children->data;
_edje_table_child_remove(rp, child_obj);
_edje_child_remove(ed, rp, child_obj);
if (!evas_object_data_get(child_obj, "\377 edje.table_item"))
{
evas_object_table_unpack(rp->object, child_obj);
evas_object_table_unpack(rp->object, child_obj);
if (clear)
evas_object_del(child_obj);
}
@ -6292,15 +6249,15 @@ _edje_block_violate(Edje *ed)
}
void
_edje_object_part_swallow_free_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
_edje_object_part_swallow_free_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
{
Edje_Real_Part *rp;
Edje_User_Defined *eud;
Eina_List *l;
Edje *ed;
rp = data;
ed = evas_object_data_get(obj, ".edje");
EINA_LIST_FOREACH(rp->edje->user_defined, l, eud)
EINA_LIST_FOREACH(ed->user_defined, l, eud)
if (eud->type == EDJE_USER_SWALLOW && eud->u.swallow.child == obj)
{
_edje_user_definition_free(eud);
@ -6389,16 +6346,19 @@ _edje_real_part_swallow_hints_update(Edje_Real_Part *rp)
}
void
_edje_object_part_swallow_changed_hints_cb(void *data, EINA_UNUSED Evas *e, EINA_UNUSED Evas_Object *obj, EINA_UNUSED void *event_info)
_edje_object_part_swallow_changed_hints_cb(void *data, EINA_UNUSED Evas *e, Evas_Object *obj, EINA_UNUSED void *event_info)
{
Edje_Real_Part *rp;
Edje *ed;
rp = data;
ed = evas_object_data_get(obj, ".edje");
_edje_real_part_swallow_hints_update(rp);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
rp->edje->recalc_hints = EINA_TRUE;
_edje_recalc(rp->edje);
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->recalc_hints = EINA_TRUE;
_edje_recalc(ed);
return;
}
@ -6428,7 +6388,8 @@ _edje_object_part_swallow_image_resize_cb(void *data, Evas *e EINA_UNUSED, Evas_
}
void
_edje_real_part_swallow(Edje_Real_Part *rp,
_edje_real_part_swallow(Edje *ed,
Edje_Real_Part *rp,
Evas_Object *obj_swallow,
Eina_Bool hints_update)
{
@ -6438,16 +6399,16 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
{
if (rp->typedata.swallow->swallowed_object != obj_swallow)
{
edje_object_part_unswallow(rp->edje->obj, rp->typedata.swallow->swallowed_object);
edje_object_part_unswallow(ed->obj, rp->typedata.swallow->swallowed_object);
}
else
{
if (hints_update)
_edje_real_part_swallow_hints_update(rp);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
rp->edje->recalc_hints = EINA_TRUE;
_edje_recalc(rp->edje);
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->recalc_hints = EINA_TRUE;
_edje_recalc(ed);
return;
}
}
@ -6456,10 +6417,10 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
#endif
if (!obj_swallow) return;
rp->typedata.swallow->swallowed_object = obj_swallow;
evas_object_smart_member_add(rp->typedata.swallow->swallowed_object, rp->edje->obj);
evas_object_smart_member_add(rp->typedata.swallow->swallowed_object, ed->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, ed->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,
@ -6469,6 +6430,7 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_edje_object_part_swallow_changed_hints_cb,
rp);
evas_object_data_set(rp->typedata.swallow->swallowed_object, ".edje", ed);
//If the map is enabled, uv should be updated when image size is changed.
if (eo_isa(rp->typedata.swallow->swallowed_object, EVAS_OBJ_IMAGE_CLASS))
@ -6481,7 +6443,7 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
if (rp->part->mouse_events)
{
_edje_callbacks_add(obj_swallow, rp->edje, rp);
_edje_callbacks_add(obj_swallow, ed, rp);
if (rp->part->repeat_events)
evas_object_repeat_events_set(obj_swallow, 1);
if (rp->part->pointer_mode != EVAS_OBJECT_POINTER_MODE_AUTOGRAB)
@ -6490,20 +6452,22 @@ _edje_real_part_swallow(Edje_Real_Part *rp,
}
else
evas_object_pass_events_set(obj_swallow, 1);
_edje_callbacks_focus_add(rp->typedata.swallow->swallowed_object, rp->edje, rp);
_edje_callbacks_focus_add(rp->typedata.swallow->swallowed_object, ed, rp);
if (rp->part->precise_is_inside)
evas_object_precise_is_inside_set(obj_swallow, 1);
rp->edje->dirty = EINA_TRUE;
rp->edje->recalc_call = EINA_TRUE;
rp->edje->recalc_hints = EINA_TRUE;
_edje_recalc(rp->edje);
ed->dirty = EINA_TRUE;
ed->recalc_call = EINA_TRUE;
ed->recalc_hints = EINA_TRUE;
_edje_recalc(ed);
}
void
_edje_real_part_swallow_clear(Edje_Real_Part *rp)
{
Edje *ed;
if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
(!rp->typedata.swallow)) return;
if (!rp->typedata.swallow->swallowed_object) return;
@ -6516,6 +6480,7 @@ _edje_real_part_swallow_clear(Edje_Real_Part *rp)
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_edje_object_part_swallow_changed_hints_cb,
rp);
ed = evas_object_data_del(rp->typedata.swallow->swallowed_object, ".edje");
if (eo_isa(rp->typedata.swallow->swallowed_object, EVAS_OBJ_IMAGE_CLASS))
evas_object_event_callback_del_full(rp->typedata.swallow->swallowed_object,
EVAS_CALLBACK_IMAGE_RESIZE,
@ -6524,8 +6489,8 @@ _edje_real_part_swallow_clear(Edje_Real_Part *rp)
evas_object_clip_unset(rp->typedata.swallow->swallowed_object);
evas_object_data_del(rp->typedata.swallow->swallowed_object, "\377 edje.swallowing_part");
if (rp->part->mouse_events)
_edje_callbacks_del(rp->typedata.swallow->swallowed_object, rp->edje);
_edje_callbacks_focus_del(rp->typedata.swallow->swallowed_object, rp->edje);
_edje_callbacks_del(rp->typedata.swallow->swallowed_object, ed);
_edje_callbacks_focus_del(rp->typedata.swallow->swallowed_object, ed);
rp->typedata.swallow->swallowed_object = NULL;
}