From 8803040484721c15e5a7f48f4373b38d41d9d42e Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Wed, 29 Nov 2017 17:59:34 +0900 Subject: [PATCH] evas: Implement scale API in proper EO fashion This removes the internal function pointer for scale_update. This makes all relevant classes implement the scale API in EO. This removes the duplicate function in Efl.Canvas.Object and only uses the one from Efl.Ui.Base interface. This *seems* to be working as expected. Fingers crossed! PS: I don't like the name Efl.Ui.Base. It's an interface for a few common API's between Gfx, Canvas and UI levels... Maybe scale simply doesn't belong there. --- src/bin/elementary/test_gfx_filters.c | 4 +-- src/lib/edje/edje_text.c | 14 +++++----- src/lib/edje/edje_textblock.c | 10 +++---- src/lib/evas/Evas_Legacy.h | 30 +++++++++++++++++++++ src/lib/evas/canvas/efl_canvas_object.eo | 24 ++--------------- src/lib/evas/canvas/efl_canvas_text.eo | 6 +++-- src/lib/evas/canvas/efl_canvas_vg.c | 1 - src/lib/evas/canvas/evas_object_image.c | 1 - src/lib/evas/canvas/evas_object_line.c | 1 - src/lib/evas/canvas/evas_object_main.c | 20 ++++++++++---- src/lib/evas/canvas/evas_object_polygon.c | 1 - src/lib/evas/canvas/evas_object_rectangle.c | 1 - src/lib/evas/canvas/evas_object_smart.c | 1 - src/lib/evas/canvas/evas_object_text.c | 15 +++++------ src/lib/evas/canvas/evas_object_textblock.c | 16 +++++------ src/lib/evas/canvas/evas_object_textgrid.c | 16 +++++------ src/lib/evas/canvas/evas_text.eo | 4 ++- src/lib/evas/canvas/evas_textgrid.eo | 4 ++- src/lib/evas/include/evas_private.h | 2 -- 19 files changed, 90 insertions(+), 81 deletions(-) diff --git a/src/bin/elementary/test_gfx_filters.c b/src/bin/elementary/test_gfx_filters.c index ae7ee106b0..f87e38ed7f 100644 --- a/src/bin/elementary/test_gfx_filters.c +++ b/src/bin/elementary/test_gfx_filters.c @@ -453,7 +453,7 @@ test_gfx_filters(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve o = text = evas_object_text_add(evas_object_evas_get(win)); efl_event_callback_add(o, EFL_GFX_EVENT_RESIZE, _text_resize, NULL); efl_text_properties_font_set(o, "Sans:style=Bold", default_font_size); - efl_canvas_object_scale_set(text, elm_config_scale_get()); + efl_ui_scale_set(text, elm_config_scale_get()); efl_text_set(o, "EFL"); efl_gfx_visible_set(o, 1); efl_pack(box2, o); @@ -492,7 +492,7 @@ test_gfx_filters(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve efl_gfx_filter_data_set(o, prg_data[k].name, prg_data[k].value, prg_data[k].exec); evas_object_textblock_style_set(o, st); evas_object_textblock_text_markup_set(o, tbtxt); - efl_canvas_object_scale_set(o, elm_config_scale_get()); + efl_ui_scale_set(o, elm_config_scale_get()); efl_pack(box2, o); evas_object_resize(o, 1, 1); } diff --git a/src/lib/edje/edje_text.c b/src/lib/edje/edje_text.c index 3144a9e264..4cf2d83933 100644 --- a/src/lib/edje/edje_text.c +++ b/src/lib/edje/edje_text.c @@ -336,7 +336,7 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, if (inlined_font) efl_text_properties_font_source_set(ep->object, ed->path); else efl_text_properties_font_source_set(ep->object, NULL); - if (ep->part->scale) efl_canvas_object_scale_set(ep->object, TO_DOUBLE(sc)); + if (ep->part->scale) efl_ui_scale_set(ep->object, TO_DOUBLE(sc)); efl_text_set(ep->object, text); /* the fit shoult not depend on font size, because it give the differet @@ -366,7 +366,7 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, if (inlined_font) efl_text_properties_font_source_set(ep->object, ed->path); else efl_text_properties_font_source_set(ep->object, NULL); - if (ep->part->scale) efl_canvas_object_scale_set(ep->object, TO_DOUBLE(sc)); + if (ep->part->scale) efl_ui_scale_set(ep->object, TO_DOUBLE(sc)); efl_text_properties_font_set(ep->object, font, size); efl_text_set(ep->object, text); @@ -389,7 +389,7 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, if (inlined_font) efl_text_properties_font_source_set(ep->object, ed->path); else efl_text_properties_font_source_set(ep->object, NULL); - if (ep->part->scale) efl_canvas_object_scale_set(ep->object, TO_DOUBLE(sc)); + if (ep->part->scale) efl_ui_scale_set(ep->object, TO_DOUBLE(sc)); efl_text_properties_font_set(ep->object, font, size); part_get_geometry(ep, &tw, &th); @@ -401,7 +401,7 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, { int current; - if (ep->part->scale) efl_canvas_object_scale_set(ep->object, TO_DOUBLE(sc)); + if (ep->part->scale) efl_ui_scale_set(ep->object, TO_DOUBLE(sc)); efl_text_properties_font_set(ep->object, font, 10); part_get_geometry(ep, &tw, &th); @@ -423,7 +423,7 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, { current = (top + bottom) / 2; - if (ep->part->scale) efl_canvas_object_scale_set(ep->object, TO_DOUBLE(sc)); + if (ep->part->scale) efl_ui_scale_set(ep->object, TO_DOUBLE(sc)); efl_text_properties_font_set(ep->object, font, current); part_get_geometry(ep, &tw, &th); @@ -439,7 +439,7 @@ _edje_text_recalc_apply(Edje *ed, Edje_Real_Part *ep, { current++; - if (ep->part->scale) efl_canvas_object_scale_set(ep->object, TO_DOUBLE(sc)); + if (ep->part->scale) efl_ui_scale_set(ep->object, TO_DOUBLE(sc)); efl_text_properties_font_set(ep->object, font, current); part_get_geometry(ep, &tw, &th); @@ -488,7 +488,7 @@ arrange_text: if (inlined_font) efl_text_properties_font_source_set(ep->object, ed->path); else efl_text_properties_font_source_set(ep->object, NULL); - if (ep->part->scale) efl_canvas_object_scale_set(ep->object, TO_DOUBLE(sc)); + if (ep->part->scale) efl_ui_scale_set(ep->object, TO_DOUBLE(sc)); efl_text_properties_font_set(ep->object, font, size); efl_text_set(ep->object, text); diff --git a/src/lib/edje/edje_textblock.c b/src/lib/edje/edje_textblock.c index 0451099fa4..08d9092e5f 100644 --- a/src/lib/edje/edje_textblock.c +++ b/src/lib/edje/edje_textblock.c @@ -458,7 +458,7 @@ _edje_part_recalc_single_textblock(FLOAT_T sc, double s = base_s; if (ep->part->scale) base_s = TO_DOUBLE(sc); - efl_canvas_object_scale_set(ep->object, base_s); + efl_ui_scale_set(ep->object, base_s); efl_canvas_text_size_native_get(ep->object, &tw, &th); orig_s = base_s; @@ -467,7 +467,7 @@ _edje_part_recalc_single_textblock(FLOAT_T sc, { orig_s = _edje_part_recalc_single_textblock_scale_range_adjust(chosen_desc, base_s, orig_s * TO_INT(params->eval.w) / tw); - efl_canvas_object_scale_set(ep->object, orig_s); + efl_ui_scale_set(ep->object, orig_s); efl_canvas_text_size_native_get(ep->object, &tw, &th); } if (chosen_desc->text.fit_x) @@ -476,7 +476,7 @@ _edje_part_recalc_single_textblock(FLOAT_T sc, { s = _edje_part_recalc_single_textblock_scale_range_adjust(chosen_desc, base_s, orig_s * TO_INT(params->eval.w) / tw); - efl_canvas_object_scale_set(ep->object, s); + efl_ui_scale_set(ep->object, s); efl_canvas_text_size_native_get(ep->object, NULL, NULL); } } @@ -493,7 +493,7 @@ _edje_part_recalc_single_textblock(FLOAT_T sc, s = tmp_s; } - efl_canvas_object_scale_set(ep->object, s); + efl_ui_scale_set(ep->object, s); efl_canvas_text_size_native_get(ep->object, NULL, NULL); } } @@ -518,7 +518,7 @@ _edje_part_recalc_single_textblock(FLOAT_T sc, break; s = tmp_s; - efl_canvas_object_scale_set(ep->object, s); + efl_ui_scale_set(ep->object, s); efl_canvas_text_size_native_get(ep->object, &fw, &fh); i--; } diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index e900090b88..de7bf35d45 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -2181,6 +2181,36 @@ EAPI Evas_Render_Op evas_object_render_op_get(const Evas_Object *obj); */ EAPI Eina_Bool evas_object_static_clip_get(const Evas_Object *obj); +/** + * @brief Sets the scaling factor for an Evas object. Does not affect all + * objects. + * + * This will multiply the object's dimension by the given factor, thus altering + * its geometry (width and height). Useful when you want scalable UI elements, + * possibly at run time. + * + * @note Only text and textblock objects have scaling change handlers. Other + * objects won't change visually on this call. + * + * @param[in] obj The object. + * @param[in] scale The scaling factor. 1.0 means no scaling, default size. + * + * @ingroup Evas_Object + */ +EAPI void evas_object_scale_set(Evas_Object *obj, double scale); + +/** + * @brief Retrieves the scaling factor for the given Evas object. + * + * @param[in] obj The object. + * + * @return The scaling factor. 1.0 means no scaling, default size. + * + * @ingroup Evas_Object + */ +EAPI double evas_object_scale_get(const Evas_Object *obj); + + #include "canvas/efl_canvas_object.eo.legacy.h" /** diff --git a/src/lib/evas/canvas/efl_canvas_object.eo b/src/lib/evas/canvas/efl_canvas_object.eo index efb1981387..29d7357852 100644 --- a/src/lib/evas/canvas/efl_canvas_object.eo +++ b/src/lib/evas/canvas/efl_canvas_object.eo @@ -3,7 +3,7 @@ import efl_animation_types; abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Animator, Efl.Input.Interface, Efl.Gfx.Size.Hint, - Efl.Gfx.Map, Efl.Loop_User) + Efl.Gfx.Map, Efl.Loop_User, Efl.Ui.Base) { [[Efl canvas object abstract class]] legacy_prefix: evas_object; @@ -229,27 +229,6 @@ abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Animator, not ($false).]] } } - @property scale { - set { - [[Sets the scaling factor for an Evas object. Does not affect - all objects. - - This will multiply the object's dimension by the given factor, - thus altering its geometry (width and height). Useful when - you want scalable UI elements, possibly at run time. - - Note: Only text and textblock objects have scaling change - handlers. Other objects won't change visually on this call. - ]] - } - get { - [[Retrieves the scaling factor for the given Evas object.]] - } - values { - scale: double; [[The scaling factor. 1.0 means no scaling, - default size.]] - } - } @property key_focus { [[Indicates that this object is the keyboard event receiver on its canvas. @@ -703,6 +682,7 @@ abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Animator, Efl.Gfx.Size.Hint.hint_max { get; set; } Efl.Gfx.Size.Hint.hint_margin { get; set; } Efl.Gfx.Size.Hint.hint_weight { get; set; } + Efl.Ui.Base.scale { get; set; } Efl.Input.Interface.seat_event_filter { get; set; } Efl.Loop_User.loop { get; } } diff --git a/src/lib/evas/canvas/efl_canvas_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo index e401577d18..7d04742ba2 100644 --- a/src/lib/evas/canvas/efl_canvas_text.eo +++ b/src/lib/evas/canvas/efl_canvas_text.eo @@ -3,8 +3,9 @@ import efl_text_types; struct Efl.Canvas.Text.Style; [[EFL text style data structure]] class Efl.Canvas.Text (Efl.Canvas.Object, Efl.Text, Efl.Text.Properties, -Efl.Canvas.Filter.Internal, Efl.Text.Font, Efl.Text.Style, Efl.Text.Format, -Efl.Text.Cursor, Efl.Text.Annotate, Efl.Text.Markup) + Efl.Canvas.Filter.Internal, Efl.Text.Font, + Efl.Text.Style, Efl.Text.Format, Efl.Text.Cursor, + Efl.Text.Annotate, Efl.Text.Markup, Efl.Ui.Base) { [[Efl canvas text class]] legacy_prefix: evas_object_textblock; @@ -350,6 +351,7 @@ Efl.Text.Cursor, Efl.Text.Annotate, Efl.Text.Markup) Efl.Text.Annotate.cursor_object_item_insert; Efl.Text.Markup.markup { set; get; } Efl.Text.Markup.cursor_markup_insert; + Efl.Ui.Base.scale { set; } } events { cursor,changed; [[Called when cursor changed]] diff --git a/src/lib/evas/canvas/efl_canvas_vg.c b/src/lib/evas/canvas/efl_canvas_vg.c index 4d204edd41..c8a83acbb1 100644 --- a/src/lib/evas/canvas/efl_canvas_vg.c +++ b/src/lib/evas/canvas/efl_canvas_vg.c @@ -57,7 +57,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, - NULL, NULL, // render_prepare NULL }; diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 9c464ac881..e565baf9b0 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -75,7 +75,6 @@ static const Evas_Object_Func object_func = evas_object_image_is_inside, NULL, NULL, - NULL, evas_object_image_has_opaque_rect, evas_object_image_get_opaque_rect, evas_object_image_can_map, diff --git a/src/lib/evas/canvas/evas_object_line.c b/src/lib/evas/canvas/evas_object_line.c index 1790fbf8b1..f6f9d573a8 100644 --- a/src/lib/evas/canvas/evas_object_line.c +++ b/src/lib/evas/canvas/evas_object_line.c @@ -84,7 +84,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, - NULL, NULL, // render_prepare NULL }; diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index bb6eee1014..01fb1e4c04 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -2218,7 +2218,7 @@ _efl_canvas_object_anti_alias_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_ } EOLIAN static void -_efl_canvas_object_scale_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, double scale) +_efl_canvas_object_efl_ui_base_scale_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, double scale) { if (obj->delete_me) return; if (EINA_DBL_EQ(obj->cur->scale, scale)) return; @@ -2229,13 +2229,11 @@ _efl_canvas_object_scale_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, double state_write->scale = scale; } EINA_COW_STATE_WRITE_END(obj, state_write, cur); - evas_object_change(eo_obj, obj); - if (obj->func->scale_update) obj->func->scale_update(eo_obj, obj, obj->private_data); } EOLIAN static double -_efl_canvas_object_scale_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj) +_efl_canvas_object_efl_ui_base_scale_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj) { if (obj->delete_me) return 1.0; return obj->cur->scale; @@ -2309,7 +2307,7 @@ _efl_canvas_object_efl_object_dbg_info_get(Eo *eo_obj, Evas_Object_Protected_Dat layer = efl_gfx_stack_layer_get(eo_obj); name = efl_name_get(eo_obj); // evas_object_name_get(eo_obj); geom = efl_gfx_geometry_get(eo_obj); - scale = efl_canvas_object_scale_get(eo_obj); + scale = efl_ui_scale_get(eo_obj); min = efl_gfx_size_hint_restricted_min_get(eo_obj); max = efl_gfx_size_hint_max_get(eo_obj); //efl_gfx_size_hint_request_get(eo_obj, &requestw, &requesth); @@ -2970,6 +2968,18 @@ evas_object_evas_get(const Eo *eo_obj) return efl_provider_find((Eo *) eo_obj, EVAS_CANVAS_CLASS); } +EAPI void +evas_object_scale_set(Evas_Object *obj, double scale) +{ + efl_ui_scale_set(obj, scale); +} + +EAPI double +evas_object_scale_get(const Evas_Object *obj) +{ + return efl_ui_scale_get(obj); +} + /* Internal EO APIs and hidden overrides */ EOAPI EFL_VOID_FUNC_BODY(efl_canvas_object_legacy_ctor) diff --git a/src/lib/evas/canvas/evas_object_polygon.c b/src/lib/evas/canvas/evas_object_polygon.c index bc135d90e4..b1649de152 100644 --- a/src/lib/evas/canvas/evas_object_polygon.c +++ b/src/lib/evas/canvas/evas_object_polygon.c @@ -74,7 +74,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, - NULL, NULL, // render_prepare NULL }; diff --git a/src/lib/evas/canvas/evas_object_rectangle.c b/src/lib/evas/canvas/evas_object_rectangle.c index 365b0f5015..d9e0d28b64 100644 --- a/src/lib/evas/canvas/evas_object_rectangle.c +++ b/src/lib/evas/canvas/evas_object_rectangle.c @@ -82,7 +82,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, - NULL, NULL, // render_prepare evas_object_rectangle_render2_walk }; diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 3ab72277e7..3f4dab57a9 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -120,7 +120,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, - NULL, NULL, // render_prepare NULL }; diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c index 47f37ff81c..f0bf953e54 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -114,9 +114,6 @@ static int evas_object_text_was_opaque(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, void *type_private_data); -static void evas_object_text_scale_update(Evas_Object *eo_obj, - Evas_Object_Protected_Data *obj, - void *type_private_data); static void _evas_object_text_recalc(Evas_Object *eo_obj, Eina_Unicode *text); static const Evas_Object_Func object_func = @@ -139,7 +136,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, - evas_object_text_scale_update, NULL, NULL, NULL, @@ -2217,15 +2213,16 @@ evas_object_text_was_opaque(Evas_Object *eo_obj EINA_UNUSED, return 0; } -static void -evas_object_text_scale_update(Evas_Object *eo_obj, - Evas_Object_Protected_Data *pd EINA_UNUSED, - void *type_private_data) +EOLIAN static void +_evas_text_efl_ui_base_scale_set(Evas_Object *eo_obj, Evas_Text_Data *o, + double scale) { - Evas_Text_Data *o = type_private_data; int size; const char *font; + if (EINA_DBL_EQ(efl_ui_scale_get(eo_obj), scale)) return; + efl_ui_scale_set(efl_super(eo_obj, MY_CLASS), scale); + font = eina_stringshare_add(o->cur.font); size = o->cur.size; if (o->cur.font) eina_stringshare_del(o->cur.font); diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 041701334c..37cbd34f55 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -708,9 +708,6 @@ static int evas_object_textblock_was_opaque(Evas_Object *eo_obj, static void evas_object_textblock_coords_recalc(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, void *type_private_data); -static void evas_object_textblock_scale_update(Evas_Object *eo_obj, - Evas_Object_Protected_Data *obj, - void *type_private_data); static const Evas_Object_Func object_func = { @@ -732,7 +729,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, /*evas_object_textblock_coords_recalc, <- disable - not useful. */ - evas_object_textblock_scale_update, NULL, NULL, NULL, @@ -14603,12 +14599,14 @@ evas_object_textblock_was_opaque(Evas_Object *eo_obj EINA_UNUSED, return 0; } -static void -evas_object_textblock_scale_update(Evas_Object *eo_obj EINA_UNUSED, - Evas_Object_Protected_Data *obj EINA_UNUSED, - void *type_private_data) +EOLIAN static void +_efl_canvas_text_efl_ui_base_scale_set(Evas_Object *eo_obj, + Efl_Canvas_Text_Data *o, + double scale) { - Efl_Canvas_Text_Data *o = type_private_data; + if (EINA_DBL_EQ(efl_ui_scale_get(eo_obj), scale)) return; + efl_ui_scale_set(efl_super(eo_obj, MY_CLASS), scale); + _evas_textblock_invalidate_all(o); _evas_textblock_changed(o, eo_obj); o->last_w = -1; diff --git a/src/lib/evas/canvas/evas_object_textgrid.c b/src/lib/evas/canvas/evas_object_textgrid.c index e0404a67af..df880c3e5f 100644 --- a/src/lib/evas/canvas/evas_object_textgrid.c +++ b/src/lib/evas/canvas/evas_object_textgrid.c @@ -113,10 +113,6 @@ static int evas_object_textgrid_was_opaque(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, void *type_private_data); -static void evas_object_textgrid_scale_update(Evas_Object *eo_obj, - Evas_Object_Protected_Data *pd, - void *type_private_data); - static const Evas_Object_Func object_func = { /* methods (compulsory) */ @@ -137,7 +133,6 @@ static const Evas_Object_Func object_func = NULL, NULL, NULL, - evas_object_textgrid_scale_update, NULL, NULL, NULL, @@ -876,15 +871,16 @@ evas_object_textgrid_was_opaque(Evas_Object *eo_obj EINA_UNUSED, return 0; } -static void -evas_object_textgrid_scale_update(Evas_Object *eo_obj, - Evas_Object_Protected_Data *pd EINA_UNUSED, - void *type_private_data) +EOLIAN static void +_evas_textgrid_efl_ui_base_scale_set(Evas_Object *eo_obj, Evas_Textgrid_Data *o, + double scale) { int font_size; const char *font_name; - Evas_Textgrid_Data *o = type_private_data; + if (EINA_DBL_EQ(efl_ui_scale_get(eo_obj), scale)) return; + efl_ui_scale_set(efl_super(eo_obj, MY_CLASS), scale); + font_name = eina_stringshare_add(o->cur.font_name); font_size = o->cur.font_size; if (o->cur.font_name) eina_stringshare_del(o->cur.font_name); diff --git a/src/lib/evas/canvas/evas_text.eo b/src/lib/evas/canvas/evas_text.eo index 68623a672e..b36218d969 100644 --- a/src/lib/evas/canvas/evas_text.eo +++ b/src/lib/evas/canvas/evas_text.eo @@ -1,6 +1,7 @@ type @extern Evas.Text_Style_Type : __undefined_type; [[External text style type]] -class Evas.Text (Efl.Canvas.Object, Efl.Text, Efl.Text.Properties, Efl.Text.Font, Efl.Canvas.Filter.Internal) +class Evas.Text (Efl.Canvas.Object, Efl.Text, Efl.Text.Properties, + Efl.Text.Font, Efl.Canvas.Filter.Internal, Efl.Ui.Base) { [[Evas text class]] legacy_prefix: evas_object_text; @@ -281,5 +282,6 @@ class Evas.Text (Efl.Canvas.Object, Efl.Text, Efl.Text.Properties, Efl.Text.Font Efl.Canvas.Filter.Internal.filter_input_render; Efl.Canvas.Filter.Internal.filter_state_prepare; Efl.Canvas.Object.paragraph_direction { set; get; } + Efl.Ui.Base.scale { set; } } } diff --git a/src/lib/evas/canvas/evas_textgrid.eo b/src/lib/evas/canvas/evas_textgrid.eo index 1bf9afa330..dcc2a8274b 100644 --- a/src/lib/evas/canvas/evas_textgrid.eo +++ b/src/lib/evas/canvas/evas_textgrid.eo @@ -20,7 +20,8 @@ enum Evas.Textgrid.Font_Style { /* XXX: Actual definition is in C. */ struct Evas.Textgrid.Cell; [[Evas textgrid cell data structure]] -class Evas.Textgrid (Efl.Canvas.Object, Efl.Text.Properties, Efl.Text.Font) +class Evas.Textgrid (Efl.Canvas.Object, Efl.Text.Properties, Efl.Text.Font, + Efl.Ui.Base) { [[Evas textgrid class]] legacy_prefix: evas_object_textgrid; @@ -201,5 +202,6 @@ class Evas.Textgrid (Efl.Canvas.Object, Efl.Text.Properties, Efl.Text.Font) Efl.Text.Properties.font { get; set; } Efl.Text.Properties.font_source { get; set; } Efl.Text.Font.font_bitmap_scalable { get; set; } + Efl.Ui.Base.scale { set; } } } diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 43d378511b..6753931f34 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1265,8 +1265,6 @@ struct _Evas_Object_Func void (*coords_recalc) (Evas_Object *obj, Evas_Object_Protected_Data *pd, void *type_private_data); - void (*scale_update) (Evas_Object *obj, Evas_Object_Protected_Data *pd, void *type_private_data); - int (*has_opaque_rect) (Evas_Object *obj, Evas_Object_Protected_Data *pd, void *type_private_data); int (*get_opaque_rect) (Evas_Object *obj, Evas_Object_Protected_Data *pd, void *type_private_data, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);