Refactoring TabUI 56/46756/3
authorMarcin Lapinski <m.lapinski@samsung.com>
Tue, 25 Aug 2015 15:48:36 +0000 (17:48 +0200)
committerJanusz Majnert <j.majnert@samsung.com>
Wed, 26 Aug 2015 10:58:45 +0000 (03:58 -0700)
[Issue#]    https://bugs.tizen.org/jira/browse/TT-72
[Problem]   TabUI needs refactoring.
[Cause]     N/A
[Sollution] Following actions were taken:
            -Split humongous show functions into several smaller.
            -Removed unused functions.
            -Replaced redundant class members with local variables.
            -Renamed functions, variables and edc names to make names
             more adequate.
[Verify]    1. Browser builds
            2. Refactor does not change behaviour of browser.

Change-Id: I12a850bfb239b2d8477536517dfb93bb1db76df4

services/TabUI/TabUI.cpp
services/TabUI/TabUI.h
services/TabUI/edc/TabUI.edc

index d004b0b960177f0f982c2a4cb04d6a14b7e47e0b..d92dd180bf2092dd0c21d7a93581b4a4cd1ec2ea 100644 (file)
@@ -39,18 +39,8 @@ typedef struct _TabItemData
     std::shared_ptr<tizen_browser::base_ui::TabUI> tabUI;
 } TabItemData;
 
-struct ItemData
-{
-    tizen_browser::base_ui::TabUI* tabUI;
-    Elm_Object_Item * e_item;
-};
-
 TabUI::TabUI()
     : m_tab_layout(nullptr)
-    , m_genListActionBar(nullptr)
-    , m_itemClassActionBar(nullptr)
-    , m_genListTop(nullptr)
-    , m_itemClassTop(nullptr)
     , m_gengrid(nullptr)
     , m_parent(nullptr)
     , m_item_class(nullptr)
@@ -58,34 +48,19 @@ TabUI::TabUI()
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     m_edjFilePath = EDJE_DIR;
     m_edjFilePath.append("TabUI/TabUI.edj");
+    elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
+    createTabItemClass();
 }
 
 TabUI::~TabUI()
 {
-
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    elm_gengrid_item_class_free(m_item_class);
 }
 
-void TabUI::show(Evas_Object* parent)
+void TabUI::createTabItemClass()
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    //m_parent = p;
-    elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
-    m_tab_layout = elm_layout_add(parent);
-    elm_layout_file_set(m_tab_layout, m_edjFilePath.c_str(), "tab-layout");
-    evas_object_size_hint_weight_set(m_tab_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-    evas_object_size_hint_align_set(m_tab_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
-    evas_object_show(m_tab_layout);
-
-    showActionBar();
-    showTopButtons();
-
-    m_gengrid = elm_gengrid_add(m_tab_layout);
-    elm_object_part_content_set(m_tab_layout, "tab_gengird", m_gengrid);
-
-    evas_object_smart_callback_add(m_gengrid, "item,focused", focusItem, nullptr);
-    evas_object_smart_callback_add(m_gengrid, "item,unfocused", unFocusItem, nullptr);
-    evas_object_smart_callback_add(m_gengrid, "activated", _itemSelected, this);
-
     if (!m_item_class) {
         m_item_class = elm_gengrid_item_class_new();
         m_item_class->item_style = "tab_item";
@@ -94,6 +69,37 @@ void TabUI::show(Evas_Object* parent)
         m_item_class->func.state_get = nullptr;
         m_item_class->func.del = nullptr;
     }
+}
+
+void TabUI::show(Evas_Object* parent)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    M_ASSERT(parent);
+    m_parent = parent;
+    //TODO:check if there is no some memory leak due to not destroying previous instance of this UI element.
+    m_tab_layout = createTabUILayout(parent);
+    evas_object_show(m_tab_layout);
+}
+
+Evas_Object* TabUI::createTabUILayout(Evas_Object* parent)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    M_ASSERT(parent);
+    Evas_Object* tab_layout = elm_layout_add(parent);
+    elm_layout_file_set(tab_layout, m_edjFilePath.c_str(), "tab-layout");
+    evas_object_size_hint_weight_set(tab_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_align_set(tab_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+    //Create button bars and put them to layout's swallows
+    Evas_Object* buttonBar = createTopButtons(tab_layout);
+    elm_object_part_content_set(tab_layout, "top_bar", buttonBar);
+
+    buttonBar = createActionBar(tab_layout);
+    elm_object_part_content_set(tab_layout, "action_bar", buttonBar);
+
+    //create gengrid containing tabs
+    m_gengrid = elm_gengrid_add(tab_layout);
+    elm_object_part_content_set(tab_layout, "tab_gengird", m_gengrid);
 
     M_ASSERT(m_parent);
     elm_gengrid_align_set(m_gengrid, 0, 0);
@@ -109,211 +115,94 @@ void TabUI::show(Evas_Object* parent)
 
     double efl_scale = elm_config_scale_get() / elm_app_base_scale_get();
     elm_gengrid_item_size_set(m_gengrid, 364 * efl_scale, 320 * efl_scale);
+    return tab_layout;
 }
 
 
-void TabUI::showActionBar()
+Evas_Object* TabUI::createActionBar(Evas_Object* parent)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
-    m_genListActionBar = elm_genlist_add(m_tab_layout);
-    elm_object_part_content_set(m_tab_layout, "action_bar_genlist", m_genListActionBar);
-    elm_genlist_homogeneous_set(m_genListActionBar, EINA_FALSE);
-    elm_genlist_multi_select_set(m_genListActionBar, EINA_FALSE);
-    elm_genlist_select_mode_set(m_genListActionBar, ELM_OBJECT_SELECT_MODE_ALWAYS);
-    elm_genlist_mode_set(m_genListActionBar, ELM_LIST_LIMIT);
-    elm_genlist_decorate_mode_set(m_genListActionBar, EINA_TRUE);
-    evas_object_size_hint_weight_set(m_genListActionBar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-//  evas_object_smart_callback_add(m_genList, "item,focused", focusItem, this);
-//  evas_object_smart_callback_add(m_genList, "item,unfocused", unFocusItem, nullptr);*/
-
-    m_itemClassActionBar = elm_genlist_item_class_new();
-    m_itemClassActionBar->item_style = "action_bar_items";
-    m_itemClassActionBar->func.text_get = nullptr; // &listTopItemTextGet;
-    m_itemClassActionBar->func.content_get = &listActionBarContentGet;
-    m_itemClassActionBar->func.state_get = nullptr;
-    m_itemClassActionBar->func.del = nullptr;
-
-    ItemData *id = new ItemData;
-    id->tabUI = this;
-    Elm_Object_Item* elmItem = elm_genlist_item_append(m_genListActionBar,    //genlist
-                                                       m_itemClassActionBar,  //item Class
-                                                       id,
-                                                       nullptr,               //parent item
-                                                       ELM_GENLIST_ITEM_NONE, //item type
-                                                       nullptr,
-                                                       nullptr                //data passed to above function
-                                                      );
-    id->e_item = elmItem;
-
-    ItemData *id2 = new ItemData;
-    id2->tabUI = this;
-    Elm_Object_Item* elmItem2 = elm_genlist_item_append(m_genListActionBar,    //genlist
-                                                        m_itemClassActionBar,  //item Class
-                                                        id2,
-                                                        nullptr,               //parent item
-                                                        ELM_GENLIST_ITEM_NONE, //item type
-                                                        nullptr,
-                                                        nullptr                //data passed to above function
-                                                       );
-    id2->e_item = elmItem2;
-
-    ItemData *id3 = new ItemData;
-    id3->tabUI = this;
-    Elm_Object_Item* elmItem3 = elm_genlist_item_append(m_genListActionBar  ,  //genlist
-                                                        m_itemClassActionBar,  //item Class
-                                                        id3,
-                                                        nullptr,               //parent item
-                                                        ELM_GENLIST_ITEM_NONE, //item type
-                                                        nullptr,
-                                                        nullptr                //data passed to above function
-                                                       );
-    id3->e_item = elmItem3;
-
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    M_ASSERT(parent);
+    Evas_Object* actionBarLayout = elm_layout_add(parent);
+    elm_layout_file_set(actionBarLayout, m_edjFilePath.c_str(), "action_bar_layout");
+    evas_object_size_hint_weight_set(actionBarLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_align_set(actionBarLayout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+    evas_object_show(actionBarLayout);
+
+    Evas_Object* button = elm_button_add(actionBarLayout);
+    elm_object_style_set(button, "tab_button");
+    evas_object_smart_callback_add(button, "clicked", _newtab_clicked, this);
+    elm_object_part_content_set(actionBarLayout, "newtab_click", button);
+
+    button = elm_button_add(actionBarLayout);
+    elm_object_style_set(button, "tab_button");
+    evas_object_smart_callback_add(button, "clicked", _newincognitotab_clicked, this);
+    elm_object_part_content_set(actionBarLayout, "newincognitotab_click", button);
+
+    button = elm_button_add(actionBarLayout);
+    elm_object_style_set(button, "tab_button");
+    evas_object_smart_callback_add(button, "clicked", _closetabs_clicked, this);
+    elm_object_part_content_set(actionBarLayout, "closetabs_click", button);
+
+    button = elm_button_add(actionBarLayout);
+    elm_object_style_set(button, "tab_button");
+    evas_object_smart_callback_add(button, "clicked", _close_clicked, this);
+    elm_object_part_content_set(actionBarLayout, "close_click", button);
+
+    return actionBarLayout;
 }
 
-Evas_Object* TabUI::listActionBarContentGet(void* data, Evas_Object* obj , const char* part)
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if (obj && part) {
-        const char *part_name1 = "newtab_click";
-        static const int part_name1_len = strlen(part_name1);
-        const char *part_name2 = "newincognitotab_clic";
-        static const int part_name2_len = strlen(part_name2);
-        const char *part_name3 = "closetabs_click";
-        static const int part_name3_len = strlen(part_name3);
-        const char *part_name4 = "close_click";
-        static const int part_name4_len = strlen(part_name4);
-
-        if (!strncmp(part_name1, part, part_name1_len)) {
-            Evas_Object *newtabButton = elm_button_add(obj);
-            elm_object_style_set(newtabButton, "tab_button");
-            evas_object_smart_callback_add(newtabButton, "clicked", tizen_browser::base_ui::TabUI::_newtab_clicked, data);
-            return newtabButton;
-        }
-        if (!strncmp(part_name2, part, part_name2_len)) {
-            Evas_Object *newincognitotabButton = elm_button_add(obj);
-            elm_object_style_set(newincognitotabButton, "tab_button");
-            evas_object_smart_callback_add(newincognitotabButton, "clicked", tizen_browser::base_ui::TabUI::_newincognitotab_clicked, data);
-            return newincognitotabButton;
-        }
-        if (!strncmp(part_name3, part, part_name3_len)) {
-            Evas_Object *closetabsButton = elm_button_add(obj);
-            elm_object_style_set(closetabsButton, "tab_button");
-            evas_object_smart_callback_add(closetabsButton, "clicked", tizen_browser::base_ui::TabUI::_closetabs_clicked, data);
-            return closetabsButton;
-        }
-        if (!strncmp(part_name4, part, part_name4_len)) {
-            Evas_Object *close_click = elm_button_add(obj);
-            elm_object_style_set(close_click, "tab_button");
-            evas_object_smart_callback_add(close_click, "clicked", TabUI::close_clicked_cb, data);
-            return close_click;
-        }
-    }
-    return nullptr;
-}
 
-void TabUI::close_clicked_cb(void* data, Evas_Object*, void*)
+void TabUI::_close_clicked(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     if (data) {
-        ItemData * id = static_cast<ItemData*>(data);
-        id->tabUI->closeTabUIClicked(std::string());
-        id->tabUI->clearItems();
+        TabUI * tabUI = static_cast<TabUI*>(data);
+        tabUI->closeTabUIClicked(std::string());
+        tabUI->clearItems();
     }
 }
 
 void TabUI::hide()
 {
-    evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar_genlist"));
-    evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar_genlist"));
+    evas_object_hide(elm_layout_content_get(m_tab_layout, "action_bar"));
+    evas_object_hide(elm_layout_content_get(m_tab_layout, "top_bar"));
     evas_object_hide(elm_layout_content_get(m_tab_layout, "tab_gengird"));
     evas_object_hide(m_tab_layout);
 }
 
-void TabUI::showTopButtons()
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    elm_theme_extension_add(nullptr, m_edjFilePath.c_str());
-    m_genListTop = elm_genlist_add(m_tab_layout);
-    elm_object_part_content_set(m_tab_layout, "top_bar_genlist", m_genListTop);
-    elm_genlist_homogeneous_set(m_genListTop, EINA_FALSE);
-    elm_genlist_multi_select_set(m_genListTop, EINA_FALSE);
-    elm_genlist_select_mode_set(m_genListTop, ELM_OBJECT_SELECT_MODE_ALWAYS);
-    elm_genlist_mode_set(m_genListTop, ELM_LIST_LIMIT);
-    elm_genlist_decorate_mode_set(m_genListTop, EINA_TRUE);
-    evas_object_size_hint_weight_set(m_genListTop, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-//  evas_object_smart_callback_add(m_genList, "item,focused", focusItem, this);
-//  evas_object_smart_callback_add(m_genList, "item,unfocused", unFocusItem, nullptr);
-
-    m_itemClassTop = elm_genlist_item_class_new();
-    m_itemClassTop->item_style = "top_buttons";
-    m_itemClassTop->func.text_get = nullptr;
-    m_itemClassTop->func.content_get = &listTopButtonItemsContentGet;
-    m_itemClassTop->func.state_get = nullptr;
-    m_itemClassTop->func.del = nullptr;
-
-    ItemData *id = new ItemData;
-    id->tabUI = this;
-    Elm_Object_Item *elmItem = elm_genlist_item_append(m_genListTop,          //genlist
-                                                       m_itemClassTop,        //item Class
-                                                       id,
-                                                       nullptr,               //parent item
-                                                       ELM_GENLIST_ITEM_NONE, //item type
-                                                       nullptr,
-                                                       nullptr                //data passed to above function
-                                                      );
-    id->e_item = elmItem;
-    ItemData *id2 = new ItemData;
-    id2->tabUI = this;
-    Elm_Object_Item *elmItem2 = elm_genlist_item_append(m_genListTop,          //genlist
-                                                        m_itemClassTop,        //item Class
-                                                        id2,
-                                                        nullptr,               //parent item
-                                                        ELM_GENLIST_ITEM_NONE, //item type
-                                                        nullptr,
-                                                        nullptr                //data passed to above function
-                                                       );
-    id2->e_item = elmItem2;
-
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-}
-
-Evas_Object* TabUI::listTopButtonItemsContentGet(void* data, Evas_Object* obj , const char* part)
+Evas_Object* TabUI::createTopButtons(Evas_Object* parent)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if (data && obj && part) {
-        const char *part_name1 = "openedtabs_button";
-        static const int part_name1_len = strlen(part_name1);
-        const char *part_name2 = "onotherdevices_button";
-        static const int part_name2_len = strlen(part_name2);
-
-        if (!strncmp(part_name1, part, part_name1_len)) {
-            Evas_Object *openedtabsButton = elm_button_add(obj);
-            elm_object_style_set(openedtabsButton, "tab_button");
-            evas_object_smart_callback_add(openedtabsButton, "clicked", tizen_browser::base_ui::TabUI::_openedtabs_clicked, data);
-            return openedtabsButton;
-        }
-        if (!strncmp(part_name2, part, part_name2_len)) {
-            Evas_Object *onotherdevicesButton = elm_button_add(obj);
-            elm_object_style_set(onotherdevicesButton, "tab_button");
-            evas_object_smart_callback_add(onotherdevicesButton, "clicked", tizen_browser::base_ui::TabUI::_onotherdevices_clicked, data);
-            return onotherdevicesButton;
-        }
-    }
-    return nullptr;
+    M_ASSERT(parent);
+
+    Evas_Object* topLayout = elm_layout_add(parent);
+    elm_layout_file_set(topLayout, m_edjFilePath.c_str(), "top_buttons_layout");
+    evas_object_size_hint_weight_set(topLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_size_hint_align_set(topLayout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+    Evas_Object *button = elm_button_add(topLayout);
+    elm_object_style_set(button, "tab_button");
+    evas_object_smart_callback_add(button, "clicked", _openedtabs_clicked, this);
+    //TODO: "openedtabs_button" is not swallow, change it when implementing callbacks
+    elm_object_part_content_set(topLayout, "openedtabs_button", button);
+
+    button = elm_button_add(topLayout);
+    elm_object_style_set(button, "tab_button");
+    //TODO: "onotherdevices_button" is not swallow, change it when implementing callbacks
+    evas_object_smart_callback_add(button, "clicked", _onotherdevices_clicked, this);
+    elm_object_part_content_set(topLayout, "onotherdevices_button", button);
+
+    return topLayout;
 }
 
 void TabUI::_newtab_clicked(void * data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     if (data) {
-        ItemData* itemData = static_cast<ItemData*>(data);
-        itemData->tabUI->clearItems();
-        itemData->tabUI->newTabClicked(std::string());
+        TabUI* tabUI = static_cast<TabUI*>(data);
+        tabUI->clearItems();
+        tabUI->newTabClicked(std::string());
     }
 
 }
@@ -331,9 +220,9 @@ void TabUI::_newincognitotab_clicked(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     if (data) {
-        ItemData* itemData = static_cast<ItemData*>(data);
-        itemData->tabUI->clearItems();
-        itemData->tabUI->newIncognitoTabClicked(std::string());
+        TabUI* tabUI = static_cast<TabUI*>(data);
+        tabUI->clearItems();
+        tabUI->newIncognitoTabClicked(std::string());
     }
 }
 
@@ -341,8 +230,8 @@ void TabUI::_closetabs_clicked(void* data, Evas_Object*, void*)
 {
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     if (data) {
-        ItemData* itemData = static_cast<ItemData*>(data);
-        itemData->tabUI->closeTabsClicked(std::string());
+        TabUI* tabUI = static_cast<TabUI*>(data);
+        tabUI->closeTabsClicked(std::string());
     }
 }
 
@@ -421,7 +310,6 @@ Evas_Object * TabUI::_tab_grid_content_get(void *data, Evas_Object *obj, const c
 void TabUI::_itemSelected(void*, Evas_Object*, void*)
 {
     BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
-//  self->historyClicked(itemData->item);
 }
 
 void TabUI::_thumbSelected(void *data, Evas_Object*, void*)
@@ -439,8 +327,6 @@ void TabUI::clearItems()
     BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
     hide();
     elm_gengrid_clear(m_gengrid);
-    elm_genlist_clear(m_genListActionBar);
-    elm_genlist_clear(m_genListTop);
     m_map_tab_views.clear();
 }
 
@@ -462,29 +348,6 @@ void TabUI::setEmptyGengrid(bool setEmpty)
     }
 }
 
-void TabUI::focusItem(void*, Evas_Object*, void* event_info)
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if (event_info) {
-        Elm_Object_Item *item = static_cast<Elm_Object_Item*>(event_info);
-        elm_object_item_signal_emit( item, "mouse,in", "over2");
-
-        // selected manually
-        elm_gengrid_item_selected_set(item, EINA_TRUE);
-    }
-}
-
-void TabUI::unFocusItem(void*, Evas_Object*, void* event_info)
-{
-    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-    if (event_info) {
-        Elm_Object_Item *item = static_cast<Elm_Object_Item*>(event_info);
-        elm_object_item_signal_emit( item, "mouse,out", "over2");
-
-        // unselected manually
-        elm_gengrid_item_selected_set(item, EINA_FALSE);
-    }
-}
 
 }
 }
index 96941321457c23ca0a177183844b664a92b08552..19d5507fea6d914c5387908d3d67ed1fbc7b3ea3 100644 (file)
@@ -36,10 +36,8 @@ class BROWSER_EXPORT TabUI
 public:
     TabUI();
     ~TabUI();
-    void show(Evas_Object *main_layout);
+    void show(Evas_Object *parent);
     virtual std::string getName();
-    void showActionBar();
-    void showTopButtons();
     void clearItems();
     void hide();
 
@@ -53,17 +51,15 @@ public:
     boost::signals2::signal<void (const std::string & )> openedTabsClicked;
     boost::signals2::signal<void (const std::string & )> onOtherDevicesClicked;
     boost::signals2::signal<void (const std::string & )> closeTabUIClicked;
-private:
-    static Evas_Object* listActionBarContentGet(void *data, Evas_Object *obj, const char *part);
-    static Evas_Object* listTopButtonItemsContentGet(void *data, Evas_Object *obj, const char *part);
 
+private:
     static char* _grid_text_get(void *data, Evas_Object *obj, const char *part);
     static Evas_Object * _tab_grid_content_get(void *data, Evas_Object *obj, const char *part);
     static void _itemSelected(void * data, Evas_Object * obj, void * event_info);
     static void _item_deleted(void *data, Evas_Object *obj);
     static void _thumbSelected(void * data, Evas_Object * obj, void * event_info);
     static void _deleteBookmark(void *data, Evas_Object *obj, void *event_info);
-    static void close_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+    static void _close_clicked(void *data, Evas_Object *obj, void *event_info);
     void setEmptyGengrid(bool setEmpty);
 
     static void _openedtabs_clicked(void * data, Evas_Object * obj, void * event_info);
@@ -71,23 +67,22 @@ private:
     static void _newincognitotab_clicked(void * data, Evas_Object * obj, void * event_info);
     static void _closetabs_clicked(void * data, Evas_Object * obj, void * event_info);
     static void _onotherdevices_clicked(void * data, Evas_Object * obj, void * event_info);
+
+    Evas_Object* createTabUILayout(Evas_Object* parent);
+    Evas_Object* createActionBar(Evas_Object* parent);
+    Evas_Object* createTopButtons(Evas_Object* parent);
+    Evas_Object* createNoHistoryLabel();
+    void createTabItemClass();
+
 private:
     Evas_Object *m_tab_layout;
-    Evas_Object *m_genListActionBar;
-    Elm_Genlist_Item_Class *m_itemClassActionBar;
-    Evas_Object *m_genListTop;
-    Elm_Genlist_Item_Class *m_itemClassTop;
     Evas_Object *m_gengrid;
     Evas_Object *m_parent;
-    
+
     Elm_Gengrid_Item_Class * m_item_class;
     std::map<std::string,Elm_Object_Item*> m_map_tab_views;
     bool m_gengridSetup;
     std::string m_edjFilePath;
-    Evas_Object *createNoHistoryLabel();
-
-    static void focusItem(void* data, Evas_Object* obj, void* event_info);
-    static void unFocusItem(void* data, Evas_Object* obj, void* event_info);
 };
 
 }
index e4e88cda086159c953fb5a60317ed71905a6b887..0094215f168feee9f96513251fb894ecd31d9b93 100644 (file)
@@ -140,7 +140,7 @@ group {
             image: "web_shadow.png" COMP;
         }
         parts {
-            part { name: "action_bar_genlist_bg";
+            part { name: "action_bar_bg";
                 type: RECT;
                 mouse_events: 0;
                 description { state: "default" 0.0;
@@ -157,7 +157,7 @@ group {
                     }
                 }
             }
-          part { name: "top_bar_genlist_bg";
+          part { name: "top_bar_bg";
                 type: RECT;
                 mouse_events: 0;
                 description { state: "default" 0.0;
@@ -167,7 +167,7 @@ group {
                                 max: 1920 181;
                                 color: 70 143 254 255;
                     rel1 {
-                                                relative: 0 1; to: "action_bar_genlist_bg";
+                                                relative: 0 1; to: "action_bar_bg";
                     }
                     rel2{
                                                 relative: 1 1;
@@ -184,7 +184,7 @@ group {
                                max: 1920 714;
                                         color: 231 231 231 255;
                     rel1 {
-                                                relative: 0 1; to: "top_bar_genlist_bg";
+                                                relative: 0 1; to: "top_bar_bg";
                     }
                     rel2{
                                                 relative: 1 1;
@@ -208,7 +208,7 @@ group {
                     }
                 }
             }
-            part { name: "action_bar_genlist";
+            part { name: "action_bar";
                 type : SWALLOW;
                 scale: 1;
                 description {
@@ -218,7 +218,7 @@ group {
                     max: 1920 104;
                     align: 0.0 0.0;
                     fixed: 0 0;
-                    rel1 { relative: 0.0 0.0; to: "action_bar_genlist_bg";}
+                    rel1 { relative: 0.0 0.0; to: "action_bar_bg";}
                     rel2 { relative: 1.0 1.0; }
                 }
                 description {
@@ -232,7 +232,7 @@ group {
                     visible: 1;
                 }
              }
-            part { name: "top_bar_genlist";
+            part { name: "top_bar";
                 type : SWALLOW;
                 scale: 1;
                 description {
@@ -242,7 +242,7 @@ group {
                    max: 1920 181;
                     align: 0.0 0.0;
                     fixed: 0 0;
-                    rel1 { relative: 0.0 0.0; to: "top_bar_genlist_bg"; offset: 0 0;}
+                    rel1 { relative: 0.0 0.0; to: "top_bar_bg"; offset: 0 0;}
                     rel2 { relative: 1.0 1.0; }
                 }
                 description {
@@ -292,7 +292,7 @@ group {
                     min: 1920 14;
                     max: 1920 14;
                     image.normal: "web_shadow.png";
-                    rel1 { relative: 0.0 1.0; to: "action_bar_genlist_bg"; }
+                    rel1 { relative: 0.0 1.0; to: "action_bar_bg"; }
                     rel2 { relative: 1.0 1.0; }
                 }
              }
@@ -306,7 +306,7 @@ group {
                     max: 1920 81;
                     align: 0.0 0.0;
                     fixed: 0 0;
-                    rel1 { relative: 0.0 0.0; to: "top_bar_genlist_bg"; offset: 0 0;}
+                    rel1 { relative: 0.0 0.0; to: "top_bar_bg"; offset: 0 0;}
                     rel2 { relative: 1.0 1.0; }
                 }
                 description {
@@ -586,7 +586,7 @@ group { name: "elm/gengrid/item/tab_item/default";
                }
        }
 }
-group { name: "elm/genlist/item/action_bar_items/default";
+group { name: "action_bar_layout";
         min: 1920 104;
         max: 1920 104;
         data.item: "texts" "closetabs_text";
@@ -1157,7 +1157,7 @@ group { name: "elm/genlist/item/action_bar_items/default";
     }           
 }
 
-group { name: "elm/genlist/item/top_buttons/default";
+group { name: "top_buttons_layout";
         min: 1920 181;
         max: 1920 181;
         data.item: "texts" "openedtabs_button_text onotherdevices_button_text";