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

View File

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

View File

@ -81,8 +81,8 @@ static void
_recover_status(Eo *obj, Efl_Ui_Image_Data *sd) _recover_status(Eo *obj, Efl_Ui_Image_Data *sd)
{ {
int r, g, b, a; int r, g, b, a;
Evas_Object *pclip = efl_canvas_object_clip_get(obj); Evas_Object *pclip = efl_canvas_object_clipper_get(obj);
if (pclip) efl_canvas_object_clip_set(sd->img, pclip); if (pclip) efl_canvas_object_clipper_set(sd->img, pclip);
efl_gfx_color_get(obj, &r, &g, &b, &a); efl_gfx_color_get(obj, &r, &g, &b, &a);
efl_gfx_color_set(sd->img, 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 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)) if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
return; 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->img) evas_object_clip_set(sd->img, clip);
if (sd->prev_img) evas_object_clip_set(sd->prev_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_size_min;
Efl.Layout.Calc.calc_parts_extends; Efl.Layout.Calc.calc_parts_extends;
Efl.Layout.Calc.calc_force; Efl.Layout.Calc.calc_force;
Efl.Canvas.Object.clip { set; } Efl.Canvas.Object.clipper { set; }
Efl.Canvas.Group.group_member_add; Efl.Canvas.Group.group_member_add;
Efl.Ui.Draggable.drag_target { get; set; } Efl.Ui.Draggable.drag_target { get; set; }
Efl.Ui.Property_Bind.property_bind; 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)); evas_object_evas_get(obj));
efl_canvas_group_member_add(pd->page_root, pd->foreclip); efl_canvas_group_member_add(pd->page_root, pd->foreclip);
evas_object_static_clip_set(pd->foreclip, EINA_TRUE); 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, pd->backclip = efl_add(EFL_CANVAS_RECTANGLE_CLASS,
evas_object_evas_get(obj)); 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) if (pd->cnt == 1)
efl_pack(pd->page_box, subobj); 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) if (pd->indicator)
@ -429,7 +429,7 @@ _efl_ui_pager_efl_pack_linear_pack_end(Eo *obj EINA_UNUSED,
{ {
if (pd->cnt == 1) if (pd->cnt == 1)
efl_pack(pd->page_box, subobj); 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) if (pd->indicator)
@ -456,7 +456,7 @@ _efl_ui_pager_efl_pack_linear_pack_before(Eo *obj EINA_UNUSED,
if (pd->transition) if (pd->transition)
efl_page_transition_update(pd->transition, pd->curr.pos); 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) if (pd->indicator)
efl_page_indicator_pack(pd->indicator, index); 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) if (pd->transition)
efl_page_transition_update(pd->transition, pd->curr.pos); 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) if (pd->indicator)
efl_page_indicator_pack(pd->indicator, (index + 1)); 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) if (pd->transition)
efl_page_transition_update(pd->transition, pd->curr.pos); 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) if (pd->indicator)
efl_page_indicator_pack(pd->indicator, index); 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); curr = eina_list_nth(pd->content_list, pd->curr.page);
efl_pack_unpack(pd->page_box, curr); 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; pd->curr.page = index;
curr = eina_list_nth(pd->content_list, pd->curr.page); 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); curr = eina_list_nth(pd->content_list, pd->curr.page);
efl_pack_unpack(pd->page_box, curr); 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; pd->transition = transition;
@ -628,11 +628,11 @@ _efl_ui_pager_transition_set(Eo *obj,
_event_handler_del(obj, pd); _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) 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); 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_canvas_group_member_add(smart, ob);
efl_gfx_stack_above(ob, obj); 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); efl_canvas_object_pass_events_set(ob, EINA_TRUE);
rect->obj = ob; 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 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; Eina_Iterator *it;
Evas_Object *o; 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)) if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
return; 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); it = evas_object_smart_iterator_new(obj);
EINA_ITERATOR_FOREACH(it, o) EINA_ITERATOR_FOREACH(it, o)
@ -5870,7 +5870,7 @@ _widget_shadow_update(Widget_Shadow *ws)
return; 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_canvas_group_member_add(efl_canvas_object_render_parent_get(ws->widget), ws->surface);
efl_gfx_entity_geometry_set(ws->surface, srect); efl_gfx_entity_geometry_set(ws->surface, srect);
efl_gfx_stack_below(ws->surface, ws->widget); 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.position { set; }
Efl.Gfx.Entity.size { set; } Efl.Gfx.Entity.size { set; }
Efl.Gfx.Entity.scale { set; get; } Efl.Gfx.Entity.scale { set; get; }
Efl.Canvas.Object.clip { set; } Efl.Canvas.Object.clipper { set; }
Efl.Canvas.Object.no_render { set; } Efl.Canvas.Object.no_render { set; }
Efl.Canvas.Group.group_calculate; Efl.Canvas.Group.group_calculate;
Efl.Canvas.Group.group_member_remove; 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; 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. /** How the object should be rendered to output.
* *
* @ingroup Evas * @ingroup Evas

View File

@ -136,7 +136,7 @@ class @beta Efl.Canvas.Group extends Efl.Canvas.Object
Efl.Gfx.Color.color { set; } Efl.Gfx.Color.color { set; }
Efl.Gfx.Entity.visible { set; } Efl.Gfx.Entity.visible { set; }
Efl.Gfx.Entity.position { 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.no_render { set; }
Efl.Canvas.Object.paragraph_direction { get; 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.]] render_op: Efl.Gfx.Render_Op; [[Blend or copy.]]
} }
} }
@property clip { @property clipper {
set { set {
[[Clip one object to another. [[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 Note: Only rectangle and image (masks) objects can be used
as clippers. Anything else will result in undefined behaviour. as clippers. Anything else will result in undefined behaviour.
]] ]]
legacy: evas_object_clip_set;
} }
get { get {
[[Get the object clipping $obj (if any). [[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 not being clipped at all, $null is returned. The object $obj
must be a valid Evas_Object. must be a valid Evas_Object.
]] ]]
legacy: evas_object_clip_get;
} }
values { 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 { @property repeat_events {
@ -348,7 +350,7 @@ abstract @beta Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.En
$false otherwise.]] $false otherwise.]]
} }
} }
@property clipees { @property clipped_objects {
get { get {
[[Return a list of objects currently clipped by $obj. [[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 anymore after that point. Any use of the list after this
may have undefined results, possibly leading to crashes. may have undefined results, possibly leading to crashes.
See also @.clip. See also @.clipper.
]] ]]
legacy: null; legacy: null;
return: iterator<Efl.Canvas.Object> @warn_unused; [[An iterator over the 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.]] dir: Efl.Text_Bidirectional_Type; [[Paragraph direction for the given object.]]
} }
} }
clipees_has @const { clipped_objects_count @const {
[[Test if any object is clipped by $obj. [[Returns the number of objects clipped by $obj
@since 1.8
]] ]]
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 { key_grab {
/* FIXME: can't reference Eolian object, .eo file not being installed */ /* 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 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); EVAS_OBJECT_DATA_VALID_CHECK(obj);
if (!obj->mask->is_mask) return; 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); static void _clipper_invalidated_cb(void *data, const Efl_Event *event);
Eina_Bool 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) Evas_Object *eo_clip, Evas_Object_Protected_Data *clip)
{ {
if (!obj) obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); if (!obj) obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
@ -259,7 +259,7 @@ err_type:
} }
static inline void 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; 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); evas_object_change(clip->object, clip);
if (obj->prev->clipper != 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 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; 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; 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 (_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 && 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 */ /* unset cur clipper */
_efl_canvas_object_clip_unset_common(obj, EINA_TRUE); _efl_canvas_object_clipper_unset_common(obj, EINA_TRUE);
/* image object clipper */ /* image object clipper */
if (clip->type == o_image_type) 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 * 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); EVAS_OBJECT_DATA_ALIVE_CHECK(obj, NULL);
if (obj->cur->clipper) if (obj->cur->clipper)
@ -400,7 +400,7 @@ _efl_canvas_object_clip_get(const Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_
} }
Eina_Bool 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) if (!obj->cur->clipper)
return EINA_TRUE; return EINA_TRUE;
@ -414,14 +414,14 @@ _efl_canvas_object_clip_unset_block(Eo *eo_obj EINA_UNUSED, Evas_Object_Protecte
static void static void
_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) _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 (_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 && 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)
{ {
obj->smart.smart->smart_class->clip_unset(eo_obj); 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_update_bounding_box(eo_obj, obj, NULL);
evas_object_change(eo_obj, obj); evas_object_change(eo_obj, obj);
evas_object_clip_dirty(eo_obj, obj); evas_object_clip_dirty(eo_obj, obj);
@ -469,7 +469,7 @@ _clipper_invalidated_cb(void *data, const Efl_Event *event)
} }
void 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) if (obj->prev->clipper)
{ {
@ -502,6 +502,13 @@ evas_object_clipees_get(const Evas_Object *eo_obj)
return answer; 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 typedef struct
{ {
Eina_Iterator iterator; Eina_Iterator iterator;
@ -536,7 +543,7 @@ _clipee_iterator_free(Clipee_Iterator *it)
} }
EOLIAN Eina_Iterator * 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; Clipee_Iterator *it;
@ -556,10 +563,10 @@ _efl_canvas_object_clipees_get(const Eo *eo_obj, Evas_Object_Protected_Data *obj
return &it->iterator; return &it->iterator;
} }
EOLIAN Eina_Bool EOLIAN unsigned int
_efl_canvas_object_clipees_has(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj) _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 EOLIAN void

View File

@ -194,7 +194,7 @@ _evas_object_intercept_call_internal(Evas_Object *eo_obj,
{ {
if (!internal) 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; return 1;
} }
if (!obj->interceptors) return 0; if (!obj->interceptors) return 0;
@ -204,7 +204,7 @@ _evas_object_intercept_call_internal(Evas_Object *eo_obj,
{ {
if (!internal) if (!internal)
{ {
if (_efl_canvas_object_clip_unset_block(eo_obj, obj)) if (_efl_canvas_object_clipper_unset_block(eo_obj, obj))
return 1; return 1;
} }
if (!obj->interceptors) return 0; 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; map_write->prev = map_write->cur;
EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write); 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); 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->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); 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); pass_event = efl_canvas_object_pass_events_get(eo_obj);
repeat_event = efl_canvas_object_repeat_events_get(eo_obj); repeat_event = efl_canvas_object_repeat_events_get(eo_obj);
propagate_event = efl_canvas_object_propagate_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); 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); EFL_DBG_INFO_APPEND(group, "Has clipees", EINA_VALUE_TYPE_CHAR, clipees_has);
Evas_Object *clipper = NULL; 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); EFL_DBG_INFO_APPEND(group, "Clipper", EINA_VALUE_TYPE_UINT64, (uintptr_t) clipper);
const Evas_Map *map = evas_object_map_get(eo_obj); 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) if (o->clipped)
{ {
Evas_Object *clipper = _smart_clipper_get(o); 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)) 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) if (clipper != eo_obj)
{ {
EINA_SAFETY_ON_NULL_RETURN(clipper); 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) if (!had_clippees && smart->cur->visible)
efl_gfx_entity_visible_set(clipper, 1); 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); Evas_Object *clipper = _smart_clipper_get(o);
EINA_SAFETY_ON_NULL_RETURN(clipper); EINA_SAFETY_ON_NULL_RETURN(clipper);
efl_canvas_object_clip_set(eo_obj, NULL); efl_canvas_object_clipper_set(eo_obj, NULL);
if (!efl_canvas_object_clipees_has(clipper)) if (!evas_object_clipees_has(clipper))
efl_gfx_entity_visible_set(clipper, 0); 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 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)); 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)) if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_CLIP_SET, 0, clip))
return; 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) if (o->clipped)
{ {
Evas_Object *clipper = _smart_clipper_get(o); Evas_Object *clipper = _smart_clipper_get(o);
EINA_SAFETY_ON_NULL_RETURN(clipper); 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, int x, int y, int w, int h, int ow, int oh,
Evas_Text_Props *intl_props, Eina_Bool do_async); 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_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_clip_unset_block(Eo *eo_obj, Evas_Object_Protected_Data *obj); 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); 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); 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); edje_object_freeze(obj);
sub = edje_object_part_object_get(obj, "text"); sub = edje_object_part_object_get(obj, "text");
edje_object_thaw(obj); 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 */ /* test description.clip_to override */
edje_object_freeze(obj); edje_object_freeze(obj);
sub = edje_object_part_object_get(obj, "noclip"); sub = edje_object_part_object_get(obj, "noclip");
edje_object_thaw(obj); edje_object_thaw(obj);
clip2 = efl_canvas_object_clip_get(sub); clip2 = efl_canvas_object_clipper_get(sub);
fail_if(clip != clip2); fail_if(clip != clip2);
evas_free(evas); evas_free(evas);

View File

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