From 1230b34ff7dafcb0b111f992601d40893abc4175 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Wed, 23 Mar 2016 22:37:40 +0900 Subject: [PATCH] change the return type of set_content() from Evas_Object to bool Change-Id: I2a1e90bbf664853cb3422273c05505047deb31fa --- src/include/efl/mobile/ui_view.h | 4 ++-- src/include/efl/ui_base_view.h | 2 +- src/lib/efl/mobile/ui_view.cpp | 15 ++++++++------- src/lib/efl/ui_base_view.cpp | 17 +++++++++++------ 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/include/efl/mobile/ui_view.h b/src/include/efl/mobile/ui_view.h index 9941228..ca854eb 100644 --- a/src/include/efl/mobile/ui_view.h +++ b/src/include/efl/mobile/ui_view.h @@ -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); diff --git a/src/include/efl/ui_base_view.h b/src/include/efl/ui_base_view.h index 0ce5ca8..904a303 100644 --- a/src/include/efl/ui_base_view.h +++ b/src/include/efl/ui_base_view.h @@ -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. * diff --git a/src/lib/efl/mobile/ui_view.cpp b/src/lib/efl/mobile/ui_view.cpp index db07c9e..cf274e6 100644 --- a/src/lib/efl/mobile/ui_view.cpp +++ b/src/lib/efl/mobile/ui_view.cpp @@ -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) diff --git a/src/lib/efl/ui_base_view.cpp b/src/lib/efl/ui_base_view.cpp index b617e2f..aff4d8c 100644 --- a/src/lib/efl/ui_base_view.cpp +++ b/src/lib/efl/ui_base_view.cpp @@ -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(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() -- 2.7.4