Use layout class instead Evas_Object 83/198783/6 accepted/tizen/unified/20190214.060617 submit/tizen/20190213.001307 submit/tizen/20190213.060634 submit/tizen/20190213.062652
authorOskar Chodowicz <o.chodowicz@samsung.com>
Mon, 28 Jan 2019 13:50:27 +0000 (14:50 +0100)
committerOskar Chodowicz <o.chodowicz@samsung.com>
Tue, 12 Feb 2019 12:00:22 +0000 (13:00 +0100)
Change-Id: I584d053d5160ac0c4c6fe38bb3c8d92c6adab108

14 files changed:
src/AccessoriesSwitchesPage.cpp
src/AccessoriesSwitchesPage.hpp
src/Layout.cpp
src/Layout.hpp
src/MainData.cpp
src/MainData.hpp
src/SetValueLayout.cpp
src/SetValueLayout.hpp
src/SetValuePage.cpp
src/SetValuePage.hpp
src/SettingPopup.cpp
src/SettingPopup.hpp
src/UpdateSwitchPage.cpp
src/UpdateSwitchPage.hpp

index a4cad22..7dfcf40 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "setting-accessibility.h"
 #include "WidgetFactory.hpp"
+#include "Layout.hpp"
 
 #include <app.h>
 
 AccessoriesSwitchesPage::AccessoriesSwitchesPage(SettingAccessibility *ad)
        : context_(ad)
 {
-       Evas_Object *layout = createLayout(context_->md.getNaviframe()->getObject(), EDJ_ACCESSORY, GRP_ACCESSORY);
-
+       auto layout = createLayout(context_->md.getNaviframe(), EDJ_ACCESSORY, GRP_ACCESSORY);
+       layout->setText(PRT_ACCESSORY_LABEL, "IDS_ACCS_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_DESC");
        context_->us_configuration.switch_id = {};
-       elm_layout_text_set(layout, PRT_ACCESSORY_LABEL, _("IDS_ACCS_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_DESC"));
 
-       Elm_Object_Item *navi_it = elm_naviframe_item_push(context_->md.getNaviframe()->getObject(), _("IDS_ACCS_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_TITLE"), NULL, NULL, layout, NULL);
+       Elm_Object_Item *navi_it = elm_naviframe_item_push(context_->md.getNaviframe()->getObject(), _("IDS_ACCS_UNIVERSAL_SWITCH_ADD_SWITCH_ACCESSORIES_TITLE"), NULL, NULL, layout->getObject(), NULL);
        elm_naviframe_item_pop_cb_set(navi_it, naviframPopCb, context_);
        elm_object_item_domain_text_translatable_set(navi_it, PACKAGE, EINA_TRUE);
 
@@ -63,23 +63,18 @@ Evas_Object *AccessoriesSwitchesPage::createEntry(Evas_Object *parent, const cha
        return entry;
 }
 
-Evas_Object *AccessoriesSwitchesPage::createLayout(Evas_Object *parent, const char *edj_file, const char *group)
+Layout *AccessoriesSwitchesPage::createLayout(Widget *parent, const std::string &edj_file, const std::string &group)
 {
-       Evas_Object *layout;
-       char *res_path;
-       retvm_if(parent == NULL, NULL, "Input parameter is NULL");
-
-       res_path = app_get_resource_path();
+       char *res_path = app_get_resource_path();
        std::string edj_path;
-       if (res_path && edj_file) {
-               edj_path = std::string{res_path} + std::string{edj_file};
+       if (res_path) {
+               edj_path = std::string{res_path} + edj_file;
                free(res_path);
        }
-
-       layout = elm_layout_add(parent);
-       elm_layout_file_set(layout, edj_path.c_str(), group);
-       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_show(layout);
+       auto layout = Widget::make<Layout>(parent);
+       layout->setFile(edj_path, group);
+       layout->setWeightHint(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       layout->show();
 
 
        return layout;
@@ -104,12 +99,13 @@ void AccessoriesSwitchesPage::captureSwitchCb(void *user_data, const char *switc
                                                  popupResponseCb,
                                                  std::vector<std::string> {"IDS_ACCS_UNIVERSAL_SWITCH_CANCEL", "IDS_ACCS_UNIVERSAL_SWITCH_SAVE"});
 
-       Evas_Object *layout = createLayout(self->settingPopup_->getObject(), EDJ_ACCESSORY_POPUP, GRP_ACCESSORY_POPUP);
+       auto layout = self->createLayout(self->settingPopup_->getObject(), EDJ_ACCESSORY_POPUP, GRP_ACCESSORY_POPUP);
+
+       self->entry = createEntry(layout->getObject(), PRT_ACCESSORY_POPUP_ENTRY);
 
-       self->entry = createEntry(layout, PRT_ACCESSORY_POPUP_ENTRY);
        elm_object_part_text_set(self->entry, "guide", _("IDS_ACCS_UNIVERSAL_SWITCH_ADD_SWITCH_NAME"));
 
-       elm_object_content_set(self->settingPopup_->getObject(), layout);
+       self->settingPopup_->getObject()->setContent(layout);
 }
 
 void AccessoriesSwitchesPage::alreadyMappedSwitchPopup()
@@ -119,10 +115,9 @@ void AccessoriesSwitchesPage::alreadyMappedSwitchPopup()
                                        okResponseCb,
                                        std::vector<std::string> {"IDS_ACCS_UNIVERSAL_SWITCH_OK"});
 
-       Evas_Object *layout = createLayout(settingPopup_->getObject(), EDJ_ACCESSORY_POPUP, GRP_ACCESSORY_POPUP);
-
-       elm_object_part_text_set(layout, PRT_ACCESSORY_POPUP_LABEL, "IDS_ACCS_UNIVERSAL_SWITCH_ALREADY_ADDED");
-       elm_object_content_set(settingPopup_->getObject(), layout);
+       auto layout = createLayout(settingPopup_->getObject(), EDJ_ACCESSORY_POPUP, GRP_ACCESSORY_POPUP);
+       layout->setPartText(PRT_ACCESSORY_POPUP_LABEL,"IDS_ACCS_UNIVERSAL_SWITCH_ALREADY_ADDED");
+       settingPopup_->getObject()->setContent(layout);
 }
 
 void AccessoriesSwitchesPage::okResponseCb(void *data, Evas_Object *obj, void *event_info)
index 0419d91..01d9f24 100644 (file)
@@ -39,7 +39,7 @@ public:
 
 private:
        static Evas_Object *createEntry(Evas_Object *parent, const char *part_name);
-       static Evas_Object *createLayout(Evas_Object *parent, const char *edj_file, const char *group);
+       Layout *createLayout(Widget *parent, const std::string &edj_file, const std::string &group);
        static void captureSwitchCb(void *user_data, const char *switch_id);
        void alreadyMappedSwitchPopup(); //TODO rename
        static void okResponseCb(void *data, Evas_Object *obj, void *event_info);
index a480d23..3e93516 100644 (file)
@@ -1,4 +1,5 @@
 #include "Layout.hpp"
+#include "setting-debug.h"
 
 Layout::Layout(Widget *parent)
        : Widget(parent)
@@ -15,3 +16,9 @@ void Layout::setTheme(const std::string &klass, const std::string &group, const
 {
        elm_layout_theme_set(uniqueObj_.get(), klass.c_str(), group.c_str(), style.c_str());
 }
+
+void Layout::setText(const std::string &part, const TranslatedString &text)
+{
+       if(elm_layout_text_set(uniqueObj_.get(), part.c_str(), text.c_str()) == EINA_FALSE)
+               SETTING_TRACE("Failed to set text: %s", text.c_str());
+}
index 36fb82e..eba1f2e 100644 (file)
@@ -3,13 +3,13 @@
 
 #include "Widget.hpp"
 
-class Layout : public Widget, public std::enable_shared_from_this<Layout>
+class Layout : public Widget
 {
 public:
        Layout(Widget *parent);
        void setFile(const std::string &edjeFile, const std::string &group);
        void setTheme(const std::string &klass, const std::string &group, const std::string &style);
-
+       void setText(const std::string &part, const TranslatedString &text);
 };
 
 #endif
index d7944b5..a6f509b 100644 (file)
@@ -50,7 +50,7 @@ void MainData::initView(const std::string &name)
 
        if (!genlist)
                SETTING_TRACE_ERROR("No genlist");
-       elm_object_part_content_set(layout, "elm.swallow.content", genlist);
+       elm_object_part_content_set(layout_->getObject(), "elm.swallow.content", genlist);
 
        evas_object_show(genlist);
 }
@@ -85,15 +85,14 @@ int MainData::initViewWithoutGenlist(const std::string &name)
        conformant->emitSignal("elm,state,virtualkeypad,enable");
        conformant->emitSignal("elm,state,clipboard,enable");
 
-       /* LAYOUT */
-       layout = elm_layout_add(naviframe_->getObject());
-       setting_retvm_if(layout == NULL, FALSE, "layout == NULL");
-       elm_layout_theme_set(layout, "layout", "application", "default");
+       layout_ = Widget::make<Layout>(naviframe_);
+       layout_->setTheme("layout", "application", "default");
 
-       naviframe_it = elm_naviframe_item_push(naviframe_->getObject(), name.c_str(), NULL, NULL, layout, NULL);
+       naviframe_->pushBack(name, layout_, {}, {});
+       naviframe_it = naviframe_->top();
 
        naviframe_->show();
-       evas_object_show(layout);
+       layout_->show();
 
        return SETTING_RETURN_SUCCESS;
 }
@@ -108,7 +107,7 @@ void MainData::addRotateSupport()
 
 void MainData::prepareViewList()
 {
-       auto gl = elm_genlist_add(layout);
+       auto gl = elm_genlist_add(layout_->getObject());
        retm_if(gl == NULL, "Cannot set genlist object as content of layout");
 
        /* resolve abnormal height issue */
index 1df2b02..5f75406 100644 (file)
@@ -20,6 +20,7 @@
 #include "Window.hpp"
 #include "Conformant.hpp"
 #include "Naviframe.hpp"
+#include "Layout.hpp"
 
 #include <Elementary.h>
 
@@ -48,11 +49,11 @@ private:
        static void onAllGenlistRealizedCb(void *data, Evas_Object *obj, void *event_info);
        static void softkeyBackClickCb(void *data, Evas_Object *obj, void *event_inf);
 
-       Evas *evas;
+       Evas *evas = nullptr;
        std::unique_ptr<Window> window;
-       Naviframe *naviframe_;
-       Evas_Object *layout;
-       Evas_Object *genlist;
+       Naviframe *naviframe_ = nullptr;
+       Layout *layout_ = nullptr;
+       Evas_Object *genlist = nullptr;
 };
 
 #endif
index a744ab1..d96c6d3 100644 (file)
 
 #include "SetValueLayout.hpp"
 
-Evas_Object *SetValueLayout::getLayout() const
+Layout *SetValueLayout::getLayout() const
 {
        return layout;
 }
 
-void SetValueLayout::setLayout(Evas_Object *layout)
+void SetValueLayout::setLayout(Layout *layout)
 {
        this->layout = layout;
 }
index e0d83a4..451e09d 100644 (file)
@@ -18,6 +18,7 @@
 #define SET_VALUE_LAYOUT_HPP
 
 #include <Elementary.h>
+#include "Layout.hpp"
 
 #include <vector>
 #include <string>
@@ -40,8 +41,8 @@ class SetValueLayout
 {
 public:
        SetValueLayout() = default;
-       Evas_Object *getLayout() const;
-       void setLayout(Evas_Object *layout);
+       Layout *getLayout() const;
+       void setLayout(Layout *layout);
        Evas_Object *getScroller() const;
        void setScroller(Evas_Object *scroller);
        Evas_Object *getBox() const;
@@ -71,7 +72,7 @@ public:
        void *list_item_options_request_cb_data = nullptr;
 
 private:
-       Evas_Object *layout = nullptr;
+       Layout *layout = nullptr;
        Evas_Object *scroller = nullptr;
        Evas_Object *box = nullptr;
        Evas_Object *check = nullptr;
index 3ac1bbd..ecf522a 100644 (file)
@@ -63,37 +63,35 @@ SetValuePage::SetValuePage(SettingAccessibility *ad, ValueEditorType type, const
                layout_grp = GRP_SET_VALUE_NUMERIC;
                SETTING_TRACE_DEBUG("Unrecognized layout type!");
        }
-
-       ad->set_value_layout.setLayout(createLayout(ad->md.getNaviframe()->getObject(), layout_grp));
-
+       ad->set_value_layout.setLayout(createLayout(ad->md.getNaviframe(), layout_grp));
        switch (type) {
        case ValueEditorType::NUMERIC:
-               ad->set_value_layout.setScroller(createScroller(ad->set_value_layout.getLayout()));
+               ad->set_value_layout.setScroller(createScroller(ad->set_value_layout.getLayout()->getObject()));
                ad->set_value_layout.setBox(createBox(ad->set_value_layout.getScroller()));
                evas_object_smart_callback_add(ad->set_value_layout.getScroller(), "scroll,page,changed", scrollerScrollCb, (void *)ad);
                break;
        case ValueEditorType::NUMERIC_SWITCH:
-               ad->set_value_layout.setScroller(createScroller(ad->set_value_layout.getLayout()));
+               ad->set_value_layout.setScroller(createScroller(ad->set_value_layout.getLayout()->getObject()));
                ad->set_value_layout.setBox(createBox(ad->set_value_layout.getScroller()));
-               ad->set_value_layout.setCheck(createCheck(ad->set_value_layout.getLayout(), EINA_FALSE, checkStateChangedCb, ad));
+               ad->set_value_layout.setCheck(createCheck(ad->set_value_layout.getLayout()->getObject(), EINA_FALSE, checkStateChangedCb, ad));
                evas_object_smart_callback_add(ad->set_value_layout.getScroller(), "scroll,page,changed", scrollerScrollCb, (void *)ad);
                break;
        case ValueEditorType::RADIOS:
                ad->set_value_layout.radio_item_change_cb = NULL;
-               ad->set_value_layout.setGenlist(createGenlist(ad->set_value_layout.getLayout(), NULL));
+               ad->set_value_layout.setGenlist(createGenlist(ad->set_value_layout.getLayout()->getObject(), NULL));
                break;
        case ValueEditorType::SWITCHES:
-               ad->set_value_layout.setGenlist(createGenlist(ad->set_value_layout.getLayout(), NULL));
+               ad->set_value_layout.setGenlist(createGenlist(ad->set_value_layout.getLayout()->getObject(), NULL));
                break;
        case ValueEditorType::LIST_SWITCH:
-               ad->set_value_layout.setCheck(createCheck(ad->set_value_layout.getLayout(), EINA_FALSE, checkStateChangedCb, ad));
-               ad->set_value_layout.setGenlist(createGenlist(ad->set_value_layout.getLayout(), _("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_OPTIONS")));
+               ad->set_value_layout.setCheck(createCheck(ad->set_value_layout.getLayout()->getObject(), EINA_FALSE, checkStateChangedCb, ad));
+               ad->set_value_layout.setGenlist(createGenlist(ad->set_value_layout.getLayout()->getObject(), _("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_OPTIONS")));
                break;
        default:
                LOGE("Wrong value type");
        }
 
-       Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.getNaviframe()->getObject(), title, NULL, NULL, ad->set_value_layout.getLayout(), NULL);
+       Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.getNaviframe()->getObject(), title, NULL, NULL, ad->set_value_layout.getLayout()->getObject(), NULL);
        elm_naviframe_item_pop_cb_set(navi_it, naviframePopCb, ad);
        elm_object_item_domain_text_translatable_set(navi_it, PACKAGE, EINA_TRUE);
 
@@ -105,7 +103,7 @@ void SetValuePage::setDescription(SettingAccessibility *ad, const char *descript
 {
        retm_if(ad == NULL, "Input parameter is NULL");
 
-       elm_object_part_text_set(ad->set_value_layout.getLayout(), PRT_SET_VALUE_DESC, description);
+       ad->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_DESC, description);
 }
 
 void SetValuePage::setRange(SettingAccessibility *ad, double min, double max, double step)
@@ -145,7 +143,7 @@ void SetValuePage::setRange(SettingAccessibility *ad, double min, double max, do
 
        out << std::fixed << "Accepted range: " << min << " to " << max; //TODO translation
 
-       elm_object_part_text_set(ad->set_value_layout.getLayout(), PRT_SET_VALUE_RANGE, out.str().c_str());
+       ad->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_RANGE, out.str());
 }
 
 void SetValuePage::setValue(SettingAccessibility *ad, double value, const char *units)
@@ -167,9 +165,9 @@ void SetValuePage::setSwitch(SettingAccessibility *ad, bool state)
        elm_check_state_set(ad->set_value_layout.getCheck(), (Eina_Bool)state);
 
        if (state)
-               elm_object_part_text_set(ad->set_value_layout.getLayout(), PRT_SET_VALUE_SWITCH_LABEL, _("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_ON"));
+               ad->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_SWITCH_LABEL, "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_ON");
        else
-               elm_object_part_text_set(ad->set_value_layout.getLayout(), PRT_SET_VALUE_SWITCH_LABEL, _("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"));
+               ad->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_SWITCH_LABEL, "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF");
 }
 
 void SetValuePage::addRadioItem(SettingAccessibility *ad, const std::string &caption, int id, bool selected)
@@ -467,23 +465,18 @@ Evas_Object *SetValuePage::createScroller(Evas_Object *parent)
        return scroller;
 }
 
-Evas_Object *SetValuePage::createLayout(Evas_Object *parent, const char *layout_grp)
+Layout *SetValuePage::createLayout(Widget *parent, const std::string &layout_grp)
 {
-       Evas_Object *layout;
-       retvm_if(parent == NULL || layout_grp == NULL, NULL, "Input parameter is NULL");
-
        char *res_path = app_get_resource_path();
        std::string edj_path;
        if (res_path) {
                edj_path = std::string{res_path} + std::string{EDJ_SET_VALUE};
                free(res_path);
        }
-
-       layout = elm_layout_add(parent);
-       elm_layout_file_set(layout, edj_path.c_str(), layout_grp);
-       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_show(layout);
-
+       auto layout = Widget::make<Layout>(parent);
+       layout->setFile(edj_path, layout_grp);
+       layout->setWeightHint(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       layout->show();
 
        return layout;
 }
@@ -500,7 +493,7 @@ void SetValuePage::displayValue(SettingAccessibility *ad, double value)
 
        out << std::fixed << value << " " << ad->set_value_layout.getUnits(); //TODO translation
 
-       elm_object_part_text_set(ad->set_value_layout.getLayout(), PRT_SET_VALUE_VALUE, out.str().c_str());
+       ad->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_VALUE, out.str());
 }
 
 void SetValuePage::listItemClickCb(void *data, Evas_Object *obj, void *event_info)
@@ -533,9 +526,9 @@ void SetValuePage::checkStateChangedCb(void *data, Evas_Object *obj, void *event
        state = elm_check_state_get(obj);
 
        if (state)
-               elm_object_part_text_set(ad->set_value_layout.getLayout(), PRT_SET_VALUE_SWITCH_LABEL, _("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_ON"));
+               ad->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_SWITCH_LABEL, "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_ON");
        else
-               elm_object_part_text_set(ad->set_value_layout.getLayout(), PRT_SET_VALUE_SWITCH_LABEL, _("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF"));
+               ad->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_SWITCH_LABEL, "IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_OFF");
 
        if (ad->set_value_layout.getGenlist()) {
                Elm_Object_Item *item = elm_genlist_first_item_get(ad->set_value_layout.getGenlist());
index 92d217d..2c85c49 100644 (file)
@@ -65,7 +65,7 @@ private:
        static Evas_Object *createLabel(Evas_Object *parent, const char *caption);
        static Evas_Object *createBox(Evas_Object *parent);
        static Evas_Object *createScroller(Evas_Object *parent);
-       static Evas_Object *createLayout(Evas_Object *parent, const char *layout_grp);
+       Layout *createLayout(Widget *parent, const std::string &layout_grp);
        static void displayValue(SettingAccessibility *ad, double value);
        static void listItemClickCb(void *data, Evas_Object *obj, void *event_info);
        static void scrollerScrollCb(void *data, Evas_Object *obj, void *event_info);
index 8f2f9f0..6a9769b 100644 (file)
@@ -52,9 +52,9 @@ SettingPopup::SettingPopup(void *data, Widget *parent,
        popup_->show();
 }
 
-Evas_Object *SettingPopup::getObject() const
+Popup *SettingPopup::getObject() const
 {
-       return popup_->getObject();
+       return popup_;
 }
 
 SettingPopup::~SettingPopup()
index 5eb88a0..450de33 100644 (file)
@@ -53,7 +53,7 @@ public:
                                 const std::string &title, const std::string &text,
                                 SettingCallback response_cb,
                                 std::vector<std::string> buttons);
-       Evas_Object *getObject() const;
+       Popup *getObject() const;
        ~SettingPopup();
 
 private:
index d47b1f2..61dec1d 100644 (file)
@@ -71,16 +71,17 @@ void UpdateSwitchPage::createUpdateAccessoriesSwitchPage()
        elm_toolbar_item_append(tb, NULL, _("IDS_ACCS_UNIVERSAL_SWITCH_CANCEL"), NULL, NULL);
        save_object_item = elm_toolbar_item_append(tb, NULL, _("IDS_ACCS_UNIVERSAL_SWITCH_SAVE"), NULL, NULL);
 
-       context_->set_value_layout.setLayout(createLayout(context_->md.getNaviframe()->getObject(), GRP_SET_VALUE_UPDATE_ACCESSORIES_SWITCH));
-       entry_ = elm_entry_add(context_->set_value_layout.getLayout());
+       context_->set_value_layout.setLayout(createLayout(context_->md.getNaviframe(), GRP_SET_VALUE_UPDATE_ACCESSORIES_SWITCH));
+
+       entry_ = elm_entry_add(context_->set_value_layout.getLayout()->getObject());
        elm_entry_entry_set(entry_, config_item_to_update_.user_name.c_str());
        elm_entry_cursor_end_set(entry_);
        evas_object_show(entry_);
-       elm_object_part_content_set(context_->set_value_layout.getLayout(), PRT_SET_VALUE_ENTRY, entry_);
+       elm_object_part_content_set(context_->set_value_layout.getLayout()->getObject(), PRT_SET_VALUE_ENTRY, entry_);
 
-       elm_object_part_text_set(context_->set_value_layout.getLayout(), PRT_SET_VALUE_DESC, _("IDS_ACCS_UNIVERSAL_SWITCH_NAME"));
+       context_->set_value_layout.getLayout()->setPartText(PRT_SET_VALUE_DESC, "IDS_ACCS_UNIVERSAL_SWITCH_NAME");
 
-       update_accessories_action_genlist_ = createGenlist(context_->set_value_layout.getLayout(), NULL);
+       update_accessories_action_genlist_ = createGenlist(context_->set_value_layout.getLayout()->getObject(), NULL);
        createGendialGroupItem(update_accessories_action_genlist_, &itc_1text,
                                                   updateSwitchAction, this,
                                                   SwallowType::INVALID, 0,
@@ -88,7 +89,7 @@ void UpdateSwitchPage::createUpdateAccessoriesSwitchPage()
                                                   setting_accessibility_universal_switch_dbus_config_get_activity_name(&context_->config, config_item_to_update_.activity_type),
                                                   NULL);
 
-       nf_it = elm_naviframe_item_push(context_->md.getNaviframe()->getObject(), "", NULL, NULL, context_->set_value_layout.getLayout(), "tabbar/notitle");
+       nf_it = elm_naviframe_item_push(context_->md.getNaviframe()->getObject(), "", NULL, NULL, context_->set_value_layout.getLayout()->getObject(), "tabbar/notitle");
        elm_object_item_domain_text_translatable_set(nf_it, PACKAGE, EINA_TRUE);
        elm_object_item_part_content_set(nf_it, "tabbar", tb);
 }
@@ -106,11 +107,8 @@ void UpdateSwitchPage::closeUpdateAccessoriesSwitchPage(void *data, Evas_Object
        elm_naviframe_item_pop(self->context_->md.getNaviframe()->getObject());
 }
 
-Evas_Object *UpdateSwitchPage::createLayout(Evas_Object *parent, const char *layout_grp)
+Layout *UpdateSwitchPage::createLayout(Widget *parent, const std::string &layout_grp)
 {
-       Evas_Object *layout;
-       retvm_if(parent == NULL || layout_grp == NULL, NULL, "Input parameter is NULL");
-
        char *res_path = app_get_resource_path();
        std::string edj_path;
        if (res_path) {
@@ -118,11 +116,10 @@ Evas_Object *UpdateSwitchPage::createLayout(Evas_Object *parent, const char *lay
                free(res_path);
        }
 
-       layout = elm_layout_add(parent);
-       elm_layout_file_set(layout, edj_path.c_str(), layout_grp);
-       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_show(layout);
-
+       auto layout = Widget::make<Layout>(parent);
+       layout->setFile(edj_path, layout_grp);
+       layout->setWeightHint(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       layout->show();
 
        return layout;
 }
index e0f56a1..71b33ee 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "SettingAccessibility.hpp"
 #include "ActionPage.hpp"
+#include "Layout.hpp"
 
 /**
  * View allowing to edit existing mapping between switches and activities
@@ -40,7 +41,7 @@ private:
        static void onActionUpdate(SettingAccessibility *ad, const std::string &action, void *user_data);
        void createUpdateAccessoriesSwitchPage();
        static void closeUpdateAccessoriesSwitchPage(void *data, Evas_Object *obj, void *event_info);
-       Evas_Object *createLayout(Evas_Object *parent, const char *layout_grp);
+       Layout *createLayout(Widget *parent, const std::string &layout_grp);
        Evas_Object *createGenlist(Evas_Object *parent, const char *title);
        static void updateSwitchAction(void *data, Evas_Object *obj, void *event_info);
        static void updateSwitchChooseAction(SettingAccessibility *ad, const std::string &action, void *user_data);