evas: Remove method group_color_set

Widgets should simply override efl_gfx_color_set and call
super all the way up to evas object.

Legacy compatibility with call interceptors and early call
abortion (eg. delete_me or obj->layer == NULL) are implemented
with an internal call. See the previous commit introducing the
API.
This commit is contained in:
Jean-Philippe Andre 2016-10-07 16:25:49 +09:00
parent 39949b022d
commit 52969ccd9b
11 changed files with 24 additions and 33 deletions

View File

@ -621,9 +621,12 @@ _efl_ui_image_efl_canvas_group_group_member_add(Eo *obj, Efl_Ui_Image_Data *sd,
}
EOLIAN static void
_efl_ui_image_efl_canvas_group_group_color_set(Eo *obj, Efl_Ui_Image_Data *sd, int r, int g, int b, int a)
_efl_ui_image_efl_gfx_color_set(Eo *obj, Efl_Ui_Image_Data *sd, int r, int g, int b, int a)
{
efl_canvas_group_color_set(efl_super(obj, MY_CLASS), r, g, b, a);
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 0, r, g, b, a))
return;
efl_gfx_color_set(efl_super(obj, MY_CLASS), r, g, b, a);
evas_object_color_set(sd->hit_rect, 0, 0, 0, 0);
evas_object_color_set(sd->img, r, g, b, a);

View File

@ -122,6 +122,7 @@ class Efl.Ui.Image (Elm.Widget, Efl.Ui.Clickable, Efl.Ui.Draggable,
Efl.File.file.set;
Efl.File.file.get;
Efl.File.mmap.set;
Efl.Gfx.color.set;
Efl.Gfx.View.view_size.get;
Efl.Image.Load.load_size.set;
Efl.Image.Load.load_size.get;
@ -143,7 +144,6 @@ class Efl.Ui.Image (Elm.Widget, Efl.Ui.Clickable, Efl.Ui.Draggable,
Efl.Canvas.Group.group_clip.set;
Efl.Canvas.Group.group_clip_unset;
Efl.Canvas.Group.group_show;
Efl.Canvas.Group.group_color.set;
Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;

View File

@ -559,11 +559,14 @@ _elm_widget_efl_canvas_group_group_hide(Eo *obj, Elm_Widget_Smart_Data *_pd)
}
EOLIAN static void
_elm_widget_efl_canvas_group_group_color_set(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, int r, int g, int b, int a)
_elm_widget_efl_gfx_color_set(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, int r, int g, int b, int a)
{
Eina_Iterator *it;
Evas_Object *o;
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 0, r, g, b, a))
return;
it = evas_object_smart_iterator_new(obj);
EINA_ITERATOR_FOREACH(it, o)
{

View File

@ -847,12 +847,12 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, Elm.Inter
Efl.Object.destructor;
Efl.Object.dbg_info_get;
Efl.Object.provider_find;
Efl.Gfx.color.set;
Efl.Canvas.Object.no_render.set;
Efl.Canvas.Group.group_hide;
Efl.Canvas.Group.group_calculate;
Efl.Canvas.Group.group_clip_unset;
Efl.Canvas.Group.group_show;
Efl.Canvas.Group.group_color.set;
Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_member_del;
Efl.Canvas.Group.group_add;

View File

@ -51,13 +51,13 @@ class Efl.Canvas.Video (Efl.Canvas.Group, Efl.File, Efl.Player, Efl.Image, Efl.I
}
implements {
Efl.Object.constructor;
Efl.Gfx.color.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_resize;
Efl.Canvas.Group.group_show;
Efl.Canvas.Group.group_hide;
Efl.Canvas.Group.group_color.set;
Efl.Canvas.Group.group_clip.set;
Efl.Canvas.Group.group_clip_unset;
Efl.File.file.set;

View File

@ -1966,8 +1966,12 @@ _efl_canvas_video_efl_canvas_group_group_hide(Evas_Object *obj EINA_UNUSED, Efl_
}
EOLIAN static void
_efl_canvas_video_efl_canvas_group_group_color_set(Evas_Object *obj EINA_UNUSED, Efl_Canvas_Video_Data *sd, int r, int g, int b, int a)
_efl_canvas_video_efl_gfx_color_set(Evas_Object *obj, Efl_Canvas_Video_Data *sd, int r, int g, int b, int a)
{
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 0, r, g, b, a))
return;
efl_gfx_color_set(efl_super(obj, MY_CLASS), r, g, b, a);
evas_object_color_set(sd->obj, r, g, b, a);
evas_object_color_set(sd->crop.clipper, r, g, b, a);
}

View File

@ -87,18 +87,6 @@ class Efl.Canvas.Group (Efl.Canvas.Object)
clip: Efl.Canvas.Object;
}
}
@property group_color {
set {
[[No description supplied by the EAPI.]]
legacy: null;
}
values {
r: int;
g: int;
b: int;
a: int;
}
}
group_show {
[[No description supplied by the EAPI.]]
legacy: null;

View File

@ -3,12 +3,12 @@ abstract Efl.Canvas.Group.Clipped (Efl.Canvas.Group)
[[Internal class representing a canvas object group with a clipper.]]
data: Evas_Object_Smart_Clipped_Data;
implements {
Efl.Gfx.color.set;
Efl.Canvas.Object.no_render.set;
Efl.Canvas.Group.group_hide;
Efl.Canvas.Group.group_clip.set;
Efl.Canvas.Group.group_clip_unset;
Efl.Canvas.Group.group_show;
Efl.Canvas.Group.group_color.set;
Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_member_del;
Efl.Canvas.Group.group_add;

View File

@ -1520,8 +1520,11 @@ _efl_canvas_object_efl_gfx_color_set(Eo *eo_obj, Evas_Object_Protected_Data *obj
}
EINA_COW_STATE_WRITE_END(obj, state_write, cur);
if (obj->is_smart)
efl_canvas_group_color_set(eo_obj, r, g, b, a);
if (obj->is_smart && obj->smart.smart->smart_class &&
obj->smart.smart->smart_class->color_set)
{
obj->smart.smart->smart_class->color_set(eo_obj, r, g, b, a);
}
evas_object_clip_dirty(eo_obj, obj);
if ((prev_a == 0) && (a == 0) && (obj->cur->render_op == EVAS_RENDER_BLEND)) return;

View File

@ -649,16 +649,6 @@ _efl_canvas_group_group_hide(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED)
if (s && s->smart_class->hide) s->smart_class->hide(eo_obj);
}
EOLIAN static void
_efl_canvas_group_group_color_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, int r, int g, int b, int a)
{
// If this function is reached, so we do nothing except trying to call
// the function of the legacy smart class.
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
Evas_Smart *s = obj->smart.smart;
if (s && s->smart_class->color_set) s->smart_class->color_set(eo_obj, r, g, b, a);
}
EOLIAN static void
_efl_canvas_group_group_clip_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Object *clip)
{

View File

@ -163,7 +163,7 @@ evas_object_smart_clipped_smart_color_set(Evas_Object *eo_obj, int r, int g, int
}
EOLIAN static void
_efl_canvas_group_clipped_efl_canvas_group_group_color_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, int r, int g, int b, int a)
_efl_canvas_group_clipped_efl_gfx_color_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, int r, int g, int b, int a)
{
evas_object_smart_clipped_smart_color_set(eo_obj, r, g, b, a);
}