efl.canvas.object: clip -> clipper && clipees -> clipped_objects

Summary:
also clipees_has -> clipped_objects_count

ref T7555

Depends on D8039

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7555

Differential Revision: https://phab.enlightenment.org/D8040
This commit is contained in:
Mike Blumenkrantz 2019-02-27 13:17:37 -05:00
parent 540d3b9587
commit a5e183ad5d
18 changed files with 109 additions and 88 deletions

View File

@ -122,15 +122,15 @@ _on_keydown(void *data EINA_UNUSED,
printf("Toggling clipping ");
Evas_Object *clip = NULL;
clip = efl_canvas_object_clip_get(d.img);
clip = efl_canvas_object_clipper_get(d.img);
if (clip == d.clipper)
{
efl_canvas_object_clip_set(d.img, NULL);
efl_canvas_object_clipper_set(d.img, NULL);
printf("off\n");
}
else
{
efl_canvas_object_clip_set(d.img, d.clipper);
efl_canvas_object_clipper_set(d.img, d.clipper);
printf("on\n");
}
return;
@ -237,7 +237,7 @@ main(void)
efl_gfx_entity_size_set(d.clipper, EINA_SIZE2D(WIDTH / 2, HEIGHT / 2));
efl_gfx_entity_visible_set(d.clipper, EINA_TRUE);
efl_canvas_object_clip_set(d.img, d.clipper);
efl_canvas_object_clipper_set(d.img, d.clipper);
printf("%s", commands);

View File

@ -116,10 +116,10 @@ _page_info_geometry_change(Efl_Page_Transition_Scroll_Data *pd,
{
if (curr->visible)
{
efl_canvas_object_clip_set(curr->obj, pd->backclip);
efl_canvas_object_clipper_set(curr->obj, pd->backclip);
efl_pack_unpack(curr->obj, curr->content);
efl_canvas_object_clip_set(curr->content, pd->backclip);
efl_canvas_object_clipper_set(curr->content, pd->backclip);
curr->content_num = -1;
curr->content = NULL;
@ -140,10 +140,10 @@ _page_info_geometry_change(Efl_Page_Transition_Scroll_Data *pd,
{
tmp = efl_pack_content_get(spd->pager.obj, tmp_id);
efl_canvas_object_clip_set(curr->obj, pd->foreclip);
efl_canvas_object_clipper_set(curr->obj, pd->foreclip);
efl_pack(curr->obj, tmp);
efl_canvas_object_clip_set(tmp, pd->foreclip);
efl_canvas_object_clipper_set(tmp, pd->foreclip);
curr->content_num = tmp_id;
curr->content = tmp;
@ -152,10 +152,10 @@ _page_info_geometry_change(Efl_Page_Transition_Scroll_Data *pd,
}
else if (curr->content)
{
efl_canvas_object_clip_set(curr->obj, pd->backclip);
efl_canvas_object_clipper_set(curr->obj, pd->backclip);
efl_pack_unpack(curr->obj, curr->content);
efl_canvas_object_clip_set(curr->content, pd->backclip);
efl_canvas_object_clipper_set(curr->content, pd->backclip);
curr->content_num = -1;
curr->content = NULL;
@ -249,7 +249,7 @@ _efl_page_transition_scroll_efl_page_transition_bind(Eo *obj,
for (i = 0; i < cnt; i++)
{
item = efl_pack_content_get(spd->pager.obj, i);
efl_canvas_object_clip_set(item, pd->backclip);
efl_canvas_object_clipper_set(item, pd->backclip);
}
_page_info_allocate(pd, spd);
_page_info_geometry_change(pd, spd);
@ -314,9 +314,9 @@ _efl_page_transition_scroll_update(Eo *obj,
if (dummy->visible)
{
efl_canvas_object_clip_set(dummy->obj, pd->backclip);
efl_canvas_object_clipper_set(dummy->obj, pd->backclip);
efl_pack_unpack(dummy->obj, dummy->content);
efl_canvas_object_clip_set(dummy->content, pd->backclip);
efl_canvas_object_clipper_set(dummy->content, pd->backclip);
dummy->content_num = -1;
dummy->content = NULL;
@ -340,10 +340,10 @@ _efl_page_transition_scroll_update(Eo *obj,
{
if (curr->visible)
{
efl_canvas_object_clip_set(curr->obj, pd->backclip);
efl_canvas_object_clipper_set(curr->obj, pd->backclip);
efl_pack_unpack(curr->obj, curr->content);
efl_canvas_object_clip_set(curr->content, pd->backclip);
efl_canvas_object_clipper_set(curr->content, pd->backclip);
curr->content_num = -1;
curr->content = NULL;
@ -367,13 +367,13 @@ _efl_page_transition_scroll_update(Eo *obj,
if (curr->content)
{
efl_pack_unpack(curr->obj, curr->content);
efl_canvas_object_clip_set(curr->content, pd->backclip);
efl_canvas_object_clipper_set(curr->content, pd->backclip);
}
efl_canvas_object_clip_set(curr->obj, pd->foreclip);
efl_canvas_object_clipper_set(curr->obj, pd->foreclip);
efl_pack(curr->obj, tmp);
efl_canvas_object_clip_set(tmp, pd->foreclip);
efl_canvas_object_clipper_set(tmp, pd->foreclip);
curr->content_num = tmp_id;
curr->content = tmp;
@ -382,10 +382,10 @@ _efl_page_transition_scroll_update(Eo *obj,
}
else if (curr->content)
{
efl_canvas_object_clip_set(curr->obj, pd->backclip);
efl_canvas_object_clipper_set(curr->obj, pd->backclip);
efl_pack_unpack(curr->obj, curr->content);
efl_canvas_object_clip_set(curr->content, pd->backclip);
efl_canvas_object_clipper_set(curr->content, pd->backclip);
curr->content_num = -1;
curr->content = NULL;
@ -480,7 +480,7 @@ _add_item(Efl_Page_Transition_Scroll_Data *pd, Efl_Page_Transition_Data *spd)
static void
_remove_item(Page_Info *pi, Efl_Page_Transition_Scroll_Data *pd)
{
efl_canvas_object_clip_set(pi->content, pd->backclip);
efl_canvas_object_clipper_set(pi->content, pd->backclip);
efl_pack_unpack(pi->obj, pi->content);
efl_del(pi->obj);
pi->prev->next = pi->next;
@ -583,7 +583,7 @@ _efl_page_transition_scroll_loop_set(Eo *obj,
tmp = efl_pack_content_get(spd->pager.obj, tmp_id);
efl_pack(curr->obj, tmp);
efl_canvas_object_clip_set(tmp, pd->foreclip);
efl_canvas_object_clipper_set(tmp, pd->foreclip);
curr->content_num = tmp_id;
curr->content = tmp;
@ -593,7 +593,7 @@ _efl_page_transition_scroll_loop_set(Eo *obj,
case EFL_UI_PAGER_LOOP_DISABLED:
efl_pack_unpack(curr->obj, curr->content);
efl_canvas_object_clip_set(curr->content, pd->backclip);
efl_canvas_object_clipper_set(curr->content, pd->backclip);
curr->content_num = -1;
curr->content = NULL;

View File

@ -81,8 +81,8 @@ static void
_recover_status(Eo *obj, Efl_Ui_Image_Data *sd)
{
int r, g, b, a;
Evas_Object *pclip = efl_canvas_object_clip_get(obj);
if (pclip) efl_canvas_object_clip_set(sd->img, pclip);
Evas_Object *pclip = efl_canvas_object_clipper_get(obj);
if (pclip) efl_canvas_object_clipper_set(sd->img, pclip);
efl_gfx_color_get(obj, &r, &g, &b, &a);
efl_gfx_color_set(sd->img, r, g, b, a);
@ -706,12 +706,12 @@ _efl_ui_image_efl_gfx_color_color_set(Eo *obj, Efl_Ui_Image_Data *sd, int r, int
}
EOLIAN static void
_efl_ui_image_efl_canvas_object_clip_set(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *clip)
_efl_ui_image_efl_canvas_object_clipper_set(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *clip)
{
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
return;
efl_canvas_object_clip_set(efl_super(obj, MY_CLASS), clip);
efl_canvas_object_clipper_set(efl_super(obj, MY_CLASS), clip);
if (sd->img) evas_object_clip_set(sd->img, clip);
if (sd->prev_img) evas_object_clip_set(sd->prev_img, clip);

View File

@ -115,7 +115,7 @@ class @beta Efl.Ui.Image extends Efl.Ui.Widget implements Efl.Ui.Clickable, Efl.
Efl.Layout.Calc.calc_size_min;
Efl.Layout.Calc.calc_parts_extends;
Efl.Layout.Calc.calc_force;
Efl.Canvas.Object.clip { set; }
Efl.Canvas.Object.clipper { set; }
Efl.Canvas.Group.group_member_add;
Efl.Ui.Draggable.drag_target { get; set; }
Efl.Ui.Property_Bind.property_bind;

View File

@ -366,7 +366,7 @@ _efl_ui_pager_efl_object_constructor(Eo *obj,
evas_object_evas_get(obj));
efl_canvas_group_member_add(pd->page_root, pd->foreclip);
evas_object_static_clip_set(pd->foreclip, EINA_TRUE);
efl_canvas_object_clip_set(pd->page_box, pd->foreclip);
efl_canvas_object_clipper_set(pd->page_box, pd->foreclip);
pd->backclip = efl_add(EFL_CANVAS_RECTANGLE_CLASS,
evas_object_evas_get(obj));
@ -402,7 +402,7 @@ _efl_ui_pager_efl_pack_linear_pack_begin(Eo *obj EINA_UNUSED,
{
if (pd->cnt == 1)
efl_pack(pd->page_box, subobj);
else efl_canvas_object_clip_set(subobj, pd->backclip);
else efl_canvas_object_clipper_set(subobj, pd->backclip);
}
if (pd->indicator)
@ -429,7 +429,7 @@ _efl_ui_pager_efl_pack_linear_pack_end(Eo *obj EINA_UNUSED,
{
if (pd->cnt == 1)
efl_pack(pd->page_box, subobj);
else efl_canvas_object_clip_set(subobj, pd->backclip);
else efl_canvas_object_clipper_set(subobj, pd->backclip);
}
if (pd->indicator)
@ -456,7 +456,7 @@ _efl_ui_pager_efl_pack_linear_pack_before(Eo *obj EINA_UNUSED,
if (pd->transition)
efl_page_transition_update(pd->transition, pd->curr.pos);
else efl_canvas_object_clip_set(subobj, pd->backclip);
else efl_canvas_object_clipper_set(subobj, pd->backclip);
if (pd->indicator)
efl_page_indicator_pack(pd->indicator, index);
@ -482,7 +482,7 @@ _efl_ui_pager_efl_pack_linear_pack_after(Eo *obj EINA_UNUSED,
if (pd->transition)
efl_page_transition_update(pd->transition, pd->curr.pos);
else efl_canvas_object_clip_set(subobj, pd->backclip);
else efl_canvas_object_clipper_set(subobj, pd->backclip);
if (pd->indicator)
efl_page_indicator_pack(pd->indicator, (index + 1));
@ -519,7 +519,7 @@ _efl_ui_pager_efl_pack_linear_pack_at(Eo *obj,
if (pd->transition)
efl_page_transition_update(pd->transition, pd->curr.pos);
else efl_canvas_object_clip_set(subobj, pd->backclip);
else efl_canvas_object_clipper_set(subobj, pd->backclip);
if (pd->indicator)
efl_page_indicator_pack(pd->indicator, index);
@ -566,7 +566,7 @@ _efl_ui_pager_current_page_set(Eo *obj,
curr = eina_list_nth(pd->content_list, pd->curr.page);
efl_pack_unpack(pd->page_box, curr);
efl_canvas_object_clip_set(curr, pd->backclip);
efl_canvas_object_clipper_set(curr, pd->backclip);
pd->curr.page = index;
curr = eina_list_nth(pd->content_list, pd->curr.page);
@ -611,7 +611,7 @@ _efl_ui_pager_transition_set(Eo *obj,
curr = eina_list_nth(pd->content_list, pd->curr.page);
efl_pack_unpack(pd->page_box, curr);
efl_canvas_object_clip_set(pd->page_box, pd->backclip);
efl_canvas_object_clipper_set(pd->page_box, pd->backclip);
}
pd->transition = transition;
@ -628,11 +628,11 @@ _efl_ui_pager_transition_set(Eo *obj,
_event_handler_del(obj, pd);
efl_canvas_object_clip_set(pd->page_box, pd->foreclip);
efl_canvas_object_clipper_set(pd->page_box, pd->foreclip);
EINA_LIST_FOREACH(pd->content_list, list, curr)
{
efl_canvas_object_clip_set(curr, pd->backclip);
efl_canvas_object_clipper_set(curr, pd->backclip);
}
curr = eina_list_nth(pd->content_list, pd->curr.page);

View File

@ -3739,7 +3739,7 @@ _anchors_update(Eo *obj, Efl_Ui_Text_Data *sd)
{
efl_canvas_group_member_add(smart, ob);
efl_gfx_stack_above(ob, obj);
efl_canvas_object_clip_set(ob, clip);
efl_canvas_object_clipper_set(ob, clip);
efl_canvas_object_pass_events_set(ob, EINA_TRUE);
rect->obj = ob;
}

View File

@ -1021,7 +1021,7 @@ _efl_ui_widget_efl_canvas_object_is_frame_object_set(Eo *obj, Elm_Widget_Smart_D
}
EOLIAN static void
_efl_ui_widget_efl_canvas_object_clip_set(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, Evas_Object *clip)
_efl_ui_widget_efl_canvas_object_clipper_set(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, Evas_Object *clip)
{
Eina_Iterator *it;
Evas_Object *o;
@ -1029,7 +1029,7 @@ _efl_ui_widget_efl_canvas_object_clip_set(Eo *obj, Elm_Widget_Smart_Data *_pd EI
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
return;
efl_canvas_object_clip_set(efl_super(obj, MY_CLASS), clip);
efl_canvas_object_clipper_set(efl_super(obj, MY_CLASS), clip);
it = evas_object_smart_iterator_new(obj);
EINA_ITERATOR_FOREACH(it, o)
@ -5870,7 +5870,7 @@ _widget_shadow_update(Widget_Shadow *ws)
return;
}
efl_canvas_object_clip_set(ws->surface, efl_canvas_object_clip_get(ws->widget));
efl_canvas_object_clipper_set(ws->surface, efl_canvas_object_clipper_get(ws->widget));
efl_canvas_group_member_add(efl_canvas_object_render_parent_get(ws->widget), ws->surface);
efl_gfx_entity_geometry_set(ws->surface, srect);
efl_gfx_stack_below(ws->surface, ws->widget);

View File

@ -625,7 +625,7 @@ abstract @beta Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Obje
Efl.Gfx.Entity.position { set; }
Efl.Gfx.Entity.size { set; }
Efl.Gfx.Entity.scale { set; get; }
Efl.Canvas.Object.clip { set; }
Efl.Canvas.Object.clipper { set; }
Efl.Canvas.Object.no_render { set; }
Efl.Canvas.Group.group_calculate;
Efl.Canvas.Group.group_member_remove;

View File

@ -2130,6 +2130,19 @@ EAPI void evas_object_static_clip_set(Evas_Object *obj, Eina_Bool is_static_clip
*/
EAPI const Eina_List *evas_object_clipees_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT;
/**
* @brief Test if any object is clipped by @c obj.
*
* @param[in] obj The object.
*
* @return @c true if any object is clipped by @c obj, @c false otherwise
*
* @since 1.8
*
* @ingroup Evas_Object
*/
EAPI Eina_Bool evas_object_clipees_has(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT;
/** How the object should be rendered to output.
*
* @ingroup Evas

View File

@ -136,7 +136,7 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
Efl.Gfx.Color.color { set; }
Efl.Gfx.Entity.visible { set; }
Efl.Gfx.Entity.position { set; }
Efl.Canvas.Object.clip { set; }
Efl.Canvas.Object.clipper { set; }
Efl.Canvas.Object.no_render { set; }
Efl.Canvas.Object.paragraph_direction { get; set; }
}

View File

@ -86,7 +86,7 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
render_op: Efl.Gfx.Render_Op; [[Blend or copy.]]
}
}
@property clip {
@property clipper {
set {
[[Clip one object to another.
@ -128,6 +128,7 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
Note: Only rectangle and image (masks) objects can be used
as clippers. Anything else will result in undefined behaviour.
]]
legacy: evas_object_clip_set;
}
get {
[[Get the object clipping $obj (if any).
@ -136,9 +137,10 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
not being clipped at all, $null is returned. The object $obj
must be a valid Evas_Object.
]]
legacy: evas_object_clip_get;
}
values {
clip: Efl.Canvas.Object @nonull; [[The object to clip $obj by.]]
clipper: Efl.Canvas.Object @nonull; [[The object to clip $obj by.]]
}
}
@property repeat_events {
@ -348,7 +350,7 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
$false otherwise.]]
}
}
@property clipees {
@property clipped_objects {
get {
[[Return a list of objects currently clipped by $obj.
@ -363,7 +365,7 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
anymore after that point. Any use of the list after this
may have undefined results, possibly leading to crashes.
See also @.clip.
See also @.clipper.
]]
legacy: null;
return: iterator<Efl.Canvas.Object> @warn_unused; [[An iterator over the
@ -396,12 +398,11 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
dir: Efl.Text_Bidirectional_Type; [[Paragraph direction for the given object.]]
}
}
clipees_has @const {
[[Test if any object is clipped by $obj.
@since 1.8
clipped_objects_count @const {
[[Returns the number of objects clipped by $obj
]]
return: bool @warn_unused; [[$true if any object is clipped by $obj, $false otherwise]]
legacy: null;
return: uint @warn_unused; [[The number of objects clipped by $obj]]
}
key_grab {
/* FIXME: can't reference Eolian object, .eo file not being installed */

View File

@ -190,7 +190,7 @@ evas_object_mapped_clip_across_mark(Evas_Object *eo_obj, Evas_Object_Protected_D
}
static void
_efl_canvas_object_clip_mask_unset(Evas_Object_Protected_Data *obj)
_efl_canvas_object_clipper_mask_unset(Evas_Object_Protected_Data *obj)
{
EVAS_OBJECT_DATA_VALID_CHECK(obj);
if (!obj->mask->is_mask) return;
@ -218,7 +218,7 @@ extern const char *o_image_type;
static void _clipper_invalidated_cb(void *data, const Efl_Event *event);
Eina_Bool
_efl_canvas_object_clip_set_block(Eo *eo_obj, Evas_Object_Protected_Data *obj,
_efl_canvas_object_clipper_set_block(Eo *eo_obj, Evas_Object_Protected_Data *obj,
Evas_Object *eo_clip, Evas_Object_Protected_Data *clip)
{
if (!obj) obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
@ -259,7 +259,7 @@ err_type:
}
static inline void
_efl_canvas_object_clip_unset_common(Evas_Object_Protected_Data *obj, Eina_Bool warn)
_efl_canvas_object_clipper_unset_common(Evas_Object_Protected_Data *obj, Eina_Bool warn)
{
Evas_Object_Protected_Data *clip = obj->cur->clipper;
@ -302,7 +302,7 @@ _efl_canvas_object_clip_unset_common(Evas_Object_Protected_Data *obj, Eina_Bool
}
}
_efl_canvas_object_clip_mask_unset(clip);
_efl_canvas_object_clipper_mask_unset(clip);
}
evas_object_change(clip->object, clip);
if (obj->prev->clipper != clip)
@ -315,7 +315,7 @@ _efl_canvas_object_clip_unset_common(Evas_Object_Protected_Data *obj, Eina_Bool
}
EOLIAN void
_efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object *eo_clip)
_efl_canvas_object_clipper_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object *eo_clip)
{
Evas_Object_Protected_Data *clip;
@ -331,7 +331,7 @@ _efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Ob
return;
}
if (_efl_canvas_object_clip_set_block(eo_obj, obj, eo_clip, clip)) return;
if (_efl_canvas_object_clipper_set_block(eo_obj, obj, eo_clip, clip)) return;
if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 1, eo_clip)) return;
if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class &&
@ -341,7 +341,7 @@ _efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Ob
}
/* unset cur clipper */
_efl_canvas_object_clip_unset_common(obj, EINA_TRUE);
_efl_canvas_object_clipper_unset_common(obj, EINA_TRUE);
/* image object clipper */
if (clip->type == o_image_type)
@ -391,7 +391,7 @@ _efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Ob
}
EOLIAN Evas_Object *
_efl_canvas_object_clip_get(const Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
_efl_canvas_object_clipper_get(const Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
{
EVAS_OBJECT_DATA_ALIVE_CHECK(obj, NULL);
if (obj->cur->clipper)
@ -400,7 +400,7 @@ _efl_canvas_object_clip_get(const Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_
}
Eina_Bool
_efl_canvas_object_clip_unset_block(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
_efl_canvas_object_clipper_unset_block(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
{
if (!obj->cur->clipper)
return EINA_TRUE;
@ -414,14 +414,14 @@ _efl_canvas_object_clip_unset_block(Eo *eo_obj EINA_UNUSED, Evas_Object_Protecte
static void
_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj)
{
if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) return;
if (_efl_canvas_object_clipper_unset_block(eo_obj, obj)) return;
if (_evas_object_intercept_call_evas(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 1, NULL)) return;
if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class &&
obj->smart.smart->smart_class->clip_unset)
{
obj->smart.smart->smart_class->clip_unset(eo_obj);
}
_efl_canvas_object_clip_unset_common(obj, EINA_FALSE);
_efl_canvas_object_clipper_unset_common(obj, EINA_FALSE);
evas_object_update_bounding_box(eo_obj, obj, NULL);
evas_object_change(eo_obj, obj);
evas_object_clip_dirty(eo_obj, obj);
@ -469,7 +469,7 @@ _clipper_invalidated_cb(void *data, const Efl_Event *event)
}
void
_efl_canvas_object_clip_prev_reset(Evas_Object_Protected_Data *obj, Eina_Bool cur_prev)
_efl_canvas_object_clipper_prev_reset(Evas_Object_Protected_Data *obj, Eina_Bool cur_prev)
{
if (obj->prev->clipper)
{
@ -502,6 +502,13 @@ evas_object_clipees_get(const Evas_Object *eo_obj)
return answer;
}
EAPI Eina_Bool
evas_object_clipees_has(const Evas_Object *eo_obj)
{
Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj, EINA_FALSE);
return !!obj->clip.clipees;
}
typedef struct
{
Eina_Iterator iterator;
@ -536,7 +543,7 @@ _clipee_iterator_free(Clipee_Iterator *it)
}
EOLIAN Eina_Iterator *
_efl_canvas_object_clipees_get(const Eo *eo_obj, Evas_Object_Protected_Data *obj)
_efl_canvas_object_clipped_objects_get(const Eo *eo_obj, Evas_Object_Protected_Data *obj)
{
Clipee_Iterator *it;
@ -556,10 +563,10 @@ _efl_canvas_object_clipees_get(const Eo *eo_obj, Evas_Object_Protected_Data *obj
return &it->iterator;
}
EOLIAN Eina_Bool
_efl_canvas_object_clipees_has(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
EOLIAN unsigned int
_efl_canvas_object_clipped_objects_count(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
{
return (obj->clip.clipees ? EINA_TRUE : EINA_FALSE);
return eina_list_count(obj->clip.clipees);
}
EOLIAN void

View File

@ -194,7 +194,7 @@ _evas_object_intercept_call_internal(Evas_Object *eo_obj,
{
if (!internal)
{
if (_efl_canvas_object_clip_set_block(eo_obj, obj, eo_other, NULL))
if (_efl_canvas_object_clipper_set_block(eo_obj, obj, eo_other, NULL))
return 1;
}
if (!obj->interceptors) return 0;
@ -204,7 +204,7 @@ _evas_object_intercept_call_internal(Evas_Object *eo_obj,
{
if (!internal)
{
if (_efl_canvas_object_clip_unset_block(eo_obj, obj))
if (_efl_canvas_object_clipper_unset_block(eo_obj, obj))
return 1;
}
if (!obj->interceptors) return 0;

View File

@ -422,7 +422,7 @@ evas_object_cur_prev(Evas_Object_Protected_Data *obj)
map_write->prev = map_write->cur;
EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write);
}
_efl_canvas_object_clip_prev_reset(obj, EINA_TRUE);
_efl_canvas_object_clipper_prev_reset(obj, EINA_TRUE);
eina_cow_memcpy(evas_object_state_cow, (const Eina_Cow_Data **) &obj->prev, obj->cur);
}
@ -1095,7 +1095,7 @@ _efl_canvas_object_efl_object_invalidate(Eo *eo_obj, Evas_Object_Protected_Data
}
if (obj->cur && obj->cur->clipper) evas_object_clip_unset(eo_obj);
if (obj->prev) _efl_canvas_object_clip_prev_reset(obj, EINA_FALSE);
if (obj->prev) _efl_canvas_object_clipper_prev_reset(obj, EINA_FALSE);
if (obj->map) evas_object_map_set(eo_obj, NULL);
@ -2126,7 +2126,7 @@ _efl_canvas_object_efl_object_dbg_info_get(Eo *eo_obj, Evas_Object_Protected_Dat
pass_event = efl_canvas_object_pass_events_get(eo_obj);
repeat_event = efl_canvas_object_repeat_events_get(eo_obj);
propagate_event = efl_canvas_object_propagate_events_get(eo_obj);
clipees_has = efl_canvas_object_clipees_has(eo_obj);
clipees_has = evas_object_clipees_has(eo_obj);
EFL_DBG_INFO_APPEND(group, "Visibility", EINA_VALUE_TYPE_CHAR, visible);
@ -2205,7 +2205,7 @@ _efl_canvas_object_efl_object_dbg_info_get(Eo *eo_obj, Evas_Object_Protected_Dat
EFL_DBG_INFO_APPEND(group, "Has clipees", EINA_VALUE_TYPE_CHAR, clipees_has);
Evas_Object *clipper = NULL;
clipper = efl_canvas_object_clip_get(eo_obj);
clipper = efl_canvas_object_clipper_get(eo_obj);
EFL_DBG_INFO_APPEND(group, "Clipper", EINA_VALUE_TYPE_UINT64, (uintptr_t) clipper);
const Evas_Map *map = evas_object_map_get(eo_obj);

View File

@ -307,7 +307,7 @@ _efl_canvas_group_group_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Objec
if (o->clipped)
{
Evas_Object *clipper = _smart_clipper_get(o);
Eina_Bool had_clippees = efl_canvas_object_clipees_has(clipper);
Eina_Bool had_clippees = evas_object_clipees_has(clipper);
if (EINA_UNLIKELY(!clipper && !o->constructed))
{
@ -318,7 +318,7 @@ _efl_canvas_group_group_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Objec
if (clipper != eo_obj)
{
EINA_SAFETY_ON_NULL_RETURN(clipper);
efl_canvas_object_clip_set(eo_obj, clipper);
efl_canvas_object_clipper_set(eo_obj, clipper);
if (!had_clippees && smart->cur->visible)
efl_gfx_entity_visible_set(clipper, 1);
}
@ -369,8 +369,8 @@ _efl_canvas_group_group_member_remove(Eo *smart_obj, Evas_Smart_Data *_pd EINA_U
Evas_Object *clipper = _smart_clipper_get(o);
EINA_SAFETY_ON_NULL_RETURN(clipper);
efl_canvas_object_clip_set(eo_obj, NULL);
if (!efl_canvas_object_clipees_has(clipper))
efl_canvas_object_clipper_set(eo_obj, NULL);
if (!evas_object_clipees_has(clipper))
efl_gfx_entity_visible_set(clipper, 0);
}
@ -922,20 +922,20 @@ _efl_canvas_group_efl_gfx_entity_position_set(Eo *eo_obj, Evas_Smart_Data *o, Ei
}
EOLIAN static void
_efl_canvas_group_efl_canvas_object_clip_set(Eo *eo_obj, Evas_Smart_Data *o, Evas_Object *clip)
_efl_canvas_group_efl_canvas_object_clipper_set(Eo *eo_obj, Evas_Smart_Data *o, Evas_Object *clip)
{
EINA_SAFETY_ON_FALSE_RETURN(!clip || efl_isa(clip, EFL_CANVAS_OBJECT_CLASS));
if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
return;
efl_canvas_object_clip_set(efl_super(eo_obj, MY_CLASS), clip);
efl_canvas_object_clipper_set(efl_super(eo_obj, MY_CLASS), clip);
if (o->clipped)
{
Evas_Object *clipper = _smart_clipper_get(o);
EINA_SAFETY_ON_NULL_RETURN(clipper);
efl_canvas_object_clip_set(clipper, clip);
efl_canvas_object_clipper_set(clipper, clip);
}
}

View File

@ -1667,10 +1667,10 @@ void evas_font_draw_async_check(Evas_Object_Protected_Data *obj,
int x, int y, int w, int h, int ow, int oh,
Evas_Text_Props *intl_props, Eina_Bool do_async);
void _efl_canvas_object_clip_prev_reset(Evas_Object_Protected_Data *obj, Eina_Bool cur_prev);
void _efl_canvas_object_clipper_prev_reset(Evas_Object_Protected_Data *obj, Eina_Bool cur_prev);
Eina_Bool _efl_canvas_object_clip_set_block(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object *eo_clip, Evas_Object_Protected_Data *clip);
Eina_Bool _efl_canvas_object_clip_unset_block(Eo *eo_obj, Evas_Object_Protected_Data *obj);
Eina_Bool _efl_canvas_object_clipper_set_block(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object *eo_clip, Evas_Object_Protected_Data *clip);
Eina_Bool _efl_canvas_object_clipper_unset_block(Eo *eo_obj, Evas_Object_Protected_Data *obj);
Eina_Bool _efl_canvas_object_efl_gfx_entity_size_set_block(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Coord w, Evas_Coord h, Eina_Bool internal);
void _evas_focus_device_invalidate_cb(void *data, const Efl_Event *ev);

View File

@ -42,13 +42,13 @@ EFL_START_TEST(edje_test_masking)
edje_object_freeze(obj);
sub = edje_object_part_object_get(obj, "text");
edje_object_thaw(obj);
fail_if(!efl_canvas_object_clip_get(sub));
fail_if(!efl_canvas_object_clipper_get(sub));
/* test description.clip_to override */
edje_object_freeze(obj);
sub = edje_object_part_object_get(obj, "noclip");
edje_object_thaw(obj);
clip2 = efl_canvas_object_clip_get(sub);
clip2 = efl_canvas_object_clipper_get(sub);
fail_if(clip != clip2);
evas_free(evas);

View File

@ -80,7 +80,7 @@ EFL_START_TEST(evas_mask_test_setget)
}
fail_if(i != 1);
it = efl_canvas_object_clipees_get(mask);
it = efl_canvas_object_clipped_objects_get(mask);
i = 0;
EINA_ITERATOR_FOREACH(it, o)
{