Adding NaviframeWrapper to BookmarkManager 27/83527/2
authorm.kawonczyk <m.kawonczyk@samsung.com>
Thu, 11 Aug 2016 11:06:09 +0000 (13:06 +0200)
committerHye Kyoung Hwang <cookie@samsung.com>
Wed, 17 Aug 2016 00:39:57 +0000 (17:39 -0700)
[Issue]        [N/A]
[Problem]      NaviframeWrapper was not used in BookmarkManagerUI.
[Solution]     Add NaviframeWrapper support
[Verify]       Open Bookmarks, check if everything works as before.

Change-Id: I4c59f9d171049ea8a9c70a010f52dc71a510a10d

core/BasicUI/NaviframeWrapper.cpp
core/BasicUI/NaviframeWrapper.h
services/BookmarkManagerUI/BookmarkManagerUI.cpp
services/BookmarkManagerUI/BookmarkManagerUI.h
services/TabUI/TabUI.cpp

index af66bcafd78a9023df6d363b868b8463635414a2..733d5e37ada720922efd97538f27ef197e94ec42 100644 (file)
@@ -76,15 +76,121 @@ void NaviframeWrapper::addPrevButton(Evas_Smart_Cb callback, void *data)
     evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
 }
 
-void NaviframeWrapper::setVisibilityPrevButton(bool visible)
+void NaviframeWrapper::setPrevButtonVisible(bool visible)
 {
     Evas_Object* button = elm_object_part_content_get(m_layout, "elm.swallow.prev_btn");
-    if (visible) {
-        evas_object_show(button);
-        elm_object_signal_emit(m_layout, "elm,state,prev_btn,show", "elm");
+    if (button) {
+        if (visible) {
+            evas_object_show(button);
+            elm_object_signal_emit(m_layout, "elm,state,prev_btn,show", "elm");
+        } else {
+            evas_object_hide(button);
+            elm_object_signal_emit(m_layout, "elm,state,prev_btn,hide", "elm");
+        }
+    } else {
+        BROWSER_LOGW("[%s] Button does not exist!", __PRETTY_FUNCTION__);
+    }
+}
+
+void NaviframeWrapper::addLeftButton(Evas_Smart_Cb callback, void *data)
+{
+    Evas_Object* button = elm_button_add(m_layout);
+    elm_object_part_content_set(m_layout, "title_left_btn", button);
+    elm_object_style_set(button, "naviframe/title_left");
+    evas_object_smart_callback_add(button, "clicked", callback, data);
+    evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+}
+
+void NaviframeWrapper::setLeftButtonText(std::string text)
+{
+    Evas_Object* button = elm_object_part_content_get(m_layout, "title_left_btn");
+    if (button)
+        elm_object_translatable_text_set(button, text.c_str());
+    else
+        BROWSER_LOGW("[%s] Button does not exist!", __PRETTY_FUNCTION__);
+}
+
+void NaviframeWrapper::setLeftButtonVisible(bool visible)
+{
+    Evas_Object* button = elm_object_part_content_get(m_layout, "title_left_btn");
+    if (button) {
+        if (visible) {
+            evas_object_show(button);
+            elm_object_signal_emit(m_layout, "elm,state,title_left_btn,show", "elm");
+        } else {
+            evas_object_hide(button);
+            elm_object_signal_emit(m_layout, "elm,state,title_left_btn,hide", "elm");
+        }
+    } else {
+        BROWSER_LOGW("[%s] Button does not exist!", __PRETTY_FUNCTION__);
+    }
+}
+
+void NaviframeWrapper::setLeftButtonEnabled(bool enabled)
+{
+    Evas_Object* button = elm_object_part_content_get(m_layout, "title_left_btn");
+    if (button) {
+        if (enabled)
+            elm_object_signal_emit(button, "elm,state,enabled", "elm");
+        else
+            elm_object_signal_emit(button, "elm,state,disabled", "elm");
+    } else {
+        BROWSER_LOGW("[%s] Button does not exist!", __PRETTY_FUNCTION__);
+    }
+}
+
+void NaviframeWrapper::addRightButton(Evas_Smart_Cb callback, void *data)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    Evas_Object* button = elm_button_add(m_layout);
+
+    elm_object_part_content_set(m_layout, "title_right_btn", button);
+    elm_object_style_set(button, "naviframe/title_right");
+    evas_object_smart_callback_add(button, "clicked", callback, data);
+    evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+}
+
+void NaviframeWrapper::setRightButtonText(std::string text)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    Evas_Object* button = elm_object_part_content_get(m_layout, "title_right_btn");
+    if (button)
+        elm_object_translatable_text_set(button, text.c_str());
+    else
+        BROWSER_LOGW("[%s] Button does not exist!", __PRETTY_FUNCTION__);
+}
+
+void NaviframeWrapper::setRightButtonVisible(bool visible)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    Evas_Object* button = elm_object_part_content_get(m_layout, "title_right_btn");
+    if (button) {
+        if (visible) {
+            evas_object_show(button);
+            elm_object_signal_emit(m_layout, "elm,state,title_right_btn,show", "elm");
+        } else {
+            evas_object_hide(button);
+            elm_object_signal_emit(m_layout, "elm,state,title_right_btn,hide", "elm");
+        }
+    } else {
+        BROWSER_LOGW("[%s] Button does not exist!", __PRETTY_FUNCTION__);
+    }
+}
+
+void NaviframeWrapper::setRightButtonEnabled(bool enabled)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    Evas_Object* button = elm_object_part_content_get(m_layout, "title_right_btn");
+    if (button) {
+        if (enabled)
+            elm_object_signal_emit(button, "elm,state,enabled", "elm");
+        else
+            elm_object_signal_emit(button, "elm,state,disabled", "elm");
     } else {
-        evas_object_hide(button);
-        elm_object_signal_emit(m_layout, "elm,state,prev_btn,hide", "elm");
+        BROWSER_LOGW("[%s] Button does not exist!", __PRETTY_FUNCTION__);
     }
 }
 
@@ -114,7 +220,7 @@ void NaviframeWrapper::setEnableButtonInBottomBar(std::string text, bool enabled
         elm_object_signal_emit(m_map_bottom_box[text], "elm,state,disabled", "elm");
 }
 
-void NaviframeWrapper::setVisibilityBottomBar(bool visible)
+void NaviframeWrapper::setVisibleBottomBar(bool visible)
 {
     if (!m_bottom_box)
         createBottomBar();
index cc93b7aaf9fbbe65f7916f5c8284a40458d50e31..ecb8933a887e4b29b191f45a6aa1f83f04187ece 100644 (file)
@@ -49,13 +49,23 @@ public:
     void setContent(Evas_Object *content);
 
     void addPrevButton(Evas_Smart_Cb callback, void* data);
-    void setVisibilityPrevButton(bool visible);
+    void setPrevButtonVisible(bool visible);
+
+    void addLeftButton(Evas_Smart_Cb callback, void* data);
+    void setLeftButtonText(std::string text);
+    void setLeftButtonVisible(bool visible);
+    void setLeftButtonEnabled(bool enabled);
+
+    void addRightButton(Evas_Smart_Cb callback, void* data);
+    void setRightButtonText(std::string text);
+    void setRightButtonVisible(bool visible);
+    void setRightButtonEnabled(bool enabled);
 
     void createBottomBar(Evas_Object* layout = nullptr,
         std::string swallow_name = "elm.swallow.content");
     void addButtonToBottomBar(std::string text, Evas_Smart_Cb callback, void* data);
     void setEnableButtonInBottomBar(std::string text, bool enabled);
-    void setVisibilityBottomBar(bool visible);
+    void setVisibleBottomBar(bool visible);
 
 protected:
     Evas_Object *m_parent;
index c6f0f452b025ea735a0e981b84c65b1b9f32c330..a622056afbc3c825732f8caf4c1f7189f5286cb9 100644 (file)
@@ -42,11 +42,7 @@ struct ItemData
 
 BookmarkManagerUI::BookmarkManagerUI()
     : m_parent(nullptr)
-    , b_mm_layout(nullptr)
     , m_content(nullptr)
-    , m_cancel_button(nullptr)
-    , m_accept_button(nullptr)
-    , m_prev_button(nullptr)
     , m_modulesToolbar(nullptr)
     , m_navigatorToolbar(nullptr)
     , m_genlist(nullptr)
@@ -79,23 +75,27 @@ void BookmarkManagerUI::init(Evas_Object* parent)
 
 void BookmarkManagerUI::showUI()
 {
-    evas_object_show(b_mm_layout);
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    M_ASSERT(m_naviframe->getLayout());
+    m_naviframe->show();
 }
 
 void BookmarkManagerUI::hideUI()
 {
-    evas_object_hide(b_mm_layout);
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    M_ASSERT(m_naviframe->getLayout());
+    m_naviframe->hide();
 }
 
 Evas_Object* BookmarkManagerUI::getContent()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     M_ASSERT(m_parent);
-    if (!b_mm_layout)
-      b_mm_layout = createBookmarksLayout(m_parent);
+    if (!m_naviframe)
+        createBookmarksLayout();
     changeState(m_state);
 
-    return b_mm_layout;
+    return m_naviframe->getLayout();
 }
 
 void BookmarkManagerUI::createGenlistItemClasses()
@@ -176,22 +176,18 @@ Evas_Object *BookmarkManagerUI::_genlist_bookmark_content_get(void *data, Evas_O
     return nullptr;
 }
 
-Evas_Object* BookmarkManagerUI::createBookmarksLayout(Evas_Object* parent)
+void BookmarkManagerUI::createBookmarksLayout()
 {
     elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
-    b_mm_layout = elm_layout_add(parent);
 
-    evas_object_size_hint_weight_set(b_mm_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-    evas_object_size_hint_align_set(b_mm_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
-    evas_object_show(b_mm_layout);
-    elm_layout_theme_set(b_mm_layout, "naviframe", "item/basic", "default");
+    m_naviframe = std::make_shared<NaviframeWrapper>(m_parent);
 
-    m_content = elm_layout_add(b_mm_layout);
+    m_content = elm_layout_add(m_naviframe->getLayout());
     evas_object_size_hint_weight_set(m_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
     evas_object_size_hint_align_set(m_content, EVAS_HINT_FILL, EVAS_HINT_FILL);
     evas_object_show(m_content);
     elm_layout_file_set(m_content, m_edjFilePath.c_str(), "naviframe_content");
-    elm_object_part_content_set(b_mm_layout, "elm.swallow.content", m_content);
+    m_naviframe->setContent(m_content);
 
     createTopContent();
     createModulesToolbar();
@@ -200,7 +196,6 @@ Evas_Object* BookmarkManagerUI::createBookmarksLayout(Evas_Object* parent)
 
     createGenlist();
     createEmptyLayout();
-    return b_mm_layout;
 }
 
 void BookmarkManagerUI::createModulesToolbar()
@@ -301,29 +296,13 @@ void BookmarkManagerUI::createEmptyLayout()
 void BookmarkManagerUI::createTopContent()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    M_ASSERT(b_mm_layout);
-
-    m_cancel_button = elm_button_add(b_mm_layout);
-    elm_object_part_content_set(b_mm_layout, "title_left_btn", m_cancel_button);
-    elm_object_style_set(m_cancel_button, "naviframe/title_left");
-    elm_object_text_set(m_cancel_button, _("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB"));
-    evas_object_smart_callback_add(m_cancel_button, "clicked", _cancel_clicked, this);
-    evas_object_size_hint_weight_set(m_cancel_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-    evas_object_size_hint_align_set(m_cancel_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+    M_ASSERT(m_naviframe->getLayout());
 
-    m_accept_button = elm_button_add(b_mm_layout);
-    elm_object_part_content_set(b_mm_layout, "title_right_btn", m_accept_button);
-    elm_object_style_set(m_accept_button, "naviframe/title_right");
-    evas_object_smart_callback_add(m_accept_button, "clicked", _accept_clicked, this);
-    evas_object_size_hint_weight_set(m_accept_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-    evas_object_size_hint_align_set(m_accept_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-    m_prev_button = elm_button_add(b_mm_layout);
-    elm_object_part_content_set(b_mm_layout, "elm.swallow.prev_btn", m_prev_button);
-    elm_object_style_set(m_prev_button, "tizen_view/prev_btn");
-    evas_object_smart_callback_add(m_prev_button, "clicked", _prev_clicked, this);
-    evas_object_size_hint_weight_set(m_prev_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-    evas_object_size_hint_align_set(m_prev_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+    m_naviframe->addLeftButton(_cancel_clicked, this);
+    //TODO: Missing translation. In guidelines this should be uppercase
+    m_naviframe->setLeftButtonText(_("IDS_BR_SK_CANCEL"));
+    m_naviframe->addRightButton(_accept_clicked, this);
+    m_naviframe->addPrevButton(_prev_clicked, this);
 }
 
 void BookmarkManagerUI::_cancel_clicked(void* data, Evas_Object*, void*)
@@ -663,10 +642,11 @@ void BookmarkManagerUI::changeState(BookmarkManagerState state)
     switch (state) {
     case BookmarkManagerState::SelectFolder:
         elm_genlist_realized_items_update(m_genlist);
-        elm_object_signal_emit(b_mm_layout, "elm,state,prev_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,show", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_right_btn,show", "elm");
-        elm_object_text_set(m_accept_button, _("IDS_TPLATFORM_ACBUTTON_DONE_ABB"));
+        m_naviframe->setPrevButtonVisible(false);
+        m_naviframe->setLeftButtonVisible(true);
+        m_naviframe->setRightButtonVisible(true);
+        //TODO: Missing translation. In guidelines this should be uppercase
+        m_naviframe->setRightButtonText(_("IDS_BR_SK_DONE"));
         elm_object_signal_emit(m_content, "show_toolbars", "ui");
         evas_object_show(m_navigatorToolbar);
         elm_object_signal_emit(m_content, "hide_modules_toolbar", "ui");
@@ -674,10 +654,10 @@ void BookmarkManagerUI::changeState(BookmarkManagerState state)
         break;
     case BookmarkManagerState::Edit:
         m_reordered = false;
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_right_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,prev_btn,show", "elm");
-        elm_object_part_text_set(b_mm_layout, "elm.text.title", _("IDS_BR_HEADER_SELECT_BOOKMARK"));
+        m_naviframe->setLeftButtonVisible(false);
+        m_naviframe->setRightButtonVisible(false);
+        m_naviframe->setPrevButtonVisible(true);
+        m_naviframe->setTitle(_("IDS_BR_HEADER_SELECT_BOOKMARK"));
         elm_object_signal_emit(m_content, "hide_toolbars", "ui");
         evas_object_hide(m_modulesToolbar);
         evas_object_hide(m_navigatorToolbar);
@@ -689,10 +669,11 @@ void BookmarkManagerUI::changeState(BookmarkManagerState state)
             m_map_delete.insert(std::pair<unsigned int, bool>(it->first, false));
 
         elm_genlist_realized_items_update(m_genlist);
-        elm_object_signal_emit(b_mm_layout, "elm,state,prev_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,show", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_right_btn,show", "elm");
-        elm_object_text_set(m_accept_button, _("IDS_TPLATFORM_ACBUTTON_DELETE_ABB"));
+        m_naviframe->setPrevButtonVisible(false);
+        m_naviframe->setLeftButtonVisible(true);
+        m_naviframe->setRightButtonVisible(true);
+        //TODO: Missing translation. In guidelines this should be uppercase
+        m_naviframe->setRightButtonText(_("IDS_BR_SK_DELETE"));
         updateDeleteTopContent();
         elm_object_signal_emit(m_content, "hide_toolbars", "ui");
         evas_object_hide(m_modulesToolbar);
@@ -702,10 +683,10 @@ void BookmarkManagerUI::changeState(BookmarkManagerState state)
         evas_object_show(m_select_all);
         break;
     case BookmarkManagerState::Reorder:
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_right_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,prev_btn,show", "elm");
-        elm_object_part_text_set(b_mm_layout, "elm.text.title", _("IDS_BR_OPT_REORDER_ABB"));
+        m_naviframe->setLeftButtonVisible(false);
+        m_naviframe->setRightButtonVisible(false);
+        m_naviframe->setPrevButtonVisible(true);
+        m_naviframe->setTitle(_("IDS_BR_OPT_REORDER_ABB"));
         elm_object_signal_emit(m_content, "hide_toolbars", "ui");
         evas_object_hide(m_modulesToolbar);
         evas_object_hide(m_navigatorToolbar);
@@ -715,13 +696,13 @@ void BookmarkManagerUI::changeState(BookmarkManagerState state)
     default:
         updateNoBookmarkText();
         reoderBookmarkItems();
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_left_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,title_right_btn,hide", "elm");
-        elm_object_signal_emit(b_mm_layout, "elm,state,prev_btn,show", "elm");
+        m_naviframe->setLeftButtonVisible(false);
+        m_naviframe->setRightButtonVisible(false);
+        m_naviframe->setPrevButtonVisible(true);
+        m_naviframe->setTitle(_("IDS_BR_BODY_BOOKMARKS"));
         elm_object_signal_emit(m_content, "show_toolbars", "ui");
         evas_object_show(m_modulesToolbar);
         evas_object_show(m_navigatorToolbar);
-        elm_object_part_text_set(b_mm_layout, "elm.text.title", _("IDS_BR_BODY_BOOKMARKS"));
         elm_genlist_reorder_mode_set(m_genlist, EINA_FALSE);
         elm_box_unpack(m_box, m_select_all);
         evas_object_hide(m_select_all);
@@ -772,15 +753,12 @@ void BookmarkManagerUI::updateDeleteClick(int id)
 
 void BookmarkManagerUI::updateDeleteTopContent()
 {
-    if (m_delete_count) {
-        elm_object_part_text_set(b_mm_layout, "elm.text.title",
-                (boost::format(_("IDS_BR_HEADER_PD_SELECTED_ABB")) % m_delete_count).str().c_str());
-        elm_object_signal_emit(m_accept_button, "elm,state,enabled", "elm");
-    } else {
-        elm_object_part_text_set(b_mm_layout, "elm.text.title", "Select Items");
+    if (m_delete_count)
+        m_naviframe->setTitle((boost::format(_("IDS_BR_HEADER_PD_SELECTED_ABB")) % m_delete_count).str());
+    else
         //TODO: Add translation
-        elm_object_signal_emit(m_accept_button, "elm,state,disabled", "elm");
-    }
+        m_naviframe->setTitle("Select items");
+    m_naviframe->setRightButtonEnabled(m_delete_count);
 }
 
 }
index 1fd6c35d15d939884667e112d13db2bb86067989..86f5a2748d63d0b583375a6d492bd2e247acb1e3 100644 (file)
@@ -29,6 +29,7 @@
 #include "services/HistoryService/HistoryItem.h"
 #include "BookmarkItem.h"
 #include "BookmarkFolder.h"
+#include "NaviframeWrapper.h"
 
 namespace tizen_browser{
 namespace base_ui{
@@ -92,7 +93,7 @@ private:
         BookmarkManagerUI* bookmarkManagerUI;
     } BookmarkData;
 
-    Evas_Object* createBookmarksLayout(Evas_Object* parent);
+    void createBookmarksLayout();
     void createTopContent();
     void createModulesToolbar();
     void createNavigatorToolbar();
@@ -130,11 +131,8 @@ private:
     std::string m_edjFilePath;
 
     Evas_Object *m_parent;
-    Evas_Object *b_mm_layout;
+    SharedNaviframeWrapper m_naviframe;
     Evas_Object *m_content;
-    Evas_Object *m_cancel_button;
-    Evas_Object *m_accept_button;
-    Evas_Object *m_prev_button;
     Evas_Object *m_modulesToolbar;
     Evas_Object *m_navigatorToolbar;
     Evas_Object *m_box;
index c93829e9d47e1c6f8fe32ca95477c8aadc3a64ca..cd832435df711dd397f7c4993c666c6ec55a418d 100644 (file)
@@ -122,7 +122,7 @@ void TabUI::createTopContent()
 {
     m_naviframe->setTitle("Tabs"); //TODO: _("IDS_BR_HEADER_TABS_ABB2") when it works
     m_naviframe->addPrevButton(_close_clicked, this);
-    m_naviframe->setVisibilityPrevButton(true);
+    m_naviframe->setPrevButtonVisible(true);
 }
 
 void TabUI::createBottomContent()
@@ -134,7 +134,7 @@ void TabUI::createBottomContent()
     evas_object_show(layout);
 
     m_naviframe->createBottomBar(layout);
-    m_naviframe->setVisibilityBottomBar(true);
+    m_naviframe->setVisibleBottomBar(true);
     //TODO: Missing translation
     m_naviframe->addButtonToBottomBar("Enable Secret", _enable_secret_clicked, this);
     m_naviframe->setEnableButtonInBottomBar("Enable Secret", true);