change the return type of set_content() from Evas_Object to bool 03/63403/1
authorHermet Park <hermet@hermet.pe.kr>
Wed, 23 Mar 2016 13:37:40 +0000 (22:37 +0900)
committerHermet Park <hermet@hermet.pe.kr>
Wed, 23 Mar 2016 13:37:40 +0000 (22:37 +0900)
Change-Id: I2a1e90bbf664853cb3422273c05505047deb31fa

src/include/efl/mobile/ui_view.h
src/include/efl/ui_base_view.h
src/lib/efl/mobile/ui_view.cpp
src/lib/efl/ui_base_view.cpp

index 9941228ab7f0afe64c4c9fc2067ac7dbbbd8a9b5..ca854ebb70e8bb79cb13aa933b9154ad5ebbb1ff 100644 (file)
@@ -46,8 +46,8 @@ public:
        ui_view(const char *name = NULL);
        virtual ~ui_view();
 
-       Evas_Object *set_content(Evas_Object *content, const char *title = NULL);
-       Evas_Object *set_content(Evas_Object *content, const char *title, const char *subtitle, Elm_Button *title_left_btn, Elm_Button *title_right_btn);
+       bool set_content(Evas_Object *content, const char *title = NULL);
+       bool set_content(Evas_Object *content, const char *title, const char *subtitle, Elm_Button *title_left_btn, Elm_Button *title_right_btn);
        bool set_title_badge(const char *text);
        bool set_subtitle(const char *text);
        bool set_title_left_btn(Elm_Button *title_left_btn);
index 0ce5ca81b5667ffa607bdb2ccd1806046286e3b3..904a30363e9770f258074a89ddff199386f0d30b 100644 (file)
@@ -81,7 +81,7 @@ public:
         *
         *  @return A previous content. If it wasn't, return value will be @c NULL.
         */
-       virtual Evas_Object *set_content(Evas_Object *content);
+       virtual bool set_content(Evas_Object *content);
 
        /** @brief This is for unsetting a content of the view.
         *
index db07c9eea7a69526733c4300b5b979c116dbcba4..cf274e6f51c09927c8f4957539a151febf900c35 100644 (file)
@@ -117,10 +117,9 @@ void ui_view::on_unload()
        ui_base_view::on_unload();
 }
 
-Evas_Object *
-ui_view::set_content(Evas_Object *content, const char *title)
+bool ui_view::set_content(Evas_Object *content, const char *title)
 {
-       Evas_Object *pcontent = ui_base_view::set_content(content);
+       ui_base_view::set_content(content);
 
        if (this->layout)
        {
@@ -131,9 +130,10 @@ ui_view::set_content(Evas_Object *content, const char *title)
        else
        {
                LOGE("Layout is not exist!");
+               return false;
        }
 
-       return pcontent;
+       return true;
 }
 
 bool ui_view::set_subtitle(const char *text)
@@ -209,10 +209,10 @@ bool ui_view::set_title(const char *text)
        return false;
 }
 
-Evas_Object *ui_view::set_content(Evas_Object *content, const char *title, const char *subtitle, Elm_Button *title_left_btn,
+bool ui_view::set_content(Evas_Object *content, const char *title, const char *subtitle, Elm_Button *title_left_btn,
         Elm_Button *title_right_btn)
 {
-       Evas_Object *pcontent = this->set_content(content);
+       if (!this->set_content(content)) return false;
 
        if (this->layout)
        {
@@ -224,9 +224,10 @@ Evas_Object *ui_view::set_content(Evas_Object *content, const char *title, const
        else
        {
                LOGE("Layout is not exist!");
+               return false;
        }
 
-       return pcontent;
+       return true;
 }
 
 bool ui_view::set_toolbar(Elm_Toolbar *toolbar)
index b617e2f543f8ff9743c21a07f18bdfa14fca83e6..aff4d8c65959b2fc9507dc5b7fb6d984389fc63b 100644 (file)
@@ -36,16 +36,19 @@ ui_base_view::~ui_base_view()
 {
 }
 
-Evas_Object *ui_base_view::set_content(Evas_Object *content)
+bool ui_base_view::set_content(Evas_Object *content)
 {
-       T pcontent = ui_iface_view::set_content(CONVERT_TO_T(content));
-       return CONVERT_TO_EO(pcontent);
+       T pcontent = this->get_content();
+       if (pcontent) evas_object_del(CONVERT_TO_EO(pcontent));
+       if (content) ui_iface_view::set_content(CONVERT_TO_T(content));
+       else ui_iface_view::set_content(NULL);
+       return true;
 }
 
 Evas_Object *ui_base_view::unset_content()
 {
        T pcontent = ui_iface_view::unset_content();
-       return static_cast<Evas_Object *>(pcontent);
+       return CONVERT_TO_EO(pcontent);
 }
 
 Evas_Object *ui_base_view::get_base()
@@ -58,10 +61,12 @@ Evas_Object *ui_base_view::get_base()
        return viewmgr->get_base();
 }
 
+//FIXME: seems it could be replaced with set_content(NULL);
 void ui_base_view::unload_content()
 {
-       Evas_Object *pcontent = this->set_content(NULL);
-       if (pcontent) evas_object_del(pcontent);
+       T pcontent = this->get_content();
+       if (pcontent) evas_object_del(CONVERT_TO_EO(pcontent));
+       this->set_content(NULL);
 }
 
 Evas_Object *ui_base_view ::get_parent()