From da16711974463de030a96e020465021e8c0885d8 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 4 Mar 2019 13:36:25 -0500 Subject: [PATCH] efl.ui.layout: fix theme.get implementation (+unit test) Summary: ref T7512 Reviewers: cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7512 Differential Revision: https://phab.enlightenment.org/D8059 --- src/lib/elementary/efl_ui_layout.c | 8 ++++++++ src/lib/elementary/efl_ui_layout_base.eo | 3 --- src/tests/elementary/efl_ui_test_layout.c | 17 +++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index eea91fe1ca..17260f44b2 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -912,6 +912,14 @@ _efl_ui_layout_efl_file_mmap_get(const Eo *obj, void *_pd EINA_UNUSED) return efl_file_mmap_get(wd->resize_obj); } +EOLIAN static void +_efl_ui_layout_base_theme_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, const char **klass, const char **group, const char **style) +{ + if (klass) *klass = elm_widget_theme_klass_get(obj); + if (group) *group = elm_widget_theme_element_get(obj); + if (style) *style = elm_widget_theme_style_get(obj); +} + EOLIAN static Efl_Ui_Theme_Apply_Result _efl_ui_layout_base_theme_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *klass, const char *group, const char *style) { diff --git a/src/lib/elementary/efl_ui_layout_base.eo b/src/lib/elementary/efl_ui_layout_base.eo index 22ab3efce9..4ad9edbca5 100644 --- a/src/lib/elementary/efl_ui_layout_base.eo +++ b/src/lib/elementary/efl_ui_layout_base.eo @@ -34,12 +34,9 @@ abstract @beta Efl.Ui.Layout_Base extends Efl.Ui.Widget implements Efl.Container [[Whether the style was successfully applied or not, see the values of @Efl.Ui.Theme_Apply_Result for more information.]] } - /* - TODO: get { [[Get information about the current theme in use.]] } - */ values { klass: string; [[The class of the group, eg. "button".]] group: string("base"); [[The group, eg. "base".]] diff --git a/src/tests/elementary/efl_ui_test_layout.c b/src/tests/elementary/efl_ui_test_layout.c index f64c7131ce..7aac2adc54 100644 --- a/src/tests/elementary/efl_ui_test_layout.c +++ b/src/tests/elementary/efl_ui_test_layout.c @@ -90,10 +90,27 @@ EFL_START_TEST(efl_ui_layout_test_layout_force) } EFL_END_TEST +EFL_START_TEST(efl_ui_layout_test_layout_theme) +{ + Evas_Object *win; + const char *klass, *group, *style; + + win = win_add(NULL, "layout", EFL_UI_WIN_BASIC); + Eo *layout = efl_add(EFL_UI_LAYOUT_CLASS, win, + efl_ui_layout_theme_set(efl_added, "win", "background", NULL) + ); + efl_ui_layout_theme_get(layout, &klass, &group, &style); + ck_assert_str_eq(klass, "win"); + ck_assert_str_eq(group, "background"); + ck_assert(!style); +} +EFL_END_TEST + void efl_ui_test_layout(TCase *tc) { tcase_add_test(tc, efl_ui_layout_test_property_bind); tcase_add_test(tc, efl_ui_layout_test_layout_api_size_min); tcase_add_test(tc, efl_ui_layout_test_layout_api_update_hints); tcase_add_test(tc, efl_ui_layout_test_layout_force); + tcase_add_test(tc, efl_ui_layout_test_layout_theme); }