rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=720bf7ff93bf88933dfdd4ad9f3e908a551ac9f5
commit 720bf7ff93bf88933dfdd4ad9f3e908a551ac9f5 Author: Yeongjong Lee <[email protected]> Date: Fri Oct 6 11:14:17 2017 +0300 ewe: Add missing constructor/destructor code Summary: the constructor/destructor code seem to have been deleted this add the missing code now, the ruler come back and this fixes broken tests of eflete also see 694ee5a7590265eed33ed986c2f95271d6bb36a7 Test Plan: 1. Open project 2. Check that ruler is shown and make check Reviewers: rimmed Differential Revision: https://phab.enlightenment.org/D5254 --- src/lib/ewe_ruler.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib/ewe_ruler.eo | 1 + 2 files changed, 63 insertions(+) diff --git a/src/lib/ewe_ruler.c b/src/lib/ewe_ruler.c index 87b08cc0f..e2caf2678 100644 --- a/src/lib/ewe_ruler.c +++ b/src/lib/ewe_ruler.c @@ -1005,14 +1005,76 @@ ewe_ruler_add(Evas_Object *parent) EOLIAN static Eo* _ewe_ruler_efl_object_constructor(Eo *obj, Ewe_Ruler_Smart_Data *sd) { + const char *data_dir = NULL; + Eina_Strbuf *theme_path = NULL; + obj = efl_constructor(efl_super(obj, MY_CLASS)); sd->obj = obj; evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); + elm_widget_sub_object_parent_add(obj); + + data_dir = elm_app_data_dir_get(); + if (data_dir && strcmp(data_dir, "")) + { + theme_path = eina_strbuf_new(); + eina_strbuf_append_printf(theme_path, + "%s"EINA_PATH_SEP_S"themes"EINA_PATH_SEP_S"default"EINA_PATH_SEP_S"ewe.edj", + data_dir); + sd->theme_file = eina_strbuf_string_steal(theme_path); + eina_strbuf_free(theme_path); + } + else + { + sd->theme_file = strdup(EWE_THEME); + } + + sd->clip = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_smart_member_add(sd->clip, obj); + sd->bg = elm_layout_add(obj); + elm_layout_file_set(sd->bg, sd->theme_file, + "ewe/ruler/horizontal_background/default"); + evas_object_smart_member_add(sd->bg, obj); + + sd->horizontal = EINA_TRUE; + sd->geometry.width = 0; + sd->geometry.height = 0; + sd->geometry.x = 0; + sd->geometry.y = 0; + sd->ruler_visible = EINA_FALSE; + sd->size_changed = EINA_TRUE; + sd->text_changed = EINA_TRUE; + sd->position_changed = EINA_TRUE; + ewe_ruler_scale_add(obj, NULL); + return obj; } EOLIAN static void +_ewe_ruler_efl_object_destructor(Eo *obj, Ewe_Ruler_Smart_Data *sd) +{ + Ewe_Ruler_Scale *scale; + Ewe_Ruler_Marker *marker; + Eina_List *l, *ls; + + EINA_LIST_FOREACH_SAFE(sd->markers, l, ls, marker) + ewe_ruler_marker_del(obj, marker); + + EINA_LIST_FOREACH_SAFE(sd->scales, l, ls, scale) + ewe_ruler_scale_del(obj, scale); + + evas_object_smart_member_del(sd->clip); + evas_object_del(sd->clip); + + evas_object_smart_member_del(sd->bg); + evas_object_del(sd->bg); + + free(sd->theme_file); + + efl_destructor(efl_super(obj, MY_CLASS)); +} + +EOLIAN static void _ewe_ruler_class_constructor(Efl_Class *klass) { evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); diff --git a/src/lib/ewe_ruler.eo b/src/lib/ewe_ruler.eo index 6b27ca66a..bf791e04d 100644 --- a/src/lib/ewe_ruler.eo +++ b/src/lib/ewe_ruler.eo @@ -314,6 +314,7 @@ class Ewe.Ruler (Efl.Ui.Layout) implements { class.constructor; Efl.Object.constructor; + Efl.Object.destructor; Efl.Gfx.size { set; } Efl.Gfx.position { set; } Efl.Gfx.visible { set; } --
