_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
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),
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),
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),
_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);
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 *
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)
{
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);
}
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)
{