forked from enlightenment/efl
efl_ui_bg: add Efl.Gfx.color_get.
Summary: since legacy elm_bg_color_set/get is changed to efl_gfx_color_set/get, efl_gfx_color_get also should get color of inner rect. @fix Test Plan: 1) run elementary test. 2) run Bg EO API(Efl.Ui.Bg) 3) set/unset "Bg color" check. 4) observe printed color values. Reviewers: jpeg, woohyun, cedric Differential Revision: https://phab.enlightenment.org/D5429
This commit is contained in:
parent
bed67ef0d0
commit
b8789e52ae
|
@ -382,11 +382,16 @@ static void
|
|||
_cb_check_changed_scale_type(void *data, const Efl_Event *ev)
|
||||
{
|
||||
Evas_Object *o_bg = data;
|
||||
int r, g, b, a;
|
||||
|
||||
if (efl_ui_check_selected_get(ev->object))
|
||||
efl_gfx_color_set(o_bg, 255, 128, 128, 255);
|
||||
else
|
||||
efl_gfx_color_set(o_bg, 0, 0, 0, 0);
|
||||
|
||||
efl_gfx_color_get(o_bg, &r, &g, &b, &a);
|
||||
printf("bg color: %d %d %d %d\n", r, g, b, a);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -431,7 +436,7 @@ test_bg_scale_type(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
|
|||
efl_gfx_size_hint_weight_set(efl_added, EFL_GFX_SIZE_HINT_EXPAND, 0.0),
|
||||
efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
|
||||
efl_pack(hbox, efl_added));
|
||||
|
||||
|
||||
rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
|
||||
efl_ui_radio_state_value_set(efl_added, EFL_UI_IMAGE_SCALE_TYPE_FIT_INSIDE),
|
||||
efl_ui_radio_group_add(efl_added, rdg),
|
||||
|
@ -440,7 +445,7 @@ test_bg_scale_type(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
|
|||
efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
|
||||
efl_pack(hbox, efl_added));
|
||||
|
||||
|
||||
|
||||
rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
|
||||
efl_ui_radio_state_value_set(efl_added, EFL_UI_IMAGE_SCALE_TYPE_FIT_OUTSIDE),
|
||||
efl_ui_radio_group_add(efl_added, rdg),
|
||||
|
@ -448,7 +453,7 @@ test_bg_scale_type(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
|
|||
efl_gfx_size_hint_weight_set(efl_added, EFL_GFX_SIZE_HINT_EXPAND, 0.0),
|
||||
efl_event_callback_add(efl_added, EFL_UI_RADIO_EVENT_CHANGED, _cb_radio_changed_scale_type, o_bg),
|
||||
efl_pack(hbox, efl_added));
|
||||
|
||||
|
||||
rd = efl_add(EFL_UI_RADIO_CLASS, hbox,
|
||||
efl_ui_radio_state_value_set(efl_added, EFL_UI_IMAGE_SCALE_TYPE_NONE),
|
||||
efl_ui_radio_group_add(efl_added, rdg),
|
||||
|
|
|
@ -98,6 +98,9 @@ EOLIAN static void
|
|||
_efl_ui_bg_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Bg_Data *priv)
|
||||
{
|
||||
|
||||
priv->rect = evas_object_rectangle_add(evas_object_evas_get(obj));
|
||||
evas_object_color_set(priv->rect, 0, 0, 0, 0);
|
||||
|
||||
efl_canvas_group_add(efl_super(obj, MY_CLASS));
|
||||
elm_widget_sub_object_parent_add(obj);
|
||||
elm_widget_can_focus_set(obj, EINA_FALSE);
|
||||
|
@ -108,6 +111,7 @@ _efl_ui_bg_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Bg_Data *priv)
|
|||
|
||||
if (!elm_layout_theme_set(obj, "bg", "base", elm_widget_style_get(obj)))
|
||||
CRI("Failed to set layout!");
|
||||
elm_layout_content_set(obj, "elm.swallow.rectangle", priv->rect);
|
||||
}
|
||||
|
||||
EAPI Evas_Object *
|
||||
|
@ -129,6 +133,20 @@ _efl_ui_bg_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Data *_pd EINA_UNUSED)
|
|||
return obj;
|
||||
}
|
||||
|
||||
/* FIXME: Efl.Canvas.group_member_add in Elm.Widget sets child's colors as the same
|
||||
* with that of obj. The color of resize_obj of Bg should not be changed
|
||||
* because actual color is the color of rectangle in resize_obj.
|
||||
*/
|
||||
EOLIAN static void
|
||||
_efl_ui_bg_efl_canvas_group_group_member_add(Eo *obj, Efl_Ui_Bg_Data *_pd EINA_UNUSED, Evas_Object *child)
|
||||
{
|
||||
efl_canvas_group_member_add(efl_super(obj, MY_CLASS), child);
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
if (wd->resize_obj == child)
|
||||
evas_object_color_set(child, 255, 255, 255, 255);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_ui_bg_efl_file_file_set(Eo *obj, Efl_Ui_Bg_Data *sd, const char *file, const char *group)
|
||||
{
|
||||
|
@ -265,31 +283,20 @@ elm_bg_color_set(Evas_Object *obj,
|
|||
int g,
|
||||
int b)
|
||||
{
|
||||
int a = 255;
|
||||
EFL_UI_BG_CHECK(obj);
|
||||
efl_gfx_color_set(obj, r, g, b, 255);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_bg_efl_gfx_color_set(Eo *obj, Efl_Ui_Bg_Data *sd, int r, int g, int b, int a)
|
||||
{
|
||||
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
|
||||
|
||||
// reset color
|
||||
if ((r == -1) && (g == -1) && (b == -1))
|
||||
{
|
||||
ELM_SAFE_FREE(sd->rect, evas_object_del);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!sd->rect)
|
||||
{
|
||||
sd->rect = evas_object_rectangle_add
|
||||
(evas_object_evas_get(wd->resize_obj));
|
||||
efl_gfx_visible_set(sd->rect, EINA_TRUE);
|
||||
elm_layout_content_set(obj, "elm.swallow.rectangle", sd->rect);
|
||||
elm_layout_sizing_eval(obj);
|
||||
}
|
||||
{
|
||||
r = g = b = a = 0;
|
||||
}
|
||||
efl_gfx_color_set(obj, r, g, b, a);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_bg_efl_gfx_color_set(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Data *sd, int r, int g, int b, int a)
|
||||
{
|
||||
evas_object_color_set(sd->rect, r, g, b, a);
|
||||
}
|
||||
|
||||
|
@ -303,6 +310,12 @@ elm_bg_color_get(const Evas_Object *obj,
|
|||
efl_gfx_color_get((Eo *) obj, r, g, b, NULL);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_ui_bg_efl_gfx_color_get(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Data *sd, int *r, int *g, int *b, int *a)
|
||||
{
|
||||
evas_object_color_get(sd->rect, r, g, b, a);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_bg_load_size_set(Evas_Object *obj, int w, int h)
|
||||
{
|
||||
|
|
|
@ -10,8 +10,9 @@ class Efl.Ui.Bg (Efl.Ui.Layout, Efl.Ui.Image)
|
|||
implements {
|
||||
class.constructor;
|
||||
Efl.Object.constructor;
|
||||
Efl.Canvas.Group.group_member_add;
|
||||
Efl.File.file { get; set; }
|
||||
Efl.Gfx.color { set; }
|
||||
Efl.Gfx.color { get; set; }
|
||||
Efl.Ui.Image.scale_type { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue