{
bp_bookmark_info_fmt bookmark_info;
bp_bookmark_adaptor_get_easy_all(ids[i], &bookmark_info);
-
- std::shared_ptr<BookmarkItem> bookmark = std::make_shared<BookmarkItem>(std::string(bookmark_info.url),std::string(bookmark_info.title), std::string(""),(int) bookmark_info.parent, ids[i]);
+ std::string url = (bookmark_info.url != nullptr) ? bookmark_info.url : "";
+ std::string title = (bookmark_info.title != nullptr) ? bookmark_info.title : "";
+ std::shared_ptr<BookmarkItem> bookmark = std::make_shared<BookmarkItem>(url, title, std::string(""),(int) bookmark_info.parent, ids[i]);
std::shared_ptr<tizen_browser::tools::BrowserImage> bi = std::make_shared<tizen_browser::tools::BrowserImage>();
bi->imageType = tizen_browser::tools::BrowserImage::ImageType::ImageTypePNG;
add_subdirectory(MainUI)
# MERGE_ME
#add_subdirectory(HistoryUI)
-#add_subdirectory(TabUI)
+add_subdirectory(TabUI)
add_subdirectory(SimpleUI)
#MERGE_ME
#add_subdirectory(SettingsUI)
include_directories(${CMAKE_SOURCE_DIR}/services/MainUI)
#MERGE_ME
#include_directories(${CMAKE_SOURCE_DIR}/services/SettingsUI)
-#include_directories(${CMAKE_SOURCE_DIR}/services/TabUI)
+include_directories(${CMAKE_SOURCE_DIR}/services/TabUI)
include_directories(${CMAKE_SOURCE_DIR}/services/PlatformInputManager)
include_directories(${CMAKE_SOURCE_DIR}/services/SessionStorage)
#MERGE_ME
#add_dependencies(${PROJECT_NAME} HistoryUI)
#add_dependencies(${PROJECT_NAME} SettingsUI)
-#add_dependencies(${PROJECT_NAME} TabUI)
+add_dependencies(${PROJECT_NAME} TabUI)
add_dependencies(${PROJECT_NAME} PlatformInputManager)
add_dependencies(${PROJECT_NAME} SessionStorage)
target_link_libraries(${PROJECT_NAME} SimpleURI)
#MERGE_ME
#target_link_libraries(${PROJECT_NAME} HistoryUI)
#target_link_libraries(${PROJECT_NAME} SettingsUI)
-#target_link_libraries(${PROJECT_NAME} TabUI)
+target_link_libraries(${PROJECT_NAME} TabUI)
+#MERGE_ME
#target_link_libraries(${PROJECT_NAME} BookmarkManagerUI)
target_link_libraries(${PROJECT_NAME} PlatformInputManager)
target_link_libraries(${PROJECT_NAME} SessionStorage)
#if MERGE_ME
, m_settings()
, m_moreMenuUI()
+#endif
, m_tabUI()
+#if MERGE_ME
, m_bookmarkManagerUI()
#endif
, m_mainUI()
void SimpleUI::showTabUI()
{
-#if MERGE_ME
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_tabUI =
- std::dynamic_pointer_cast
- <tizen_browser::base_ui::TabUI,tizen_browser::core::AbstractService>
- (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.tabui"));
- M_ASSERT(m_tabUI);
- m_tabUI->closeTabUIClicked.connect(boost::bind(&SimpleUI::closeTabUI, this,_1));
- m_tabUI->newTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this,_1));
- m_tabUI->tabClicked.connect(boost::bind(&SimpleUI::tabClicked, this,_1));
- m_tabUI->newIncognitoTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this,_1));
- m_tabUI->show(m_window.get());
- m_tabUI->addTabItems(m_webEngine->getTabContents());
-#endif
+ m_tabUI = std::dynamic_pointer_cast<tizen_browser::base_ui::TabUI,tizen_browser::core::AbstractService>
+ (tizen_browser::core::ServiceManager::getInstance().getService("org.tizen.browser.tabui"));
+ M_ASSERT(m_tabUI);
+ m_tabUI->closeTabUIClicked.connect(boost::bind(&SimpleUI::closeTabUI, this,_1));
+ m_tabUI->newTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this,_1));
+ m_tabUI->tabClicked.connect(boost::bind(&SimpleUI::tabClicked, this,_1));
+ m_tabUI->newIncognitoTabClicked.connect(boost::bind(&SimpleUI::newTabClicked, this,_1));
+ m_tabUI->show(m_window.get());
+ m_tabUI->addTabItems(m_webEngine->getTabContents());
}
void SimpleUI::closeTabUI(const std::string& str)
{
-#if MERGE_ME
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- m_tabUI = nullptr;
-#endif
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ m_tabUI = nullptr;
}
void SimpleUI::newTabClicked(const std::string& str)
#include "SettingsUI.h"
#endif
#include "MainUI.h"
-#if MERGE_ME
#include "TabUI.h"
-#endif
#include "ButtonBar.h"
#include "HistoryService.h"
#if MERGE_ME
#if MERGE_ME
std::shared_ptr<tizen_browser::base_ui::HistoryUI> m_historyUI;
std::shared_ptr<tizen_browser::base_ui::SettingsUI> m_settingsUI;
- std::shared_ptr<tizen_browser::base_ui::TabUI> m_tabUI;
#endif
+ std::shared_ptr<tizen_browser::base_ui::TabUI> m_tabUI;
std::shared_ptr<tizen_browser::base_ui::ZoomList> m_zoomList;
std::shared_ptr<tizen_browser::base_ui::TabList> m_tabList;
std::shared_ptr<tizen_browser::services::PlatformInputManager> m_platformInputManager;
--- /dev/null
+project(TabUI)
+
+set(TabUI_SRCS
+ TabUI.cpp
+ )
+
+set(TabUI_HEADERS
+ TabUI.h
+ )
+
+include(Coreheaders)
+include(EFLHelpers)
+
+include_directories(${CMAKE_SOURCE_DIR}/services/FavoriteService)
+
+add_library(${PROJECT_NAME} SHARED ${TabUI_SRCS})
+
+if(TIZEN_BUILD)
+ target_link_libraries(${PROJECT_NAME} ${pkgs_LDFLAGS})
+endif(TIZEN_BUILD)
+
+install(TARGETS ${PROJECT_NAME}
+ LIBRARY DESTINATION services
+ ARCHIVE DESTINATION services/static)
+
+include(EDCCompile)
+EDJ_TARGET(TabUI.edj
+ ${CMAKE_CURRENT_SOURCE_DIR}/edc/TabUI.edc
+ ${CMAKE_CURRENT_BINARY_DIR})
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <boost/concept_check.hpp>
+#include <vector>
+#include <AbstractMainWindow.h>
+
+#include "TabUI.h"
+#include "ServiceManager.h"
+#include "BrowserLogger.h"
+#include "Tools/EflTools.h"
+#include "../Tools/BrowserImage.h"
+
+#define efl_scale (elm_config_scale_get() / elm_app_base_scale_get())
+
+namespace tizen_browser{
+namespace base_ui{
+
+EXPORT_SERVICE(TabUI, "org.tizen.browser.tabui")
+
+typedef struct _TabItemData
+{
+ std::shared_ptr<tizen_browser::basic_webengine::TabContent> item;
+ 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_gengrid(NULL)
+ , m_tab_layout(NULL)
+ , m_genListTop(NULL)
+ , m_genListActionBar(NULL)
+ , m_parent(NULL)
+ , m_itemClassActionBar(NULL)
+ , m_itemClassTop(NULL)
+ , m_item_class(NULL)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ edjFilePath = EDJE_DIR;
+ edjFilePath.append("TabUI/TabUI.edj");
+}
+
+TabUI::~TabUI()
+{
+
+}
+
+void TabUI::show(Evas_Object* parent)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ //m_parent = p;
+ elm_theme_extension_add(NULL, edjFilePath.c_str());
+ m_tab_layout = elm_layout_add(parent);
+ elm_layout_file_set(m_tab_layout, 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, NULL);
+ evas_object_smart_callback_add(m_gengrid, "item,unfocused", unFocusItem, NULL);
+ 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";
+ m_item_class->func.text_get = _grid_text_get;
+ m_item_class->func.content_get = _tab_grid_content_get;
+ m_item_class->func.state_get = NULL;
+ m_item_class->func.del = NULL;
+ }
+
+ M_ASSERT(m_parent);
+ elm_gengrid_align_set(m_gengrid, 0, 0);
+ elm_gengrid_select_mode_set(m_gengrid, ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_gengrid_multi_select_set(m_gengrid, EINA_FALSE);
+ elm_gengrid_horizontal_set(m_gengrid, EINA_FALSE);
+ elm_gengrid_highlight_mode_set(m_gengrid, EINA_TRUE);
+ elm_scroller_policy_set(m_gengrid, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+ elm_scroller_page_size_set(m_gengrid, 0, 327);
+
+ evas_object_size_hint_weight_set(m_gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(m_gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_gengrid_item_size_set(m_gengrid, 364 * efl_scale, 320 * efl_scale);
+}
+
+
+void TabUI::showActionBar()
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ elm_theme_extension_add(NULL, 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, NULL);*/
+
+ m_itemClassActionBar = elm_genlist_item_class_new();
+ m_itemClassActionBar->item_style = "action_bar_items";
+ m_itemClassActionBar->func.text_get = NULL; // &listTopItemTextGet;
+ m_itemClassActionBar->func.content_get = &listActionBarContentGet;
+ m_itemClassActionBar->func.state_get = 0;
+ m_itemClassActionBar->func.del = 0;
+
+ ItemData * id = new ItemData;
+ id->tabUI = this;
+ Elm_Object_Item* elmItem = elm_genlist_item_append(m_genListActionBar, //genlist
+ m_itemClassActionBar, //item Class
+ id,
+ NULL, //parent item
+ ELM_GENLIST_ITEM_NONE,//item type
+ NULL,
+ NULL //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,
+ NULL, //parent item
+ ELM_GENLIST_ITEM_NONE,//item type
+ NULL,
+ NULL //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,
+ NULL, //parent item
+ ELM_GENLIST_ITEM_NONE,//item type
+ NULL,
+ NULL //data passed to above function
+ );
+ id3->e_item = elmItem3;
+
+ /*ItemData * id4 = new ItemData;
+ id4->tabUI = this;
+ Elm_Object_Item* elmItem4 = elm_genlist_item_append(m_genListActionBar, //genlist
+ m_itemClassActionBar, //item Class
+ //id.get(), //item data
+ id4,
+ NULL, //parent item
+ ELM_GENLIST_ITEM_NONE,//item type
+ NULL,
+ NULL //data passed to above function
+ );
+ id4->e_item = elmItem4;*/
+
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+
+}
+
+Evas_Object* TabUI::listActionBarContentGet(void* data, Evas_Object* obj , const char* part)
+{
+ //ItemData *itemData = reinterpret_cast<ItemData*>(data);
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ if(!strcmp(part, "newtab_click"))
+ {
+ BROWSER_LOGD("############in new tab button part##################");
+ 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;
+ }
+ else if(!strcmp(part, "newincognitotab_click"))
+ {
+ 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;
+ }
+ else if(!strcmp(part, "closetabs_click"))
+ {
+ 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;
+ }
+ else if(!strcmp(part, "close_click"))
+ {
+ 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 NULL;
+}
+
+void TabUI::close_clicked_cb(void* data, Evas_Object* /* obj */, void* /* event_info */)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ ItemData * id = static_cast<ItemData *>(data);
+ id->tabUI->closeTabUIClicked(std::string());
+ id->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, "tab_gengird"));
+ evas_object_hide(m_tab_layout);
+}
+
+void TabUI::showTopButtons()
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ elm_theme_extension_add(NULL, 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, NULL);*/
+
+ m_itemClassTop = elm_genlist_item_class_new();
+ m_itemClassTop->item_style = "top_buttons";
+ m_itemClassTop->func.text_get = NULL;// &listTapTopItemTextGet;
+ m_itemClassTop->func.content_get = &listTopButtonItemsContentGet;
+ m_itemClassTop->func.state_get = 0;
+ m_itemClassTop->func.del = 0;
+
+ ItemData * id = new ItemData;
+ id->tabUI = this;
+ Elm_Object_Item* elmItem = elm_genlist_item_append(m_genListTop, //genlist
+ m_itemClassTop, //item Class
+ id,
+ NULL, //parent item
+ ELM_GENLIST_ITEM_NONE,//item type
+ NULL,
+ NULL //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,
+ NULL, //parent item
+ ELM_GENLIST_ITEM_NONE,//item type
+ NULL,
+ NULL //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)
+{
+ //ItemData *itemData = reinterpret_cast<ItemData*>(data);
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ if(!strcmp(part, "openedtabs_button"))
+ {
+ 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;
+ }
+ else if(!strcmp(part, "onotherdevices_button"))
+ {
+ 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 NULL;
+}
+
+void TabUI::_newtab_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ ItemData* itemData = reinterpret_cast<ItemData *>(data);
+ itemData->tabUI->clearItems();
+ itemData->tabUI->newTabClicked(std::string());
+
+}
+void TabUI::_openedtabs_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ /*ItemData* itemData = reinterpret_cast<ItemData *>(data);
+ itemData->tabUI->newTabClicked(std::string());*/
+}
+
+void TabUI::_onotherdevices_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ /*ItemData* itemData = reinterpret_cast<ItemData *>(data);
+ itemData->tabUI->newTabClicked(std::string());*/
+}
+
+void TabUI::_newincognitotab_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ ItemData* itemData = reinterpret_cast<ItemData *>(data);
+ itemData->tabUI->clearItems();
+ itemData->tabUI->newIncognitoTabClicked(std::string());
+}
+
+void TabUI::_closetabs_clicked(void * data, Evas_Object * /* obj */, void * event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ ItemData* itemData = reinterpret_cast<ItemData *>(data);
+ itemData->tabUI->closeTabsClicked(std::string());
+}
+
+/*
+char* TabUI::listItemTopTextGet(void* data, Evas_Object* obj , const char* part)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ ItemData * id = static_cast<ItemData *>(data);
+ if(!strcmp(part, "Tabmanager"))
+ {
+ if(!id->h_item->getTitle().empty()){
+ return strdup(id->h_item->getTitle().c_str());
+ }
+ }
+ else if(!strcmp(part, "tab_url"))
+ {
+ if(!id->h_item->getUrl().empty()){
+ return strdup(id->h_item->getUrl().c_str());
+ }
+ }
+ return strdup("");
+}
+*/
+
+void TabUI::addTabItem(std::shared_ptr<tizen_browser::basic_webengine::TabContent> hi)
+{
+ BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+ if (m_map_tab_views.size() >= 10)
+ return;
+ TabItemData *itemData = new TabItemData();
+ itemData->item = hi;
+ itemData->tabUI = std::shared_ptr<tizen_browser::base_ui::TabUI>(this);
+ Elm_Object_Item* tabView = elm_gengrid_item_append(m_gengrid, m_item_class, itemData, NULL, this);
+ m_map_tab_views.insert(std::pair<std::string,Elm_Object_Item*>(hi->getTitle(),tabView));
+
+ // unselect by default
+ elm_gengrid_item_selected_set(tabView, EINA_FALSE);
+ setEmptyGengrid(false);
+}
+
+void TabUI::addTabItems(std::vector<std::shared_ptr<tizen_browser::basic_webengine::TabContent>>items)
+{
+ BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+ int i = 0;
+ for (auto it = items.begin(); it != items.end(); ++it) {
+ i++;
+ if (i > 10) break;
+ addTabItem(*it);
+ }
+}
+
+
+char* TabUI::_grid_text_get(void *data, Evas_Object *obj, const char *part)
+{
+ TabItemData *itemData = reinterpret_cast<TabItemData*>(data);
+ if (!strcmp(part, "tab_title")) {
+ return strdup(itemData->item->getTitle().c_str());
+ }
+ if (!strcmp(part, "tab_url")) {
+ //return strdup(itemData->item->getUrl().c_str());
+ return strdup("");
+ }
+
+ return strdup("");
+}
+
+Evas_Object * TabUI::_tab_grid_content_get(void *data, Evas_Object *obj, const char *part)
+{
+
+ BROWSER_LOGD("%s:%d %s part=%s", __FILE__, __LINE__, __func__, part);
+ TabItemData *itemData = reinterpret_cast<TabItemData*>(data);
+
+ if (!strcmp(part, "tab_thumbnail")) {
+ if (itemData->item->getThumbnail()) {
+ Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(itemData->item->getThumbnail(), itemData->tabUI->m_parent);
+ return thumb;
+ }
+ else {
+ return NULL;
+ }
+ }
+ else if (!strcmp(part, "tab_thumbButton")) {
+ Evas_Object *thumbButton = elm_button_add(obj);
+ elm_object_style_set(thumbButton, "tab_thumbButton");
+ evas_object_smart_callback_add(thumbButton, "clicked", tizen_browser::base_ui::TabUI::_thumbSelected, data);
+ return thumbButton;
+ }
+ return NULL;
+
+}
+
+void TabUI::_itemSelected(void * data, Evas_Object * /* obj */, void * event_info)
+{
+ Elm_Object_Item * selected = reinterpret_cast<Elm_Object_Item *>(event_info);
+ TabItemData * itemData = reinterpret_cast<TabItemData *>(elm_object_item_data_get(selected));
+ TabUI * self = reinterpret_cast<TabUI *>(data);
+
+// self->historyClicked(itemData->item);
+}
+
+void TabUI::_thumbSelected(void * data, Evas_Object * /* obj */, void * /* event_info */ )
+{
+ BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
+ TabItemData * itemData = reinterpret_cast<TabItemData *>(data);
+ itemData->tabUI->clearItems();
+ itemData->tabUI->tabClicked(itemData->item->getId());
+}
+
+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();
+}
+
+Evas_Object* TabUI::createNoHistoryLabel()
+{
+ Evas_Object *label = elm_label_add(m_parent);
+ elm_object_text_set(label, "No favorite websites.");
+ evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ return label;
+}
+
+void TabUI::setEmptyGengrid(bool setEmpty)
+{
+ if(setEmpty) {
+ elm_object_part_content_set(m_gengrid, "elm.swallow.empty", createNoHistoryLabel());
+ } else {
+ elm_object_part_content_set(m_gengrid, "elm.swallow.empty", NULL);
+ }
+}
+
+void TabUI::focusItem(void* /*data*/, Evas_Object* /*obj*/, void* event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ Elm_Object_Item *item = reinterpret_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* /*data*/, Evas_Object* /*obj*/, void* event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ Elm_Object_Item *item = reinterpret_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);
+}
+
+}
+}
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef TABUI_H
+#define TABUI_H
+
+#include <Evas.h>
+#include <boost/signals2/signal.hpp>
+
+#include "AbstractUIComponent.h"
+#include "AbstractService.h"
+#include "ServiceFactory.h"
+#include "service_macros.h"
+#include "services/HistoryService/HistoryItem.h"
+#include "TabId.h"
+namespace tizen_browser{
+namespace base_ui{
+
+class BROWSER_EXPORT TabUI
+ : public tizen_browser::interfaces::AbstractUIComponent
+ , public tizen_browser::core::AbstractService
+{
+public:
+ TabUI();
+ ~TabUI();
+ void show(Evas_Object *main_layout);
+ virtual std::string getName();
+ void showActionBar();
+ void showTopButtons();
+ void clearItems();
+ void hide();
+
+ void addTabItem(std::shared_ptr<tizen_browser::basic_webengine::TabContent>);
+ void addTabItems(std::vector<std::shared_ptr<tizen_browser::basic_webengine::TabContent> > items);
+// void addBookmarkItem(std::shared_ptr<tizen_browser::services::BookmarkItem>);
+// void addbookmarkItems(std::vector<std::shared_ptr<tizen_browser::services::BookmarkItem> >);
+
+ boost::signals2::signal<void (const tizen_browser::basic_webengine::TabId&)> tabClicked;
+ boost::signals2::signal<void (const std::string & )> newTabClicked;
+ boost::signals2::signal<void (const std::string & )> newIncognitoTabClicked;
+ boost::signals2::signal<void (const std::string & )> closeTabsClicked;
+ 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);
+ //static char* listItemTextGet(void *data, Evas_Object *obj, const char *part);
+
+ 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);
+ void setEmptyGengrid(bool setEmpty);
+
+ static void _openedtabs_clicked(void * data, Evas_Object * obj, void * event_info);
+ static void _newtab_clicked(void * data, Evas_Object * obj, void * event_info);
+ 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);
+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 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);
+};
+
+}
+}
+
+#endif // BOOKMARKSUI_H
--- /dev/null
+#define DEBUG_RECT_OVER(over_part, r, g, b) \
+ part { name: __CONCAT("dbg_rect_at_", __stringify(__LINE__)); \
+ \
+scale:1; \
+ type : RECT; \
+ repeat_events: 1; \
+ description { \
+ state: "default" 0.0; \
+ visible: 1; \
+ color: r g b 128; \
+ rel1 { to: over_part; relative: 0 0; } \
+ rel2 { to: over_part; relative: 1 1; } \
+ } \
+ }
+
+collections
+{
+#define WIDTH 1920
+#define HEIGHT 181
+#define ITEM_WIDTH 374
+
+ group{
+ name: "elm/button/base/tab_button";
+ parts{
+ part{
+ name: "button";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ color: 0 0 0 0;
+ }
+ }
+ part{
+ name: "over";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0;to: "button";}
+ rel2 { relative: 1.0 1.0;to: "button";}
+ color: 0 0 0 0;
+ }
+ }
+ }
+ programs{
+ program {
+ name: "mouse_click";
+ signal: "mouse,clicked,1";
+ source: "over";
+ script {
+ emit("elm,action,click", "");
+ }
+ }
+ }
+ }
+
+group { name: "elm/button/base/tab_thumbButton";
+ images {
+ image: "ico_delete.png" COMP;
+ }
+ parts {
+ part { name: "elm.swallow.content";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 1;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ align: 0.0 0.0;
+ }
+ }
+ }
+
+ programs {
+ program { name: "mouse,clicked";
+ signal: "mouse,down,1";
+ source: "elm.swallow.content";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ }
+}
+
+group {
+ name: "tab-layout";
+ data {
+ item: "highlight_focus" "off";
+ }
+ images {
+ image: "btn_bar_stop_nor.png" COMP;
+ }
+ color_classes{
+ color_class{
+ name: "defaultBgColor";
+ color: 18 22 34 255;
+ }
+ color_class{
+ name: "focusBgColor";
+ color: 69 143 255 255;
+ }
+ color_class{
+ name: "highlightBgColor";
+ color: 69 143 255 102;
+ }
+ color_class{
+ name: "imageHighlight";
+ color: 255 255 255 102;
+ }
+ color_class{
+ name: "focusbtBgColor";
+ color: 22 120 224 255;
+ }
+ color_class{
+ name: "titleTextColor";
+ color: 74 74 74 255;
+ }
+ color_class{
+ name: "focusTextColor";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "highlightTextColor";
+ color: 255 255 255 51;
+ }
+ color_class{
+ name: "urlTextColor";
+ color: 116 116 116 204;
+ }
+ color_class{
+ name: "transparent";
+ color: 0 0 0 0;
+ }
+ }
+
+ images {
+ image: "web_shadow.png" COMP;
+ }
+ parts {
+ part { name: "action_bar_genlist_bg";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ min: 1920 104;
+ max: 1920 104;
+ color: 70 143 254 255;
+ rel1 {
+ relative: 0 0;
+ }
+ rel2{
+ relative: 1 1;
+ }
+ }
+ }
+ part { name: "top_bar_genlist_bg";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ min: 1920 181;
+ max: 1920 181;
+ color: 70 143 254 255;
+ rel1 {
+ relative: 0 1; to: "action_bar_genlist_bg";
+ }
+ rel2{
+ relative: 1 1;
+ }
+ }
+ }
+ part { name: "gengrid_bg";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ min: 1920 714;
+ max: 1920 714;
+ color: 231 231 231 255;
+ rel1 {
+ relative: 0 1; to: "top_bar_genlist_bg";
+ }
+ rel2{
+ relative: 1 1;
+ }
+ }
+ }
+ part { name: "no_of_tabs_bg";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ min: 1920 81;
+ max: 1920 81;
+ color: 231 231 231 255;
+ rel1 {
+ relative: 0 1; to: "gengrid_bg";
+ }
+ rel2{
+ relative: 1 1;
+ }
+ }
+ }
+ part { name: "action_bar_genlist";
+ type : SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1920 104;
+ max: 1920 104;
+ align: 0.0 0.0;
+ fixed: 0 0;
+ rel1 { relative: 0.0 0.0; to: "action_bar_genlist_bg";}
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "top_bar_genlist";
+ type : SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1920 181;
+ 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;}
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "tab_gengird";
+ type : SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1920 714;
+ max: 1920 714;
+ align: 0.0 0.0;
+ fixed: 0 0;
+ rel1 { relative: 0.0 0.0; to: "gengrid_bg"; offset: 63 63;}
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ part { name: "uri_bar_shadow";
+ type: IMAGE;
+ scale: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0.0 0.0;
+ fixed: 0 0;
+ min: 1920 14;
+ max: 1920 14;
+ image.normal: "web_shadow.png";
+ rel1 { relative: 0.0 1.0; to: "action_bar_genlist_bg"; }
+ rel2 { relative: 1.0 1.0; }
+ }
+ }
+ part { name: "text_genlist";
+ type : SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 1920 81;
+ 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;}
+ rel2 { relative: 1.0 1.0; }
+ }
+ description {
+ state: "hidden" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ description {
+ state: "visible" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+}
+
+
+/*group { name: "elm/genlist/base/openedtabs_onotherdevices";
+ data {
+ item: "focus_highlight" "off";
+ }
+
+ parts {
+ part { name: "clipper";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ color: 70 143 254 255;
+ rel1 {
+ relative: 0 0;
+ }
+ rel2{
+ relative: 1 1;
+ }
+ }
+ }
+ part { name: "background";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 {
+ relative: 0 0;
+ }
+ rel2{
+ relative: 1 1;
+ }
+ }
+ }
+ part { name: "elm.swallow.content";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ rel1 {
+ relative: 0 0;
+ offset: 62 0;
+ }
+ rel2 {
+ relative: 1 1;
+ offset: 0 0;
+ }
+ }
+ }
+ part { name: "elm.swallow.empty";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ align: 0.5 0.5;
+ rel1 {
+ relative: 0.5 0.5;
+ }
+ rel2 {
+ relative: 0.5 0.5;
+ }
+ }
+ }
+ }
+}*/
+
+group { name: "elm/gengrid/item/tab_item/default";
+ data.item: "texts" "tab_title tab_url";
+ data.item: "contents" "tab_thumbnail tab_thumbButton";
+ images {
+ image: "web_frame_selected.png" COMP;
+ image: "ico_bg_round_shape_37x37.png" COMP;
+ }
+ parts {
+ part { name: "bg";
+ type: RECT;
+ mouse_events: 0;
+ description { state: "default" 0.0;
+ min: 338 294;
+ max: 338 294;
+ visible: 1;
+ color: 255 255 255 255;
+ rel1.offset: -26 -26;
+ }
+ description { state: "selected";
+ inherit: "default" 0.0;
+ color: 70 143 254 255;
+ }
+ }
+
+ part { name: "tab_thumbnail";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ fixed: 1 0;
+ align: 0.0 0.0;
+ color : 255 255 255 255;
+ min: 338 198;
+ max: 338 198;
+ rel1 {
+ relative: 0.0 0.0; to: "bg";
+ }
+ rel2 {
+ relative: 1.0 1.0; to: "bg";
+ }
+ }
+ description { state: "selected";
+ inherit: "default" 0.0;
+ }
+ }
+
+ part { name: "focus_highlight";
+ type: IMAGE;
+ description { state: "default" 0.0;
+ rel1 {
+ to: "tab_thumbnail";
+ relative: 0.0 0.0;
+ }
+ rel2 {
+ to: "tab_thumbnail";
+ relative: 1.0 1.0;
+ }
+ image.normal: "web_frame_selected.png";
+ image.border: 8 8 8 0;
+ image.border_scale: 1;
+ image.middle: NONE;
+ visible: 0;
+ }
+ description { state: "selected";
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+
+ part { name: "background";
+ type: RECT;
+ description { state: "default" 0.0;
+ min: 338 87;
+ max: 338 87;
+ align: 0.0 0.0;
+ color: 255 255 255 255;
+ rel1 {
+ to: "tab_thumbnail";
+ relative: 0.0 1.0;
+ }
+ rel2 {
+ relative: 1.0 1.0;
+ }
+ }
+ description { state: "selected" 0.0;
+ inherit: "default" 0.0;
+ color: 70 143 254 255;
+ }
+ }
+
+ part { name: "tab_title";
+ type: TEXT;
+ description { state: "default" 0.0;
+ min: 300 48;
+ max: 300 48;
+ align: 0.0 0.5;
+ rel1 {
+ to: "background";
+ relative: 0.0 0.0;
+ offset: 17 0;
+ }
+ rel2 {
+ to: "background";
+ relative: 1.0 1.0;
+ }
+ color: 51 51 51 255;
+ text {
+ text: "Web page title";
+ font: "Sans";
+ size: 27;
+ align: 0 0.5;
+ }
+ }
+ description { state: "focus" 0.0;
+ inherit: "default" 0.0;
+ //color: focusTextColor;
+ }
+ description { state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ //color: highlightTextColor;
+ }
+ }
+
+ part { name: "tab_url";
+ type: TEXT;
+ description { state: "default" 0.0;
+ min: 300 48;
+ max: 300 48;
+ align: 0 0.5;
+ rel1 {
+ to: "tab_title";
+ relative: 0.0 1.0;
+ }
+ rel2 {
+ to: "tab_title";
+ relative: 1.0 1.0;
+ }
+ color: 153 153 153 255;
+ text {
+ text: "Web page url";
+ font: "Sans";
+ size: 24;
+ align: 0 0.5;
+ }
+ }
+ description { state: "focus" 0.0;
+ inherit: "default" 0.0;
+ //color: focusTextColor;
+ }
+ description { state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ //color: highlightTextColor;
+ }
+ }
+
+ part { name: "tab_thumbButton";
+ type: SWALLOW;
+ description { state: "default" 0.0;
+ rel1.to: "tab_thumbnail";
+ rel2.to: "tab_thumbnail";
+ }
+ }
+
+ part { name: "over2";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.to: "bg";
+ rel2.to: "background";
+ }
+ }
+ part { name: "over3";
+ type: RECT;
+ mouse_events: 1;
+ repeat_events: 1;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.to: "background";
+ rel2.to: "background";
+ }
+ }
+ }
+
+ programs{
+ program { name: "mouse_in";
+ signal: "mouse,in";
+ source: "over2";
+ action: STATE_SET "selected" 0.0;
+ target: "background";
+ target: "focus_highlight";
+ target: "bg";
+ }
+ program { name: "mouse_out";
+ signal: "mouse,out";
+ source: "over2";
+ action: STATE_SET "default" 0.0;
+ target: "background";
+ target: "focus_highlight";
+ target: "bg";
+ }
+ }
+}
+group { name: "elm/genlist/item/action_bar_items/default";
+ min: 1920 104;
+ max: 1920 104;
+ data.item: "texts" "closetabs_text";
+ data.item: "contents" "newtab_click newincognitotab_click closetabs_click close_click";
+ images {
+ image: "btn_bar_new_nor.png" COMP;
+ image: "btn_bar_new_foc.png" COMP;
+ image: "btn_bar_incognito_nor.png" COMP;
+ image: "btn_bar_incognito_foc.png" COMP;
+ }
+ parts{
+ part {
+ name: "bg_clipper";
+ scale:1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ align: 0 0;
+ min: 1920 104;
+ max: 1920 104;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+
+ part {
+ name: "newtab_button";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ color: 255 255 255 255;
+ align: 0 0;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 63 1;}
+ rel2 { relative: 1.0 1.0; to: "bg_clipper"; }
+ }
+ description {
+ state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusBgColor;
+ visible: 1;
+ }
+ description {
+ state: "focus" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusbtBgColor;
+ visible: 1;
+ }
+ }
+ part {
+ name: "newtab_icon";
+ type: IMAGE;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 0;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "newtab_button";}
+ rel2 { relative: 1.0 1.0; to: "newtab_button";}
+ image.normal: "btn_bar_new_nor.png";
+ }
+ description { state: "highlight" 0.0;
+ image.normal: "btn_bar_new_foc.png";
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "focus" 0.0;
+ inherit: "highlight" 0.0;
+ }
+ }
+ part {
+ name: "newtab_over";
+ scale:1;
+ type: RECT;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "newtab_button";}
+ rel2 { relative: 1.0 1.0; to: "newtab_button";}
+ color_class: transparent;
+ }
+ }
+
+ part {
+ name: "newtab_click";
+ scale:1;
+ type: SWALLOW;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "newtab_over";}
+ rel2 { relative: 1.0 1.0; to: "newtab_over";}
+ }
+ }
+
+ part {
+ name: "newincognitotab_button_bg";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ align: 0 0;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 175 1;}
+ rel2 { relative: 1.0 1.0; to: "bg_clipper"; }
+ }
+ }
+ part {
+ name: "newincognitotab_button";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 0;
+
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "newincognitotab_button_bg"; }
+ rel2 { relative: 1.0 1.0; to: "newincognitotab_button_bg"; }
+ color_class: transparent;
+ }
+ description {
+ state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusBgColor;
+ visible: 1;
+ }
+ description {
+ state: "focus" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusbtBgColor;
+ visible: 1;
+ }
+ }
+ part {
+ name: "newincognitotab_icon";
+ type: IMAGE;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 0;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "newincognitotab_button";}
+ rel2 { relative: 1.0 1.0; to: "newincognitotab_button";}
+ image.normal: "btn_bar_incognito_nor.png";
+ }
+ description { state: "highlight" 0.0;
+ image.normal: "btn_bar_incognito_foc.png";
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "focus" 0.0;
+ inherit: "highlight" 0.0;
+ }
+ }
+ part {
+ name: "newincognitotab_over";
+ scale:1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "newincognitotab_button";}
+ rel2 { relative: 1.0 1.0; to: "newincognitotab_button";}
+ color_class: transparent;
+ }
+ }
+
+ part {
+ name: "newincognitotab_click";
+ scale:1;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "newincognitotab_over";}
+ rel2 { relative: 1.0 1.0; to: "newincognitotab_over";}
+ color_class: transparent;
+ }
+ }
+
+ part {
+ name: "item3_bg";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: 348 65;
+ max: 348 65;
+ align: 0.5 0.5;
+ rel1 { relative: 0.0 0.0;to: "bg_clipper";}
+ rel2 { relative: 1.0 1.0;to: "bg_clipper";}
+ color : 255 255 255 255;
+
+ }
+ }
+
+ part {
+ name: "Tabmanager";
+ scale:1;
+ mouse_events: 1;
+ type: TEXT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 .3;
+ min: 348 65;
+ max: 348 65;
+ color: 116 116 116 255;
+ rel1 { relative: 0.0 0.0; to: "item3_bg"; }
+ rel2 { relative: 1.0 1.0; to: "item3_bg"; }
+ text {
+ text: "Tab Manager";
+ font: "Sans";
+ size: 40;
+ align: 0.5 0.5;
+ }
+ }
+ description {
+ state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusBgColor1;
+ visible: 1;
+ }
+ description {
+ state: "focus" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusbtBgColor1;
+ visible: 1;
+ }
+ }
+ part {
+ name: "closetabs_button_bg";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 192 192 192 255;
+ align: 0 0;
+ min: 220 65;
+ max: 220 65;
+ rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 1500 20;}
+ rel2 { relative: 1.0 1.0; to: "bg_clipper"; }
+ }
+ }
+ part {
+ name: "closetabs_button";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 0;
+
+ min: 220 65;
+ max: 220 65;
+ rel1 { relative: 0.0 0.0; to: "closetabs_button_bg"; }
+ rel2 { relative: 1.0 1.0; to: "closetabs_button_bg"; }
+ color_class: transparent;
+ }
+ description {
+ state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusBgColor;
+ visible: 1;
+ }
+ description {
+ state: "focus" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusbtBgColor;
+ visible: 1;
+ }
+ }
+ part{
+ name: "closetabs_text";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0;to: "closetabs_button";}
+ rel2 { relative: 1.0 1.0;to: "closetabs_button";}
+ color: 0 0 0 255;
+ text {
+ text: "Close all";
+ font: "Sans";
+ size: 27;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "closetabs_over";
+ scale:1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+
+ min: 220 65;
+ max: 220 65;
+ rel1 { relative: 0.0 0.0; to: "closetabs_button";}
+ rel2 { relative: 1.0 1.0; to: "closetabs_button";}
+ color_class: transparent;
+ }
+ }
+
+ part {
+ name: "closetabs_click";
+ scale:1;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 220 65;
+ max: 220 65;
+ rel1 { relative: 0.0 0.0; to: "closetabs_over";}
+ rel2 { relative: 1.0 1.0; to: "closetabs_over";}
+ color_class: transparent;
+ }
+ }
+ part {
+ name: "close_bg";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 0.5;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 1758 0;}
+ rel2 { relative: 1.0 1.0; to: "bg_clipper";}
+ color_class: transparent;
+ }
+ description {
+ state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusBgColor;
+ visible: 1;
+ }
+ description {
+ state: "focus" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusDelBgColor;
+ visible: 1;
+ }
+ }
+ part {
+ name: "close_icon";
+ type: IMAGE;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 0;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "close_bg";}
+ rel2 { relative: 1.0 1.0; to: "close_bg";}
+ image.normal: "btn_bar_stop_nor.png";
+ }
+ description { state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description { state: "focus" 0.0;
+ inherit: "highlight" 0.0;
+ }
+ }
+ part {
+ name: "close_over";
+ scale:1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "close_bg";}
+ rel2 { relative: 1.0 1.0; to: "close_bg";}
+ color_class: transparent;
+ }
+ }
+ part {
+ name: "close_click";
+ scale:1;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 82 102;
+ max: 82 102;
+ rel1 { relative: 0.0 0.0; to: "close_over";}
+ rel2 { relative: 1.0 1.0; to: "close_over";}
+ color_class: transparent;
+ }
+ }
+
+ programs{
+
+ program {
+ name: "mouse_click_newtab";
+ signal: "mouse,clicked,1";
+ source: "newtab_over";
+ script {
+ emit("elm,action,click", "");
+ }
+ }
+ program {
+ name: "mouse_in_newtab_click";
+ signal: "mouse,in";
+ source: "newtab_*";
+ action: STATE_SET "highlight" 0.0;
+ target: "newtab_button";
+ target: "newtab_over";
+ target: "newtab_icon";
+ }
+ program {
+ name: "mouse_out_newtab_click";
+ signal: "mouse,out";
+ source: "newtab_*";
+ action: STATE_SET "default" 0.0;
+ target: "newtab_button";
+ target: "newtab_over";
+ target: "newtab_icon";
+ }
+
+ program {
+ name: "mouse_click_newincognitotab";
+
+ signal: "mouse,clicked,1";
+ source: "newincognitotab_over";
+ script {
+ emit("elm,action,click", "");
+ }
+ }
+ program {
+ name: "mouse_in_newincognitotab_click";
+ signal: "mouse,in";
+ source: "newincognitotab_*";
+ action: STATE_SET "highlight" 0.0;
+ target: "newincognitotab_button";
+ target: "newincognitotab_over";
+ target: "newincognitotab_icon";
+ }
+ program {
+ name: "mouse_out_newincognitotab_click";
+ signal: "mouse,out";
+ source: "newincognitotab_*";
+ action: STATE_SET "default" 0.0;
+ target: "newincognitotab_button";
+ target: "newincognitotab_over";
+ target: "newincognitotab_icon";
+ }
+ program {
+ name: "mouse_click_closetabs";
+ signal: "mouse,clicked,1";
+ source: "closetabs_over";
+ script {
+ emit("elm,action,click", "");
+ }
+ }
+ program {
+ name: "mouse_in_closetabs_click";
+ signal: "mouse,in";
+ source: "closetabs_*";
+ action: STATE_SET "highlight" 0.0;
+ target: "closetabs_button";
+ target: "closetabs_over";
+ target: "closetabs_text";
+ }
+ program {
+ name: "mouse_out_closetabs_click";
+ signal: "mouse,out";
+ source: "closetabs_*";
+ action: STATE_SET "default" 0.0;
+ target: "closetabs_button";
+ target: "closetabs_over";
+ target: "closetabs_text";
+ }
+ program {
+ name: "mouse_in_close_click";
+ signal: "mouse,in";
+ source: "close_click";
+ script {
+ emit("mouse_in_close_click", "");
+ }
+ }
+ program {
+ name: "mouse_out_close_click";
+ signal: "mouse,out";
+ source: "close_click";
+ script {
+ emit("mouse_out_close_click", "");
+ }
+ }
+ program {
+ name: "mouse_in_close";
+ signal: "mouse_in_close_click";
+ source: "";
+ action: STATE_SET "highlight" 0.0;
+ target: "close_over";
+ target: "close_bg";
+ target: "close_icon";
+ }
+ program {
+ name: "mouse_out_close";
+ signal: "mouse_out_close_click";
+ source: "";
+ action: STATE_SET "default" 0.0;
+ target: "close_over";
+ target: "close_bg";
+ target: "close_icon";
+ }
+ }
+ }
+}
+
+group { name: "elm/genlist/item/top_buttons/default";
+ min: 1920 181;
+ max: 1920 181;
+ data.item: "texts" "openedtabs_button_text onotherdevices_button_text";
+ data.item: "contents" "openedtabs_click onotherdevices_click";
+ parts{
+ part {
+ name: "bg_clipper";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 231 231 231 255;
+ align: 0 0;
+ min: 1920 181;
+ max: 1920 181;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ }
+ }
+ part {
+ name: "button_bg";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 192 192 192 255;
+ align: 0 0;
+ min: 348 65;
+ max: 348 65;
+ rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 611 67;}
+ rel2 { relative: 1.0 1.0; to: "bg_clipper"; }
+ }
+ }
+ part {
+ name: "openedtabs_button";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ min: 348 65;
+ max: 348 65;
+ rel1 { relative: 0.0 0.0; to: "button_bg"; }
+ rel2 { relative: 1.0 1.0; to: "button_bg"; }
+ color_class: transparent;
+ }
+ description {
+ state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusBgColor;
+ visible: 1;
+ }
+ description {
+ state: "focus" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusbtBgColor;
+ visible: 1;
+ }
+ }
+ part{
+ name: "openedtabs_over";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0;to: "openedtabs_button";}
+ rel2 { relative: 1.0 1.0;to: "openedtabs_button";}
+ color: 0 0 0 0;
+ }
+ }
+ part{
+ name: "openedtabs_text";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0;to: "button_bg";}
+ rel2 { relative: 1.0 1.0;to: "button_bg";}
+ color: 0 0 0 255;
+ text {
+ text: "Opened Tabs";
+ font: "Sans";
+ size: 27;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "openedtabs_click";
+ scale:1;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 348 65;
+ max: 348 65;
+ rel1 { relative: 0.0 0.0; to: "openedtabs_over";}
+ rel2 { relative: 1.0 1.0; to: "openedtabs_over";}
+ color_class: transparent;
+ }
+ }
+ part {
+ name: "onotherdevices_button_bg";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 192 192 192 255;
+ align: 0 0;
+ min: 348 65;
+ max: 348 65;
+ rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 961 67;}
+ rel2 { relative: 1.0 1.0; to: "bg_clipper"; }
+ }
+ }
+ part {
+ name: "onotherdevices_button";
+ scale:1;
+ mouse_events: 1;
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ align: 0 0;
+ min: 348 65;
+ max: 348 65;
+ rel1 { relative: 0.0 0.0; to: "onotherdevices_button_bg"; }
+ rel2 { relative: 1.0 1.0; to: "onotherdevices_button_bg"; }
+ color_class: transparent;
+ }
+ description {
+ state: "highlight" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusBgColor;
+ visible: 1;
+ }
+ description {
+ state: "focus" 0.0;
+ inherit: "default" 0.0;
+ color_class: focusbtBgColor;
+ visible: 1;
+ }
+ }
+ part{
+ name: "onotherdevices_over";
+ type: RECT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0;to: "onotherdevices_button";}
+ rel2 { relative: 1.0 1.0;to: "onotherdevices_button";}
+ color: 0 0 0 0;
+ }
+ }
+ part{
+ name: "onotherdevices_text";
+ type: TEXT;
+ scale: 1;
+ description { state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ rel1 { relative: 0.0 0.0;to: "onotherdevices_button_bg";}
+ rel2 { relative: 1.0 1.0;to: "onotherdevices_button_bg";}
+ color: 0 0 0 255;
+ text {
+ text: "On Other Devices";
+ font: "Sans";
+ size: 27;
+ align: 0.5 0.5;
+ }
+ }
+ }
+
+ part {
+ name: "onotherdevicess_click";
+ scale:1;
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ align: 0 0;
+ fixed: 1 1;
+ min: 348 65;
+ max: 348 65;
+ rel1 { relative: 0.0 0.0; to: "onotherdevices_over";}
+ rel2 { relative: 1.0 1.0; to: "onotherdevices_over";}
+ color_class: transparent;
+ }
+ }
+ }
+ programs{
+
+ program {
+ name: "mouse_click_openedtabs";
+ signal: "mouse,clicked,1";
+ source: "openedtabs_over";
+ script {
+ emit("elm,action,click", "");
+ }
+ }
+ program {
+ name: "mouse_in_openedtabs_click";
+ signal: "mouse,in";
+ source: "openedtabs_*";
+ action: STATE_SET "highlight" 0.0;
+ target: "openedtabs_button";
+ target: "openedtabs_over";
+ target: "openedtabs_text";
+ }
+ program {
+ name: "mouse_out_openedtabs_click";
+ signal: "mouse,out";
+ source: "openedtabs_*";
+ action: STATE_SET "default" 0.0;
+ target: "openedtabs_button";
+ target: "openedtabs_over";
+ target: "openedtabs_text";
+ }
+
+ program {
+ name: "mouse_click_onotherdevices";
+ signal: "mouse,clicked,1";
+ source: "onotherdevices_over";
+ script {
+ emit("elm,action,click", "");
+ }
+ }
+ program {
+ name: "mouse_in_onotherdevices_click";
+ signal: "mouse,in";
+ source: "onotherdevices_*";
+ action: STATE_SET "highlight" 0.0;
+ target: "onotherdevices_button";
+ target: "onotherdevices_over";
+ target: "onotherdevices_text";
+ }
+ program {
+ name: "mouse_out_onotherdevices_click";
+ signal: "mouse,out";
+ source: "onotherdevices_*";
+ action: STATE_SET "default" 0.0;
+ target: "onotherdevices_button";
+ target: "onotherdevices_over";
+ target: "onotherdevices_text";
+ }
+ }
+ }
+}
--- /dev/null
+collections {
+ images {
+ image: "web_browsing_icon_error.png" COMP;
+ }
+ group { name: "error_message";
+ styles {
+ style { name: "mssage_style";
+ base: "font=Sans font_size=35 color=#d3d3d3 wrap=word align=0.5";
+ }
+ style { name: "mssage_hint_style";
+ base: "font=Sans font_size=24 color=#868686 wrap=word align=0.5";
+ }
+ }
+ parts {
+ part{
+ name: "message_background";
+ type: RECT;
+ description{
+ state: "default" 0.0;
+ visible: 1;
+ rel1.relative: 0 0;
+ rel2.relative: 1 1;
+ color: 42 50 64 255;
+ }
+ }
+ part{
+ name: "error_message_background";
+ type:RECT;
+ description{
+ state: "default" 0.0;
+ visible: 1;
+ min: 1582 730;
+ max: 1582 730;
+ fixed: 1 1;
+ align: 0.5 0.5;
+ color: 30 38 50 153;
+ }
+ }
+ part{
+ name: "err_ico";
+ type: IMAGE;
+ description{
+ state: "default" 0.0;
+ visible: 1;
+ min: 140 140;
+ max:140 140;
+ fixed: 1 1;
+ align: 0.5 0;
+ rel1{
+ relative: 0 0;
+ offset:0 163;
+ to: "error_message_background";
+ }
+ rel2{
+ relative: 1 1;
+ to: "error_message_background";
+ }
+ image{
+ normal: "web_browsing_icon_error.png";
+ }
+ }
+ }
+
+ part{
+ name: "error_text";
+ type: TEXTBLOCK;
+ description{
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: 1502 96;
+ max: 1502 96;
+ //color: 211 211 211 255;
+ align: 0.5 0;
+ rel1{
+ relative: 0 1;
+ to_x: "error_message_background";
+ to_y: "err_ico";
+ }
+ rel2{
+ relative: 1 1;
+ to: "error_message_background";
+ }
+ text{
+ style: "mssage_style";
+ text: "Server not found.<br/>sdf Please check the followings:";
+ //min: 0 0;
+ //max: 1 1;
+ //align: 1 0;
+ //size: 35;
+ }
+ }
+ }
+
+
+ part{
+ name: "error_hint";
+ type: TEXTBLOCK;
+ description{
+ state: "default" 0.0;
+ visible: 1;
+ fixed: 1 1;
+ min: 1502 117;
+ max: 1502 117;
+ color: 134 134 134 255;
+ align: 0.5 0;
+ rel1{
+ relative: 0 1;
+ to_x: "error_message_background";
+ to_y: "error_text";
+ }
+ rel2{
+ relative: 1 1;
+ to: "error_message_background";
+ }
+ text{
+ max: 0 1;
+ style: "mssage_hint_style";
+ text: "Check for any typing error in URL. <br/>"
+ "Check your network settings.<br/>"
+ "Try again later.<br/>"
+ "Click refresh to reload.";
+ }
+ }
+ }
+ }
+/*
+ programs {
+ program { name: "mouse_down";
+ signal: "mouse,down,1";
+ source: "logo";
+ action: STATE_SET "hide" 0.0;
+ target: "logo";
+ }
+ program { name: "mouse_up";
+ signal: "mouse,up,1";
+ source: "logo";
+ action: STATE_SET "default" 0.0;
+ target: "logo";
+ }
+ }
+*/
+ }
+}