From 1712964eb6a7ecc6f60c6a2af69b8de1024ca641 Mon Sep 17 00:00:00 2001 From: Maciej Skrzypkowski Date: Wed, 28 Oct 2015 11:37:36 +0100 Subject: [PATCH] Mobile version of WebPageUI and QuickAccess [Issue] https://bugs.tizen.org/jira/browse/TM-34 [Problem] There was a lack of mobile edc version. [Solution] Added edc files with "_mob" extention for mobile profile. [Verification] Build project for TV and for mobile, check if there is no regresion for TV, check if there is QuickAcces view for mobile. Change-Id: If790494ccbd12f405a86a807515e2f6560476496 Signed-off-by: Maciej Skrzypkowski --- CMakeLists.txt | 1 + core/Config/Config.cpp | 7 + core/Config/Config.h | 7 + core/Config/ConfigValues.h.in | 1 + services/QuickAccess/CMakeLists.txt | 27 +- services/QuickAccess/QuickAccess.cpp | 15 +- services/QuickAccess/edc/InvisibleButton.edc | 40 + services/QuickAccess/edc/QuickAccess.edc | 230 +--- services/QuickAccess/edc/QuickAccess_mob.edc | 1378 ++++++++++++++++++++ services/SimpleUI/SimpleUI.cpp | 8 +- services/WebPageUI/CMakeLists.txt | 47 +- services/WebPageUI/edc/LeftButtonBar_mob.edc | 103 ++ services/WebPageUI/edc/RightButtonBar_mob.edc | 86 ++ services/WebPageUI/edc/URIEntry_mob.edc | 269 ++++ services/WebPageUI/edc/WebPageUI.edc | 44 +- services/WebPageUI/edc/WebPageUI_mob.edc | 215 +++ services/WebPageUI/images/btn_bar_back_nor_mob.png | Bin 0 -> 3348 bytes .../WebPageUI/images/btn_bar_forward_nor_mob.png | Bin 0 -> 3335 bytes .../WebPageUI/images/btn_bar_manager_nor_mob.png | Bin 0 -> 2930 bytes services/WebPageUI/images/btn_bar_more_nor_mob.png | Bin 0 -> 2978 bytes .../WebPageUI/images/btn_bar_reload_nor_mob.png | Bin 0 -> 3516 bytes services/WebPageUI/images/btn_bar_stop_nor_mob.png | Bin 0 -> 3154 bytes 22 files changed, 2224 insertions(+), 254 deletions(-) create mode 100644 services/QuickAccess/edc/InvisibleButton.edc create mode 100644 services/QuickAccess/edc/QuickAccess_mob.edc create mode 100644 services/WebPageUI/edc/LeftButtonBar_mob.edc create mode 100644 services/WebPageUI/edc/RightButtonBar_mob.edc create mode 100644 services/WebPageUI/edc/URIEntry_mob.edc create mode 100644 services/WebPageUI/edc/WebPageUI_mob.edc create mode 100644 services/WebPageUI/images/btn_bar_back_nor_mob.png create mode 100644 services/WebPageUI/images/btn_bar_forward_nor_mob.png create mode 100644 services/WebPageUI/images/btn_bar_manager_nor_mob.png create mode 100644 services/WebPageUI/images/btn_bar_more_nor_mob.png create mode 100644 services/WebPageUI/images/btn_bar_reload_nor_mob.png create mode 100644 services/WebPageUI/images/btn_bar_stop_nor_mob.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e94aba..218c05e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,6 +98,7 @@ if(TIZEN_BUILD) -DM_VCS_ID=\"${VCS_ID}\" -DTIZEN_BUILD=\"${TIZEN_BUILD}\" -DCERTS_DIR=\"${CERTS_DIR}\" + -DPROFILE=${PROFILE} ) endif(TIZEN_BUILD) diff --git a/core/Config/Config.cpp b/core/Config/Config.cpp index 73e387e..4d96ca8 100644 --- a/core/Config/Config.cpp +++ b/core/Config/Config.cpp @@ -44,6 +44,8 @@ void DefaultConfig::load(const std::string &) # include "ConfigValues.h" m_data["resourcedb/dir"] = std::string(db_path)+"/"+std::string("org.tizen.browser/data/"); + + m_data["mobile_scale"] = 1.98; } void DefaultConfig::store(const std::string & ) @@ -60,5 +62,10 @@ void DefaultConfig::set(const std::string & key, const boost::any & value) m_data[key] = value; } +bool DefaultConfig::isMobileProfile() const +{ + return boost::any_cast(m_data.at("profile")) == MOBILE; +} + } /* end of namespace config */ } /* end of namespace tizen_browser */ diff --git a/core/Config/Config.h b/core/Config/Config.h index b342c86..650c4cb 100644 --- a/core/Config/Config.h +++ b/core/Config/Config.h @@ -74,8 +74,15 @@ public: * @param value Value to be set. */ void set(const std::string & key, const boost::any & value); + + /** + * @brief Check if current profile is mobile. + */ + bool isMobileProfile() const; private: std::map m_data; + + const std::string MOBILE = "mobile"; }; diff --git a/core/Config/ConfigValues.h.in b/core/Config/ConfigValues.h.in index 53fce72..dfca385 100644 --- a/core/Config/ConfigValues.h.in +++ b/core/Config/ConfigValues.h.in @@ -2,3 +2,4 @@ m_data["services/dir"] = std::string("@CMAKE_INSTALL_PREFIX@/services"); m_data["resource/dir"] = std::string("@RESDIR@"); m_data["webkit/dir"] = std::string("@WEBKITDIR@"); +m_data["profile"] = std::string("@PROFILE@"); diff --git a/services/QuickAccess/CMakeLists.txt b/services/QuickAccess/CMakeLists.txt index bacd28d..3b210c6 100644 --- a/services/QuickAccess/CMakeLists.txt +++ b/services/QuickAccess/CMakeLists.txt @@ -5,11 +5,6 @@ set(QuickAccess_SRCS DetailPopup.cpp ) -set(QuickAccess_HEADERS - QuickAccess.h - DetailPopup.h - ) - include(Coreheaders) include(EFLHelpers) @@ -26,14 +21,22 @@ install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION services/static) #please do not add edc/ directory -set(edcFiles - QuickAccess.edc - DetailPopup.edc - ) +if (${PROFILE} MATCHES "mobile") # mobile profile + set(edcFiles + InvisibleButton.edc + QuickAccess_mob.edc + ) +else (${PROFILE} MATCHES "mobile") # tv profile + set(edcFiles + InvisibleButton.edc + QuickAccess.edc + DetailPopup.edc + ) +endif (${PROFILE} MATCHES "mobile") foreach(edec ${edcFiles}) - string(REPLACE ".edc" ".edj" target_name ${edec}) + string(REGEX REPLACE "(_mob)?.edc" ".edj" target_name ${edec}) EDJ_TARGET(${target_name} - ${CMAKE_CURRENT_SOURCE_DIR}/edc/${edec} - ${CMAKE_CURRENT_BINARY_DIR}) + ${CMAKE_CURRENT_SOURCE_DIR}/edc/${edec} + ${CMAKE_CURRENT_BINARY_DIR}) endforeach(edec) diff --git a/services/QuickAccess/QuickAccess.cpp b/services/QuickAccess/QuickAccess.cpp index 4dee510..e39ff1e 100644 --- a/services/QuickAccess/QuickAccess.cpp +++ b/services/QuickAccess/QuickAccess.cpp @@ -136,14 +136,13 @@ Evas_Object* QuickAccess::createQuickAccessLayout(Evas_Object* parent) m_desktopMode = true; Evas_Object* layout = elm_layout_add(parent); + elm_layout_file_set(layout, edjFilePath.c_str(), "main_layout"); evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set (layout, EVAS_HINT_FILL, EVAS_HINT_FILL); m_mostVisitedView = createMostVisitedView(layout); m_bookmarksView = createBookmarksView (layout); - showHistory(); - return layout; } @@ -397,11 +396,12 @@ void QuickAccess::showHistory() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - if (elm_layout_content_get(m_layout, "elm.swallow.content") == m_mostVisitedView) + if (elm_layout_content_get(m_layout, "view") == m_mostVisitedView) return; evas_object_hide(m_bookmarksView); - elm_layout_content_set(m_layout, "elm.swallow.content", m_mostVisitedView); + elm_layout_content_unset(m_layout, "view"); + elm_layout_content_set(m_layout, "view", m_mostVisitedView); evas_object_show(m_mostVisitedView); @@ -425,11 +425,12 @@ void QuickAccess::showBookmarks() { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); - if (elm_layout_content_get(m_layout, "elm.swallow.content") == m_bookmarksView && m_bookmarksView != nullptr) + if (elm_layout_content_get(m_layout, "view") == m_bookmarksView && m_bookmarksView != nullptr) return; evas_object_hide(m_mostVisitedView); - elm_layout_content_set(m_layout, "elm.swallow.content", m_bookmarksView); + elm_layout_content_unset(m_layout, "view"); + elm_layout_content_set(m_layout, "view", m_bookmarksView); evas_object_show(m_bookmarksView); evas_object_show(m_layout); @@ -441,7 +442,7 @@ void QuickAccess::showUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); evas_object_show(m_layout); - if (elm_layout_content_get(m_layout, "elm.swallow.content") == m_bookmarksView) { + if (elm_layout_content_get(m_layout, "view") == m_bookmarksView) { evas_object_show(m_bookmarksView); } else { evas_object_show(m_mostVisitedView); diff --git a/services/QuickAccess/edc/InvisibleButton.edc b/services/QuickAccess/edc/InvisibleButton.edc new file mode 100644 index 0000000..bc1028a --- /dev/null +++ b/services/QuickAccess/edc/InvisibleButton.edc @@ -0,0 +1,40 @@ + +collections { + group{ + name: "elm/button/base/invisible_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", ""); + } + } + } + } +} diff --git a/services/QuickAccess/edc/QuickAccess.edc b/services/QuickAccess/edc/QuickAccess.edc index c87299b..c5cd3fd 100644 --- a/services/QuickAccess/edc/QuickAccess.edc +++ b/services/QuickAccess/edc/QuickAccess.edc @@ -1,3 +1,5 @@ +#include "InvisibleButton.edc" + #define DEBUG_RECT_OVER(over_part, r, g, b) \ part { name: __CONCAT("dbg_rect_at_", __stringify(__LINE__)); \ \ @@ -19,44 +21,10 @@ collections { #define HEIGHT 181 #define ITEM_WIDTH 374 #define PARENT_ITEM_HEIGHT 36 - -group{ - name: "elm/button/base/invisible_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", ""); - } - } - } -} +#define URI_INPUTBOX_LENGTH 1720 +#define URL_HISTORY_ITEM_H 82 +#define URL_HISTORY_ITEMS_VISIBLE_MAX 5 +#define URL_HISTORY_LIST_MAX_H HISTORY_ITEM_H*HISTORY_ITEMS_VISIBLE_MAX group { name: "elm/button/base/thumbButton"; @@ -89,6 +57,28 @@ group { } } +group { + name: "main_layout"; + parts { + part { + name: "view"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + relative: 0 0; + } + rel2 { + relative: 1 1; + } + } + } + } +} + group { name: "mv_bookmarks"; data { item: "focus_highlight" "off"; @@ -98,93 +88,64 @@ group { name: "mv_bookmarks"; } color_classes{ color_class{ - name: "defaultBgColor"; - color: 18 22 34 255; - } - color_class{ name: "focusBgColor"; color: 0 119 246 255; } 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; } } parts { - part { name: "layoutTop_bg"; + part { name: "bg"; type: RECT; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 255; - min: 0 181; - max: -1 181; align: 0.0 0.0; fixed: 0 0; rel1 { - relative: 0 0; offset: 0 104; + relative: 0 0; } rel2{ relative: 1 1; } } } - part { name: "gengrid_bg"; - type: RECT; - mouse_events: 0; + + part { name: "elm.swallow.layoutTop"; + type: SWALLOW; description { state: "default" 0.0; - color: 255 255 255 255; - min: 1920 626; - max: -1 626; + min: 1920 181; + max: 1920 181; align: 0.0 0.0; fixed: 0 0; rel1 { - to: "layoutTop_bg"; - relative: 0 1; + relative: 0 0; + to: "bg"; } - rel2{ + rel2 { relative: 1 1; + to: "bg"; } } } + part { name: "layoutBottom_bg"; type: RECT; mouse_events: 0; description { state: "default" 0.0; - color: 255 255 255 255; + color: 255 255 255 255; min: 1920 181; - max: 1920 181; - align: 0.0 0.0; + max: 1920 181; + align: 0.0 1.0; fixed: 0 0; rel1 { - relative: 0 1; to: "gengrid_bg"; + relative: 0 0; to: "bg"; } rel2{ - relative: 1 1; + relative: 1 1; } } } @@ -194,14 +155,15 @@ group { name: "mv_bookmarks"; description { state: "default" 0.0; min: 1920 614; max: 1920 614; - align: 0.0 0.0; + align: 0.0 0.0; fixed: 0 0; rel1 { - relative: 0 0; to: "gengrid_bg"; offset: 63 0; + relative: 0 1; + to: "elm.swallow.layoutTop"; } rel2 { relative: 1 1; - offset: 0 0; + to: "bg"; } } } @@ -214,12 +176,12 @@ group { name: "mv_bookmarks"; visible: 0; align: 0.5 0.0; rel1 { - to: "gengrid_bg"; - relative: 0 0; + relative: 0 1; + to: "elm.swallow.layoutTop"; } rel2 { - to: "gengrid_bg"; relative: 1 1; + to: "bg"; } } description { state: "empty" 0.0; @@ -351,40 +313,6 @@ group { name: "mv_bookmarks"; } } - part { name: "elm.swallow.layoutTop"; - type: SWALLOW; - description { state: "default" 0.0; - min: 1920 181; - max: 1920 181; - align: 0.0 0.0; - fixed: 0 0; - rel1 { - relative: 0 0; to: "layoutTop_bg"; - } - rel2 { - relative: 1 1; - offset: 0 0; - } - } - } - - 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 0.0; to: "elm.swallow.layoutTop"; } - rel2 { relative: 1.0 1.0; } - } - } - part { name: "elm.swallow.layoutBottom"; type: SWALLOW; description { state: "default" 0.0; @@ -416,11 +344,11 @@ group { name: "mv_bookmarks"; align: 0.5 0.5; } rel1 { - to: "gengrid_bg"; + to: "bg"; relative: 0.0 0.0; } rel2 { - to: "gengrid_bg"; + to: "bg"; relative: 1 1; } } @@ -853,14 +781,6 @@ group { name: "elm/button/base/small_tile"; align: 0 0.0; } } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - //color_class: highlightTextColor; - } } part { name: "page_url"; @@ -886,14 +806,6 @@ group { name: "elm/button/base/small_tile"; align: 0 0.5; } } - description { state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusTextColor; - } - description { state: "highlight" 0.0; - inherit: "default" 0.0; - //color_class: highlightTextColor; - } } part { name: "over"; @@ -1069,14 +981,6 @@ group { name: "elm/gengrid/item/grid_item/default"; 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: "page_url"; @@ -1101,14 +1005,6 @@ group { name: "elm/gengrid/item/grid_item/default"; 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: "elm.thumbButton"; @@ -1194,12 +1090,6 @@ group { name: "top_button_item"; color_class: focusBgColor; visible: 1; } - description { - state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusbtBgColor; - visible: 1; - } } part{ name: "mostvisited_text"; @@ -1270,12 +1160,6 @@ group { name: "top_button_item"; color_class: focusBgColor; visible: 1; } - description { - state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusbtBgColor; - visible: 1; - } } part{ name: "bookmark_text"; @@ -1426,12 +1310,6 @@ group { name: "bottom_button_item"; color_class: focusBgColor; visible: 1; } - description { - state: "focus" 0.0; - inherit: "default" 0.0; - color_class: focusbtBgColor; - visible: 1; - } } part{ name: "bookmarkmanager_text"; diff --git a/services/QuickAccess/edc/QuickAccess_mob.edc b/services/QuickAccess/edc/QuickAccess_mob.edc new file mode 100644 index 0000000..02a3b80 --- /dev/null +++ b/services/QuickAccess/edc/QuickAccess_mob.edc @@ -0,0 +1,1378 @@ +#include "InvisibleButton.edc" + +collections { + +#define URI_INPUTBOX_LENGTH 1720 +#define URL_HISTORY_ITEM_H 82 +#define URL_HISTORY_ITEMS_VISIBLE_MAX 5 +#define URL_HISTORY_LIST_MAX_H HISTORY_ITEM_H*HISTORY_ITEMS_VISIBLE_MAX +#define LAYOUT_WIDTH 720 +#define LAYOUT_HEIGHT 1120 + +#define BIG_TILE_WIDTH 656 +#define BIG_TILE_HEIGHT 450 +#define SMALL_TILE_WIDTH 319 +#define SMALL_TILE_HEIGHT 361 +#define TILE_SEPARATOR 18 +#define TILE_LABEL_BG_HEIGHT 100 + +group { + name: "elm/button/base/thumbButton"; + images { + image: "ico_delete.png" COMP; + } + parts { + part { + name: "elm.swallow.content"; + type: RECT; + scale: 1; + 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: "main_layout"; + parts { + part { + name: "view"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + relative: 0 0; + } + rel2 { + relative: 1 1; + } + } + } + } +} + +group { name: "mv_bookmarks"; + data { + item: "focus_highlight" "off"; + } + color_classes{ + color_class{ + name: "focusBgColor"; + color: 0 119 246 255; + } + color_class{ + name: "transparent"; + color: 0 0 0 0; + } + } + + parts { + part { name: "bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + color: 244 244 244 255; + align: 0.0 0.0; + fixed: 0 0; + rel1 { + relative: 0 0; + } + rel2{ + relative: 1 1; + } + } + } + + part { name: "elm.swallow.layoutTop"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: LAYOUT_WIDTH 181; + max: LAYOUT_WIDTH 181; + align: 0.0 0.0; + fixed: 0 0; + visible: 1; + rel1 { + relative: 0 0; + to: "bg"; + } + rel2 { + relative: 1 1; + to: "bg"; + } + } + } + + part { name: "elm.swallow.layoutBottom"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 0; // only plug for unused bottom layout + } + } + + part { name: "elm.swallow.grid"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.0; + fixed: 0 0; + visible: 1; + rel1 { + relative: 0 1; + to: "elm.swallow.layoutTop"; + } + rel2 { + relative: 1 1; + to: "bg"; + } + } + } + + part { name: "center_rect"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + min: 720 0; + max: 720 -1; + align: 0 0; + visible: 1; + rel1 { + to: "elm.swallow.layoutTop"; + relative: 0 1; + } + rel2 { + to: "bg"; + relative: 1 1; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 229 229 229 255; + } + } + + part { name: "elm.swallow.big"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: BIG_TILE_WIDTH BIG_TILE_HEIGHT; + max: BIG_TILE_WIDTH BIG_TILE_HEIGHT; + align: 0.5 0.0; + fixed: 1 1; + visible: 1; + rel1 { + to: "center_rect"; + relative: 0 0; + offset: TILE_SEPARATOR 0; + } + rel2 { + relative: 1 1; + offset: 0 0; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "elm.swallow.small_first"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + max: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + align: 0.0 0.0; + fixed: 1 1; + visible: 1; + rel1 { + to: "elm.swallow.big"; + relative: 0 1; + offset: 0 TILE_SEPARATOR; + } + rel2{ + to: "center_rect"; + relative: 1 1; + offset: 0 0; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "elm.swallow.small_second"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + max: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + align: 0.0 0.0; + fixed: 1 1; + visible: 1; + rel1 { + to: "elm.swallow.small_first"; + relative: 1 0; + offset: TILE_SEPARATOR 0; + } + rel2{ + to: "center_rect"; + relative: 1 1; + offset: 0 0; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "elm.swallow.small_third"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + max: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + align: 0.0 0.0; + fixed: 1 1; + visible: 1; + rel1 { + to: "elm.swallow.small_first"; + relative: 0 1; + offset: 0 TILE_SEPARATOR; + } + rel2 { + to: "center_rect"; + relative: 1 1; + offset: 0 0; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "elm.swallow.small_fourth"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + max: SMALL_TILE_WIDTH SMALL_TILE_HEIGHT; + align: 0.0 0.0; + fixed: 1 1; + visible: 1; + rel1 { + to: "elm.swallow.small_third"; + relative: 1 0; + offset: TILE_SEPARATOR 0; + } + rel2 { + to: "center_rect"; + relative: 1 1; + offset: 0 0; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + + part { name: "elm.text.empty"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + align: 0.5 0.5; + color: 0 0 0 179; + text { + text: "empty"; + font: "Sans"; + size: 32; + align: 0.5 0.5; + } + rel1 { + to: "bg"; + relative: 0.0 0.0; + } + rel2 { + to: "bg"; + relative: 1 1; + } + } + description { state: "empty" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + + programs { + program { name: "empty"; + signal: "empty,view"; + source: "quickaccess"; + action: STATE_SET "empty" 0.0; + target: "elm.swallow.big"; + target: "elm.swallow.small_first"; + target: "elm.swallow.small_second"; + target: "elm.swallow.small_third"; + target: "elm.swallow.small_fourth"; + target: "elm.text.empty"; + target: "center_rect"; + } + program { name: "not_empty"; + signal: "not,empty,view"; + source: "quickaccess"; + action: STATE_SET "default" 0.0; + target: "elm.text.empty"; + target: "center_rect"; + target: "elm.swallow.big"; + target: "elm.swallow.small_first"; + target: "elm.swallow.small_second"; + target: "elm.swallow.small_third"; + target: "elm.swallow.small_fourth"; + } + } +} + +group { name: "elm/button/base/big_tile"; + data.item: "texts" "page_title page_url"; + data.item: "contents" "elm.thumbnail"; + images { + image: "web_frame_selected.png" COMP; + image: "ico_bg_round_shape_37x37.png" COMP; + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + relative: 0.0 0.0; to: "bg"; + } + rel2 { + relative: 1.0 1.0; to: "bg"; + } + visible: 1; + color: 231 231 231 255; + } + } + + part { name: "elm.thumbnail"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 0.0 0.0; + color : 231 231 231 255; + min: BIG_TILE_WIDTH BIG_TILE_HEIGHT; // size adjusted to max thubnail with and height + max: BIG_TILE_WIDTH BIG_TILE_HEIGHT; + 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: "border_top"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color_class: focusBgColor; + min: 0 6; + max: -1 6; + align: 0 0; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.thumbnail"; + relative: 1.0 1.0; + } + visible: 0; + } + description { state: "selected"; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "border_left"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color_class: focusBgColor; + min: 6 0; + max: 6 -1; + align: 0 0; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.thumbnail"; + relative: 1.0 1.0; + } + visible: 0; + } + description { state: "selected"; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "border_right"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color_class: focusBgColor; + min: 6 0; + max: 6 -1; + align: 1 0; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.thumbnail"; + relative: 1.0 1.0; + } + visible: 0; + } + description { state: "selected"; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "lb_bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: BIG_TILE_WIDTH TILE_LABEL_BG_HEIGHT; + max: BIG_TILE_WIDTH TILE_LABEL_BG_HEIGHT; + align: 0.0 1.0; + color: 113 128 147 255; + visible: 1; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.thumbnail"; + relative: 1.0 1.0; + } + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 0 119 246 255; + } + } + + part { name: "page_title"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + min: 584 34; + max: 584 34; + align: 0.0 0.0; + color: 255 255 255 255; + rel1 { + to: "lb_bg"; + relative: 0.0 0.0; + offset: 36 33; + } + rel2 { + to: "lb_bg"; + relative: 1.0 1.0; + } + text { + text: "Web page title"; + font: "Sans"; + size: 36; + align: 0 0.5; + } + } + } + + part { name: "page_url"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + } + } + + part { name: "over"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + rel1.to: "bg"; + rel2.to: "lb_bg"; + } + } + } + + programs{ + program { name: "mouse_in"; + signal: "mouse,in"; + source: "over"; + action: STATE_SET "selected" 0.0; + target: "lb_bg"; + target: "border_top"; + target: "border_left"; + target: "border_right"; + } + program { name: "mouse_out"; + signal: "mouse,out"; + source: "over"; + action: STATE_SET "default" 0.0; + target: "lb_bg"; + target: "border_top"; + target: "border_left"; + target: "border_right"; + } + program { + name: "mouse_click"; + signal: "mouse,clicked,1"; + source: "over"; + script { + emit("elm,action,click", ""); + } + } + } +} + +group { name: "elm/button/base/small_tile"; + data.item: "texts" "page_title page_url"; + data.item: "contents" "elm.thumbnail"; + images { + image: "web_frame_selected.png" COMP; + image: "ico_bg_round_shape_37x37.png" COMP; + } + parts { + part { name: "container"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: 378 320; + max: 378 320; + visible: 0; + } + } + + part { name: "bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 378 294; + max: 378 294; + visible: 1; + color: 231 231 231 255; + align: 0.0 0.0; + rel1 { + relative: 0.0 0.0; to: "container"; + } + rel2 { + relative: 1.0 1.0; to: "container"; + } + } + } + + part { name: "elm.thumbnail"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + align: 0.0 0.0; + color : 231 231 231 255; + min: 378 292; // size adjusted to max thubnail with and height + max: 378 292; + 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: "border_top"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color_class: focusBgColor; + min: 0 6; + max: -1 6; + align: 0 0; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.thumbnail"; + relative: 1.0 1.0; + } + visible: 0; + } + description { state: "selected"; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "border_left"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color_class: focusBgColor; + min: 6 0; + max: 6 -1; + align: 0 0; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.thumbnail"; + relative: 1.0 1.0; + } + visible: 0; + } + description { state: "selected"; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "border_right"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color_class: focusBgColor; + min: 6 0; + max: 6 -1; + align: 1 0; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.thumbnail"; + relative: 1.0 1.0; + } + visible: 0; + } + description { state: "selected"; + inherit: "default" 0.0; + visible: 1; + } + } + + part { name: "lb_bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + min: 378 96; + max: 378 96; + align: 0.0 1.0; + color: 113 128 147 255; + visible: 1; + rel1 { + to: "bg"; + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 0 119 246 255; + } + } + + part { name: "page_title"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + min: 314 28; + max: 314 28; + align: 0.0 0.0; + color: 255 255 255 255; + rel1 { + to: "lb_bg"; + relative: 0.0 0.0; + offset: 32 18; + } + rel2 { + to: "lb_bg"; + relative: 1.0 1.0; + } + text { + text: "Web page title"; + font: "Sans"; + size: 28; + align: 0 0.0; + } + } + } + + part { name: "page_url"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + min: 314 24; + max: 314 24; + align: 0 0.0; + color: 255 255 255 255; + rel1 { + to: "page_title"; + relative: 0.0 1.0; + offset: 0 8; + } + rel2 { + to: "lb_bg"; + relative: 1.0 1.0; + } + text { + text: "Web page url"; + font: "Sans"; + size: 24; + align: 0 0.5; + } + } + } + + part { name: "over"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + rel1.to: "bg"; + rel2.to: "lb_bg"; + } + } + } + + programs { + program { name: "mouse_in"; + signal: "mouse,in"; + source: "over"; + action: STATE_SET "selected" 0.0; + target: "lb_bg"; + target: "border_top"; + target: "border_left"; + target: "border_right"; + } + program { name: "mouse_out"; + signal: "mouse,out"; + source: "over"; + action: STATE_SET "default" 0.0; + target: "lb_bg"; + target: "border_top"; + target: "border_left"; + target: "border_right"; + } + program { + name: "mouse_click"; + signal: "mouse,clicked,1"; + source: "over"; + script { + emit("elm,action,click", ""); + } + } + } +} + +group { name: "elm/gengrid/item/grid_item/default"; + data.item: "texts" "page_title page_url"; + data.item: "contents" "elm.thumbnail elm.thumbButton"; + images { + image: "web_frame_selected.png" COMP; + image: "ico_bg_round_shape_37x37.png" COMP; + image: "ic_thumbnail_favorite_01.png" COMP; + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 338 294; + max: 338 294; + visible: 1; + color: 231 231 231 255; + rel1.offset: -26 -26; + } + description { state: "selected"; + inherit: "default" 0.0; + color: 70 143 254 255; + } + } + + part { name: "elm.thumbnail"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 1 0; + align: 0.0 0.0; + color : 231 231 231 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: "bookmark_thumbButton"; + type: IMAGE; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + rel1.to: "elm.thumbnail"; + rel1.offset: 284 18; + rel1.relative: 0.0 0.0; + rel2.to: "elm.thumbnail"; + rel2.offset: 324 58; + rel2.relative: 0.0 0.0; + align: 0.0 0.0; + image.normal: "ic_thumbnail_favorite_01.png"; + } + } + + part { name: "focus_highlight"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + rel1 { + to: "elm.thumbnail"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.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; + scale: 1; + description { state: "default" 0.0; + min: 338 87; + max: 338 87; + align: 0.0 0.0; + color: 231 231 231 255; + rel1 { + to: "elm.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: "page_title"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + min: 300 48; + max: 300 48; + align: 0.0 0.5; + color: 51 51 51 255; + rel1 { + to: "background"; + relative: 0.0 0.0; + offset: 17 0; + } + rel2 { + to: "background"; + relative: 1.0 1.0; + } + text { + text: "Web page title"; + font: "Sans"; + size: 27; + align: 0 0.5; + } + } + } + + part { name: "page_url"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + min: 300 48; + max: 300 48; + align: 0 0.5; + color: 153 153 153 255; + rel1 { + to: "page_title"; + relative: 0.0 1.0; + } + rel2 { + to: "page_title"; + relative: 1.0 1.0; + } + text { + text: "Web page url"; + font: "Sans"; + size: 24; + align: 0 0.5; + } + } + } + + part { name: "elm.thumbButton"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1.to: "elm.thumbnail"; + rel2.to: "elm.thumbnail"; + } + } + + part { name: "over"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + rel1.to: "bg"; + rel2.to: "background"; + } + } + } + + programs{ + program { name: "mouse_in"; + signal: "mouse,in"; + source: "over"; + action: STATE_SET "selected" 0.0; + target: "background"; + target: "focus_highlight"; + target: "bg"; + } + program { name: "mouse_out"; + signal: "mouse,out"; + source: "over"; + action: STATE_SET "default" 0.0; + target: "background"; + target: "focus_highlight"; + target: "bg"; + } + } +} + +group { name: "top_button_item"; + data.item: "texts" "mostvisited_text bookmark_text"; + data.item: "contents" "mostvisited_click bookmark_click"; + parts{ + part { + name: "bg_clipper"; + scale:1; + mouse_events: 1; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + align: 0 0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "mostvisited_button"; + mouse_events: 1; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + color: 192 192 192 255; + align: 0 0; + min: 300 64; + max: 300 64; + rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 20 58;} + rel2 { relative: 1.0 1.0; to: "bg_clipper"; } + } + description { + state: "highlight" 0.0; + inherit: "default" 0.0; + color_class: focusBgColor; + visible: 1; + } + } + part{ + name: "mostvisited_text"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + visible: 1; + fixed: 1 1; + rel1 { relative: 0.0 0.0;to: "mostvisited_button";} + rel2 { relative: 1.0 1.0;to: "mostvisited_button";} + color: 0 0 0 255; + text { + text: "Most visited"; + font: "Sans"; + size: 27; + align: 0.5 0.5; + } + } + } + part { + name: "mostvisited_over"; + scale:1; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0 0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "mostvisited_button";} + rel2 { relative: 1.0 1.0; to: "mostvisited_button";} + color_class: transparent; + } + } + part { + name: "mostvisited_click"; + scale:1; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0 0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "mostvisited_button";} + rel2 { relative: 1.0 1.0; to: "mostvisited_button";} + } + } + part { + name: "bookmark_button"; + scale:1; + mouse_events: 1; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + color: 192 192 192 255; + align: 0 0; + min: 300 64; + max: 300 64; + rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 600 58;} + rel2 { relative: 1.0 1.0; to: "bg_clipper"; } + } + description { + state: "highlight" 0.0; + inherit: "default" 0.0; + color_class: focusBgColor; + visible: 1; + } + } + part{ + name: "bookmark_text"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + visible: 1; + fixed: 1 1; + rel1 { relative: 0.0 0.0;to: "bookmark_button";} + rel2 { relative: 1.0 1.0;to: "bookmark_button";} + color: 0 0 0 255; + text { + text: "Bookmark"; + font: "Sans"; + size: 27; + align: 0.5 0.5; + } + } + } + part { + name: "bookmark_over"; + scale:1; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0 0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "bookmark_button";} + rel2 { relative: 1.0 1.0; to: "bookmark_button";} + color_class: transparent; + } + } + part { + name: "bookmark_click"; + scale:1; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0 0; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "bookmark_button";} + rel2 { relative: 1.0 1.0; to: "bookmark_button";} + color_class: transparent; + } + } + + programs{ + program { + name: "mouse_click_mostvisited"; + signal: "mouse,clicked,1"; + source: "mostvisited_over"; + script { + emit("elm,action,click", ""); + } + } + program { + name: "mouse_in_mostvisited_click"; + signal: "mouse,in"; + source: "mostvisited_*"; + action: STATE_SET "highlight" 0.0; + target: "mostvisited_button"; + target: "mostvisited_over"; + target: "mostvisited_text"; + } + program { + name: "mouse_out_mostvisited_click"; + signal: "mouse,out"; + source: "mostvisited_*"; + action: STATE_SET "default" 0.0; + target: "mostvisited_button"; + target: "mostvisited_over"; + target: "mostvisited_text"; + } + program { + name: "mouse_click_bookmark"; + signal: "mouse,clicked,1"; + source: "bookmark_over"; + script { + emit("elm,action,click", ""); + } + } + program { + name: "mouse_in_bookmark_click"; + signal: "mouse,in"; + source: "bookmark_*"; + action: STATE_SET "highlight" 0.0; + target: "bookmark_button"; + target: "bookmark_over"; + target: "bookmark_text"; + } + program { + name: "mouse_out_bookmark_click"; + signal: "mouse,out"; + source: "bookmark_*"; + action: STATE_SET "default" 0.0; + target: "bookmark_button"; + target: "bookmark_over"; + target: "mostvisited_text"; + } + } + } +} + +group { name: "bottom_button_item"; + min: 1920 181; + max: 1920 181; + data.item: "texts" "bookmarkmanager_text"; + data.item: "contents" "bookmarkmanager_click"; + parts{ + part { + name: "bg_clipper"; + scale:1; + mouse_events: 1; + type: RECT; + description { + state: "default" 0.0; + color: 255 255 255 255; + align: 0 0; + min: 1920 181; + max: 1920 181; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "bookmarkmanager_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; + color: 192 192 192 255; + rel1 { relative: 0.0 0.0; to: "bg_clipper"; offset: 786 58;} + rel2 { relative: 1.0 1.0; to: "bg_clipper"; } + } + description { + state: "highlight" 0.0; + inherit: "default" 0.0; + color_class: focusBgColor; + visible: 1; + } + } + part{ + name: "bookmarkmanager_text"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + visible: 1; + fixed: 1 1; + rel1 { relative: 0.0 0.0;to: "bookmarkmanager_button";} + rel2 { relative: 1.0 1.0;to: "bookmarkmanager_button";} + color: 0 0 0 255; + text { + text: "Bookmark Manager"; + font: "Sans"; + size: 27; + align: 0.5 0.5; + } + } + } + part { + name: "bookmarkmanager_over"; + scale:1; + type: RECT; + mouse_events: 1; + 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: "bookmarkmanager_button";} + rel2 { relative: 1.0 1.0; to: "bookmarkmanager_button";} + color_class: transparent; + } + } + part { + name: "bookmarkmanager_click"; + scale:1; + type: SWALLOW; + mouse_events: 1; + 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: "bookmarkmanager_over";} + rel2 { relative: 1.0 1.0; to: "bookmarkmanager_over";} + } + } + } + programs{ + program { + name: "mouse_click_bookmarkmanager"; + signal: "mouse,clicked,1"; + source: "bookmarkmanager_over"; + script { + emit("elm,action,click", ""); + } + } + program { + name: "mouse_in_bookmarkmanager_click"; + signal: "mouse,in"; + source: "bookmarkmanager_*"; + action: STATE_SET "highlight" 0.0; + target: "bookmarkmanager_button"; + target: "bookmarkmanager_over"; + target: "bookmarkmanager_text"; + } + program { + name: "mouse_out_bookmarkmanager_click"; + signal: "mouse,out"; + source: "bookmarkmanager_*"; + action: STATE_SET "default" 0.0; + target: "bookmarkmanager_button"; + target: "bookmarkmanager_over"; + target: "bookmarkmanager_text"; + } + } + } +} diff --git a/services/SimpleUI/SimpleUI.cpp b/services/SimpleUI/SimpleUI.cpp index 1e436f1..461d89a 100644 --- a/services/SimpleUI/SimpleUI.cpp +++ b/services/SimpleUI/SimpleUI.cpp @@ -41,7 +41,6 @@ #include "Tools/EflTools.h" #include "BrowserImage.h" #include "HistoryItem.h" -#include "BookmarkItem.h" #include "boost/date_time/gregorian/gregorian.hpp" #include "boost/date_time/posix_time/posix_time.hpp" #include "SqlStorage.h" @@ -75,6 +74,13 @@ SimpleUI::SimpleUI() { BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); elm_init(0, nullptr); + + config::DefaultConfig config; + config.load(""); + if (config.isMobileProfile()) { + elm_config_scale_set(boost::any_cast(config.get("mobile_scale"))); + } + Evas_Object *main_window = elm_win_util_standard_add("browserApp", "browserApp"); if (main_window == nullptr) BROWSER_LOGE("Failed to create main window"); diff --git a/services/WebPageUI/CMakeLists.txt b/services/WebPageUI/CMakeLists.txt index 6171eae..802541a 100644 --- a/services/WebPageUI/CMakeLists.txt +++ b/services/WebPageUI/CMakeLists.txt @@ -11,17 +11,6 @@ set(WebPageUI_SRCS UrlHistoryList/GenlistItemsManager.cpp ) -set(WebPageUI_HEADERS - WebPageUI.h - ButtonBar.h - URIEntry.h - UrlHistoryList/UrlHistoryList.h - UrlHistoryList/GenlistManager.h - UrlHistoryList/GenlistManagerCallbacks.h - UrlHistoryList/UrlMatchesStyler.h - UrlHistoryList/GenlistItemsManager.h - ) - include(Coreheaders) include(EFLHelpers) include(EWebKitHelpers) @@ -62,19 +51,31 @@ install(TARGETS ${PROJECT_NAME} include(EDCCompile) #please do not add edc/ directory -set(edcFiles - WebPageUI.edc - ErrorMessage.edc - LeftButtonBar.edc - RightButtonBar.edc - URIEntry.edc - PrivateMode.edc - UrlHistoryList.edc - ) +if (${PROFILE} MATCHES "mobile") # mobile profile + set(edcFiles + WebPageUI_mob.edc + ErrorMessage.edc + LeftButtonBar_mob.edc + RightButtonBar_mob.edc + URIEntry_mob.edc + PrivateMode.edc + UrlHistoryList.edc + ) +else (${PROFILE} MATCHES "mobile") # tv profile + set(edcFiles + WebPageUI.edc + ErrorMessage.edc + LeftButtonBar.edc + RightButtonBar.edc + URIEntry.edc + PrivateMode.edc + UrlHistoryList.edc + ) +endif (${PROFILE} MATCHES "mobile") foreach(edec ${edcFiles}) - string(REPLACE ".edc" ".edj" target_name ${edec}) + string(REGEX REPLACE "(_mob)?.edc" ".edj" target_name ${edec}) EDJ_TARGET(${target_name} - ${CMAKE_CURRENT_SOURCE_DIR}/edc/${edec} - ${CMAKE_CURRENT_BINARY_DIR}) + ${CMAKE_CURRENT_SOURCE_DIR}/edc/${edec} + ${CMAKE_CURRENT_BINARY_DIR}) endforeach(edec) diff --git a/services/WebPageUI/edc/LeftButtonBar_mob.edc b/services/WebPageUI/edc/LeftButtonBar_mob.edc new file mode 100644 index 0000000..76de12f --- /dev/null +++ b/services/WebPageUI/edc/LeftButtonBar_mob.edc @@ -0,0 +1,103 @@ +#include "ImageButton.edc" +#include "Spacer.edc" + +collections { + + FOUR_STATE_IMAGE_BUTTON("browser/toolbar_prev", 64, 64, "btn_bar_back_nor_mob.png") + + FOUR_STATE_IMAGE_BUTTON("browser/toolbar_next", 64, 64, "btn_bar_forward_nor_mob.png") + + FOUR_STATE_IMAGE_BUTTON("browser/toolbar_reload", 64, 64, "btn_bar_reload_nor_mob.png") + + FOUR_STATE_IMAGE_BUTTON("browser/toolbar_stop", 64, 64, "btn_bar_stop_nor_mob.png") + + group { + name: "left_button_bar"; + + parts { + + part { + name: "prev_button"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.0; + fixed: 1 1; + min: 64 64; + max: 64 64; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 0.0 0.0; } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + ADD_SPACER("spacer_1", "prev_button", 10, 64) + + part { + name: "next_button"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.0; + fixed: 1 1; + min: 64 64; + max: 64 64; + rel1 { relative: 1.0 0.0; to: "spacer_1"; } + rel2 { relative: 0.0 0.0; } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + ADD_SPACER("spacer_2", "next_button", 10, 64) + + part { + name: "refresh_stop_button"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.0; + fixed: 1 1; + min: 64 64; + max: 64 64; + rel1 { relative: 1.0 0.0; to: "spacer_2"; } + rel2 { relative: 0.0 0.0; } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + + } +} +} diff --git a/services/WebPageUI/edc/RightButtonBar_mob.edc b/services/WebPageUI/edc/RightButtonBar_mob.edc new file mode 100644 index 0000000..426c337 --- /dev/null +++ b/services/WebPageUI/edc/RightButtonBar_mob.edc @@ -0,0 +1,86 @@ +#include "ImageButton.edc" +#include "Spacer.edc" +collections { + FOUR_STATE_IMAGE_BUTTON("browser/toolbar_tab", 64, 64, "btn_bar_manager_nor_mob.png") + FOUR_STATE_IMAGE_BUTTON("browser/toolbar_setting", 64, 64, "btn_bar_more_nor_mob.png") + group { + name: "right_button_bar"; + parts { + part { + name: "tab_button"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + align: 0.0 0.0; + min: 70 70; + max: 70 70; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 0.0 0.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: "tabs_number"; + type: TEXT; + scale: 1; + repeat_events: 1; + description{ + state: "default" 0.0; + visible: 1; + fixed: 1 1; + align: 0.0 0.0; + min: 70 70; + max: 70 70; + color: 86 86 86 255; + rel1 { relative: 0.0 0.0; to: "tab_button"; } + rel2 { relative: 1.0 1.0; to: "tab_button"; } + text { + text: ""; + font: "Tizen:style=Bold"; + size: 19; + align: 0.5 0.5; + } + } + } + ADD_SPACER("spacer_1", "tab_button", 10, 70) + part { + name: "setting_button"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + align: 0.0 0.0; + min: 70 70; + max: 70 70; + fixed: 1 1; + rel1 { relative: 1.0 0.0; to: "spacer_1"; } + rel2 { relative: 0.0 0.0; } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } +} +} diff --git a/services/WebPageUI/edc/URIEntry_mob.edc b/services/WebPageUI/edc/URIEntry_mob.edc new file mode 100644 index 0000000..34bbcb7 --- /dev/null +++ b/services/WebPageUI/edc/URIEntry_mob.edc @@ -0,0 +1,269 @@ +#define URI_INPUTBOX_LENGTH 518 +#define URI_INPUTBOX_LENGTH_SMALL 320 +#define URI_INPUTBOX_WIDTH 64 +collections { + group { + name: "elm/entry/selection/browser_entry"; + parts { + part { + name: "bg"; + scale:1; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + } + } + } + group { + name: "elm/entry/cursor/browser_entry"; + parts { + part { + name: "bg"; + scale:1; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 22 120 237 255; + min: 2 36; + max: 2 36; + visible: 0; + } + description { + state: "focused" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { + name: "focused"; + signal: "elm,action,focus"; + source: "elm"; + action: STATE_SET "focused" 0.0; + target: "bg"; + } + program { + name: "unfocused"; + signal: "elm,action,unfocus"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + } + } + } + group { + name: "elm/entry/base-single/uri_entry"; + styles { + style { + name: "browser-entry-uri-style-unselected"; + base: "font=Sans:style=SVD_Medium font_size="42" wrap=none color=#969696"; + } + style { + name: "browser-entry-uri-style-selected"; + base: "font=Sans:style=SVD_Medium font_size="42" wrap=none color=#4088d3"; + } + } + data { + item: focus_highlight "off"; + } + parts { + + part { + name: "bg"; + scale:1; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + } + + part { + name: "elm.guide"; + scale:1; + type: TEXTBLOCK; + mouse_events: 0; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + align: 0.0 0.0; + text { + style: "browser-entry-uri-style-unselected"; + min: 0 1; + } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "label.text.clip"; + scale:1; + type: RECT; + description { + state: "default" 0.0; + } + } + part { + name: "elm.text"; + scale:1; + multiline: 0; + entry_mode: EDITABLE; + select_mode: DEFAULT; + cursor_mode: BEFORE; + type: TEXTBLOCK; + clip_to: "label.text.clip"; + source: "elm/entry/selection/browser_entry"; + source4: "elm/entry/cursor/browser_entry"; + description { + max: URI_INPUTBOX_LENGTH 82; + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + align: 0.0 0.0; + text { + style: "browser-entry-uri-style-selected"; + min: 0 1; + } + } + } + } + programs { + program { + name: "focus"; + signal: "load"; + source: ""; + action: FOCUS_SET; + target: "elm.text"; + } + program { + name: "gdisabled"; + signal: "elm,guide,disabled"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "elm.guide"; + } + program { + name: "genabled"; + signal: "elm,guide,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.guide"; + } + } + }//group + + group { + name: "elm/button/base/entry_btn"; + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + visible: 1; + } + } + } + programs { + program { + name: "mouse_click"; + signal: "mouse,clicked,1"; + source: "bg"; + script { + emit("elm,action,click", ""); + } + } + } + } + + + group { + name: "uri_entry_layout"; + parts { + part { + name: "uri_entry_swallow"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + align: 0.0 0.0; + min: URI_INPUTBOX_LENGTH URI_INPUTBOX_WIDTH; + max: URI_INPUTBOX_LENGTH URI_INPUTBOX_WIDTH; + fixed: 1 1; + rel1 { relative: 0 0; } + rel2 { relative: 1 1; } + } + description { + state: "moveright" 0.0; + inherit: "default" 0.0; + visible: 1; + min: URI_INPUTBOX_LENGTH_SMALL URI_INPUTBOX_WIDTH; + max: URI_INPUTBOX_LENGTH_SMALL URI_INPUTBOX_WIDTH; + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "over"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { relative: 0 0; } + rel2 { relative: 1 1; } + } + } + part { + name: "uri_entry_btn"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + rel1.to: "uri_entry_swallow"; + rel2.to: "uri_entry_swallow"; + } + } + } + programs { + program { + name: "shiftright_uribarbg"; + signal: "shiftright_uribg"; + source: "ui"; + action: STATE_SET "moveright" 0.0; + target: "uri_entry_swallow"; + } + program { + name: "shiftback_uribarbg"; + signal: "shiftback_uribg"; + source: "ui"; + action: STATE_SET "default" 0.0; + target: "uri_entry_swallow"; + } + } + } +} diff --git a/services/WebPageUI/edc/WebPageUI.edc b/services/WebPageUI/edc/WebPageUI.edc index ae1edaf..4ef11bd 100644 --- a/services/WebPageUI/edc/WebPageUI.edc +++ b/services/WebPageUI/edc/WebPageUI.edc @@ -128,27 +128,17 @@ collections { } } ADD_SPACER("right_spacer", "uri_bar_buttons_right", 74, 102) - part { - name: "web_view"; - type : SWALLOW; - scale: 1; - description { - state: "default" 0.0; - visible: 1; - align: 0.0 0.0; - fixed: 0 0; - rel1 { relative: 0.0 1.0; to: "uri_bar_bg"; } - rel2 { relative: 1.0 1.0; } - } - description { - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } + part { + name: "web_view"; + type : SWALLOW; + scale: 1; description { - state: "visible" 0.0; - inherit: "default" 0.0; + state: "default" 0.0; visible: 1; + align: 0.0 0.0; + fixed: 0 0; + rel1 { relative: 0.0 1.0; to: "uri_bar_bg"; } + rel2 { relative: 1.0 1.0; } } } part { @@ -236,22 +226,6 @@ collections { visible: 1; } } - part{ - name: "web_title_bar"; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - min: 1920 87; - max: 1920 87; - fixed: 1 1; - align: 0 1; - rel1 { to: "web_view"; relative: 0.0 1.0; } - rel2 { to: "web_view"; relative: 1.0 1.0; } - } - } - - part { name: "popup_bg"; type: RECT; diff --git a/services/WebPageUI/edc/WebPageUI_mob.edc b/services/WebPageUI/edc/WebPageUI_mob.edc new file mode 100644 index 0000000..701aeac --- /dev/null +++ b/services/WebPageUI/edc/WebPageUI_mob.edc @@ -0,0 +1,215 @@ +#define URI_LENGTH 518 +#define URI_LENGTH_SHORT 320 +#define URI_WIDTH 64 +#define URI_BG_HEIGHT 108 +#define URI_BG_WIDTH 720 +#include "Spacer.edc" + +collections { + group { + name: "main_layout"; + parts { + part { + name: "uri_bar_bg"; + type : RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + fixed: 1 1; + align: 0 0; + min: URI_BG_WIDTH URI_BG_HEIGHT; + max: URI_BG_WIDTH URI_BG_HEIGHT; + color: 255 255 255 255; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 0.0; } + } + } + ADD_SPACER_OVER("left_spacer", "uri_bar_bg", 32, URI_BG_HEIGHT) + part { + name: "uri_bar_buttons_left"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0 0.5; + min: 196 64; + max: 196 64; + fixed: 1 1; + rel1 { relative: 1.0 1.0; to: "left_spacer"; } + rel2 { relative: 0.0 0.0; to: "left_spacer"; } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + ADD_SPACER("left_buttons_spacer", "uri_bar_buttons_left", 0.5, 102) + part { + name: "uri_entry"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.5; + min: URI_LENGTH URI_WIDTH; + max: URI_LENGTH URI_WIDTH; + fixed: 1 1; + rel1 { relative: 1.0 0.5; to: "left_spacer"; } + rel2 { relative: 1.0 0.5; to: "left_spacer"; } + } + description { + state: "moveright" 0.0; + inherit: "default" 0.0; + visible: 1; + min: URI_LENGTH_SHORT URI_WIDTH; + max: URI_LENGTH_SHORT URI_WIDTH; + rel1 { relative: 1.0 0.5; to: "left_buttons_spacer"; } + rel2 { relative: 1.0 0.5; to: "left_buttons_spacer"; } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + ADD_SPACER("right_buttons_spacer", "uri_entry", 24, URI_BG_HEIGHT) + part { + name: "uri_bar_buttons_right"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.5; + min: 130 64; + max: 130 64; + fixed: 1 1; + rel1 { relative: 1.0 0.5; to: "right_buttons_spacer"; } + rel2 { relative: 1.0 0.5; to: "right_buttons_spacer"; } + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "TEST_web_view"; + type : RECT; + scale: 1; + description { + color: 0 255 0 255; + state: "default" 0.0; + visible: 1; + align: 0.0 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; to: "uri_bar_bg"; } + rel2 { relative: 1.0 1.0; } + } + } + part { + name: "web_view"; + type : SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.0; + fixed: 1 1; + rel1 { relative: 0.0 1.0; to: "uri_bar_bg"; } + rel2 { relative: 1.0 1.0; } + } + } + part { + name: "progress_bar"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.0; + fixed: 0 0; + min: URI_BG_WIDTH 2; + max: URI_BG_WIDTH 2; + rel1 { + relative: 0.0 0.0; + offset: 0 1; + to: "web_view"; + } + rel2 { relative: 1.0 1.0; } + } + } + part { + name: "progress_bar_light_bg"; + type: RECT; + repeat_events: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 0 8; + max: URI_BG_WIDTH 8; + align: 0 0; + visible: 0; + rel1.to: "web_view"; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + color: 69 143 255 55; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { + name: "shiftright_uribar"; + signal: "shiftright_uri"; + source: "ui"; + action: STATE_SET "moveright" 0.0; + target: "uri_entry"; + } + program { + name: "shiftback_uribar"; + signal: "shiftback_uri"; + source: "ui"; + action: STATE_SET "default" 0.0; + target: "uri_entry"; + } + program { + name: "hide_progress"; + signal: "hide_progressbar_bg"; + source: "ui"; + action: STATE_SET "default" 0.0; + target: "progress_bar_light_bg"; + } + program { + name: "show_progress"; + signal: "show_progressbar_bg"; + source: "ui"; + action: STATE_SET "visible" 0.0; + target: "progress_bar_light_bg"; + } + } + } +} diff --git a/services/WebPageUI/images/btn_bar_back_nor_mob.png b/services/WebPageUI/images/btn_bar_back_nor_mob.png new file mode 100644 index 0000000000000000000000000000000000000000..32937459abc48cd82826cd45dca3d424e9294060 GIT binary patch literal 3348 zcmV+v4eRoWP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0006%Nkl4~Q(Y zjEaaTBBB?OSrol23#Va&v%rRdkLzXaHMye;cYSA{eb!q0+=iK%8JT05o|rVID-krb0z?I5eOe~Aey6XnE=EL;3OunH>$*zOaSmUR>C;i0%2z+0IE4)H(p~`Ahcxy zfDbsOngnl;Jz-BK0A|kuo~cGKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0006qNkl=Zx>Qb z2nTsf;zBN5%pW8)rm}RiU&$HHVt<^5dvXrt7NZc}j3?Ku@ z05X6KAOpw%GJp&q14z?ay?SxG-5$UUo?-r9ytCWw{#QHT1jg|JYg0S|H}MIp1H!u0 z0DQ+5e8eie!-mv?;16sK=ZEnIn^MaH3)qgASbxkrBoM z!Z>dC3PO`xV!u+10n2tc#8H78@m!_?;8-Zc0#|XgSI##Pzyzkl`N;@^$sB=mA%cV` zI@^y$TMco3@-Go|svr5kNdT^>TIgknpxJ&dUMGM8*U<^*JCX0D0H6qGm&MLO+^yq7 z>HshpIewo%-J!XXY*?RCB_GfbhO4>Z{iPR;or~8&$*75!J9%3IK-j7VGgXcEIPRRbIUW&89Y}r&*I>nJ(Jc{CBGE!tuP+gutRT@#gjiWEdbe8C zRiXzWH%ds9y)t+1%$>Ps=A7S$=lOD;^X0_fHP)e_Ydp~yf_TkZk!FYW9yxlw=x&jb5k2Xib z&9_-pPL__K263o#18*~Cavn2iB8n+hK!lfqUO$evaE{ru31@#n9C30oDv8-t zlsbWOmTaB3C^_;?T*BblO2`|}>6Vktk;{e|)vc;Sbp0q*h zUw7}yy105cCBF}#C$D$meSE=31Wv=0m2cl{Cu;*lfs<6^pxr31UE)S8fo=zyV@rgJ zB5LAcKD z1*w3C(KSvJxGRCG(R&G603iXG+zh%Ez^oXM(6e;Y1+|T!9Y;@92gs>`glSx~Fdzv5 z4*h(5fgmaeFlirHD*w1$L%$_*l~hihGL~OKE8K=$%$Lm4Qk+`|r^kAmNzU;v$6R&s z&Y&E2sc;#(FNebb6r?g=ZF_hTh@-8+;pCDrwDw{uOA6oHF zi;uJ_K6Jkw$@4peTEZzvH2TRI9eL;Dh@27-e97djInk%Q9l9h8iTpeRaZIK+4N_%w zCCw7xJQliK2P%GlDa6`pH>E1|1F4Afm=+z$^zb@UmCw`-Fl?DTN0fFE)tHOFWNr#e zLEf0(2M(1axx%fnN_V>X6jfNCMEh4ZGU@Jz65_pG(D!#lDbk#W-ruaEuI%Ngy;nut z9DnRQ`aXb!AzZ7SLXIQ=%Hznbp^Gp?7|-gK@!a5-xjs)JPeB}I+9`N5t<2zqK-2YK z-E2-$lCcO~QNC%06h;VrNF1zNo}VEeCMAe{@t5BFx9|yu3GInTW_;VC<#{r?9DHd5 z^DdrsWD4n`Jh%I!*U{@;>(c9->%0dxlxQb)-?yjct3qaj5A@kL=r?3GNL{m~G%Via znk|+U!mrDwSVOA|F=p>fW6Kz2p5!WwM6&1^6jv8zOmeuhx}SKw`|96xeKCXEIBU#u zVrX0EYt~odqX24}80N^nIHVAJ9vc}Ol0AU!UAAEf`(z?}A6!CSayNS`hc3t40wIDC zdB&VNNSUFZA&|i-0)dxTlvFHLP+1&W48c>%@0*9#Xj@2|ua#4L&aAYkK;PXp=QKx_ zE0x7oAj`brYH!1=F5*e8x(vHaU~f$e-rKLW^zu+Sv)2cT@_N!##ykm^?G|`HGWYDM zNOSfDS979DMR}nDOj=*svfk`4-A#>bE!+3>mA^5?mQZQdVOYWv(|6%jVa^g6L#(8$ zt!G7MRwklSx6-syXSY?ZX0H@o(yG;Lbrw#m(WftHE2x7^!Cgadna`OomQt3o7^x^8 z*N9hm7IPLhYX*FJRJxy?-*z9BZ|GgR6x6!)`$j0_0)FB3yYyIx8bMl5%}KTKhEUFxu6#|+1;m8ewgxbmAR?SHiCl015C*Z9}GdcAtz2#^Z!3K$se z813hp8DUF=OOyWBxj_y^0xA3@|GJNtOKn@F=d#Ku6lLr)+JW^ zn3hM;)(Td|2n%bwdhKd-^{wgV>gLkxrC8%M9(rJ<#TPlR8LNB=&LSVO(OoLBx=Fma2FjXYXQv>$<-Gv9H}q@We4XuRgDH zuMGcgUvA%HKX&2uu*_@Wd@Je4V_p5QFQyygYE-W?Bs`a^!c1T$;mC$9K8Q0U)v|h~ zwy`*%;>7VgtLjfxzt?N3Ys&IVQcG6$!}9Ho{f$E=UEcZj(aW&sd;}LlFku{&qHYl( ziQ~gH!fpOKI}Luu`zcvX5%2o5Zf;K_sQ|0NtdSB?9kJ0-&FkL(?L{^3$yPQl73V=4 zeK+ju^cb1rrek7P7`0$@Y_w&JTCz_Zf@54VOEzG90rq%V^S5TE=29L~(nR5%n7*ut zYK8a%<$3ugnI^SfaW|{sDFhm!_t4;mg1AVH+@ptW%jbKCv8(7+sjMao!`ZXGZN+)Abl>g4J~-h_8Tm5xg)g*%*C-8x+(B-- zJsqlYjjp@wd6d`);m#l%@T`APb~w@8i^lN$gIr2J+e1k zKZt)J|LXf|!X85>!^%rcag2eb7#Cu*wd#RFow9Ebo^p-(+U=Noq*clv6EGrPQzn&r zmRU7ntpdSDp5ga91|vEeh&*?xEGRdkLw6Tu_Uud$5Ub?|$KNq%PF3dkgc>G1YZmkK zS)ql%4bE8a!B060=^x4~yRj~#ZWC_Xn@eK(Hnf=)S({n3k7(xRKhP}S`>=QXQwtBt z8WF-bM`B>uH=mS0wz!rK;6{|x;BVna@ZWH`{fWf}$C=YdG2YK3g_@26ZyF31CD?m@10 zo_X$>jgw82$*}79^v+W7xeoqsx>qvFRzdoQ@Bxqc?TE=Vc7$KcMse-bC-eGNDCC+)`>$!r2~t^gpP>Z!lVZw9I{{Xz#V-zoUGaHfhq={Hi&( z25aky-4AYU2yr{v=FFGJEgrQ7{a_(XPvtA9EVdp7d!O{2951shhWQCz;D(y#0tEM~ zTTEK)kJR@x=3tAlQ))Js3$x!Bo-(E!I+OKhJkNy)?!Vq2n~#;ArLm`_5lD!$56_*Y#qd}E zCXchOnGpcNw*Wvz0`QA)#ccqdNC2?o0DxjP0Ic3G?R&JZyl6d54S3-EH@pEQN`m@Y zyLOB7=&X4O>%Ss(HHKS?zqmc)Pj_;0t9(_>Om}7fPoXO2Ubl^f5IR?Qlev>6WgLQt z_uD#G-?CrHsI<8k9RD@`KR*uU4UK6QUW6c_qZ|FMOp>;KBvb z1Q^;q0DzA5FUUatOD+ItEqvhcTerOZgZ&?P`v>qF!QuP?LH=Go_dEdzoyAzA5Z0R< z8pMS|m`M`)g^9lvJ2k%*EEUa`Ap#YkVKz<@D4t=rY`>zXN5R`yltiAEhJMO!DM6n? zJ59AJ@H#E_O;XCh$x_4{-^nK8`taGODb0=Q15Eu0RU0*ZwxPVGBAUJe#&_j=Y;RZ3 z(yEkpG_6noV5YA35O_cmBm>7$>gqSHw^6kKve0olYS3m@&?a*=@tkQ3mgh)@jw5Re z&bVnpjb;Pd;c2i^psi1a#^j1vgCYvxGU)EM0&YnH7ttr{;{c60&Wj)e4le}Q$%--n zKdWbwF7Q?Z)g!l4^Z-%@uz8tuseoxoAY)|fWeDCkfHpicT^*pN2QrpP@#26Y0=V=E z3WkEXJiw;EZ>#?EMlJIO^g^k;I(3|oie9t>wPYZbt*sQF7~Y8U2Ah)WCD(jysgAHb zZnuzo0T+i`3XU2*laQ|G zL90=s{mxzs?^1Z*p(}bwO!cZ`(*6XBHfL=Q0{&{FSNse&Gqbk3I&Itqb8sE7jXXnj zIJeo7?){EZKP4W0Z&?`v zV87A7{hJsyIodmRX(Z%)Pm5$wBn;4AM$ZEQxT7m1g&3&U>ZJxiw*nDQx z2w?i-N?q74))Y-cq0>jr>MAgsMCO))6ilP$%!@x3Xg8!_NfqMnPhzvYZjzyBC~K91 z;I}b^>}v#FQb}~w|B|8B2jpT-6PgTUUqshgYJ8*r1jm&t^Tg@Dru*sEgKuT|bmv+0`fUYWKZTvYO1_hh7cI$#T7eZ%%Kb&$}PNU#`q&@tNm*wH+JW zH29J8gZwaro*{ufwl@hS#$CWg#f9Py;d+;ATFO11%H4~QQI_4#-N<9g^S41lvCzlt z83VLg##tg+yijRGMP+H_LM5Hefz2Qyz2c5_WUao9y!A>2&A03-n@Y^BZEId@RE1i3 zVkN5FAEEU&%8rywY1e7mX#sz0S@gkqrKyLX&YinHR6@X)p(^2Fv|^XYhvAvWkD!gY zBuHbbMrB2@3S8b;-nQQA;DwhK)k<#Q@ylRynhmkCoP(&81-3o$WpUn81yh`?r=xFW zc1||3%CO3^%3!-$sdlFfQ`)T8Xm=9LsMBjK>L_Y}O2=QuY*^1&&zI4bahPeS9@R=! z`j+q(H|mD8-Y?tDEo`}iE;RKoTL^33_;WQJaH(!cR-MQ>Qk(#5Kz`XDKcNH>&<-LjNCqrl&qVjw?bdem#CYZ$v0X1Vl{Cw#;_( zt;}$x;-zY)YNoxzL&L9!C-W2wG-RjbHVQThrV17tTH2B&zfMPi#N7qJjJU+B7Ah7VC$NbVa#w zq8hquJ9jgiGb6u5{zKBBVo01}tb*7>q8@wR#1>*)NP89Az>_Jj$vPsOKRF0-p0dLQIU-PPQ@KK=CQux>rrl7u{W2c<( zZdYm7XE$-~)sVs~@j^TK2VXn;;NLCRMz!c(Wy$z1R!3RDEuvAMHUy>Jr88`6rrtM{ zgj5n;_c%3wX$HMo(OgkiUXWX`a~@J|Yv^kjwCMCNbdFzyKM_3lI1fJ`1!ZVqG8B1o zv`)0crIX|E#{#WsTB-!kUv)D(I!}vmI_x^>F*Px3?KJ}4eg8hI5g=~l;xq6*jPbXk zeoTI)a$R>#?Tn%qjZciXP0&gUNJ8?A%H}ABjLyLyEb9Kz&DLEgK*?IDypuFmglbkw z-Bq7e{-W?jt4GSqZfF9DK^omNxvC-styQ{zuVwLc=OA$zvrM-V!I>-F=M)fDjPE#% zFXO0?Vv$hI);3Ktzxm=nI?T{=j;F%=tRcc_v|$~P4%Bt&QKiwOX}BYl&wSqyY8L+d z-;5^3FrjYw5{WfjoM^?fCQ}B}`2y8Kj{HabesUVB&9br2GoA&)Dh13kv8XN7y4Rz@ zYR~w(v+nz;4bpsBRQ*)q51*B zGv$|iug-T^I#`yTV@ncDY$YMc_2%lkDs}3CVFcP0_RBXCZc|pPe@?+d{U$7`c5HKM zqnbs+&3vQpv=79ze>KL_vE5!P63KilTNQ+4*+3f@vb%N)1pZG737UyF0} z#qEYSe~R!TZt@l?b_iAReZ^HD*fB>Z6GOo-@iO_N2F z^P%>R&J27$aYD=CY;JmQ?#bP@kfMXpIRhePeC)_s#!)&G{Bn9;`d|V>!gk?JO%;`8 ztsv6oX&HRPV??Bo^X&E6U@a$ybky<0_7r|JceFTXKPR)*?{Nuft8JV69igYAhp(kS zR9^PZ;q8;1_K>*{$ljYpCX3a_{7=Nry?=i=vi@3jlF6N!c}_u|dvNM5FG;xgH~HNS zt;_%j7X|J72+__u-qITFwR|gR~`|oTq!zEd+%ilvN z`ss(rLcMO9Tyl@renh1p)4PM#q|cS7?t>V$qGq+iDvqrzM@#okzP+@AGF^1||CZ%( zHrP3fbrMk#u@l7!s|alxi+3(WoIGrOF-96^xG6j%V%Icz&_x<0yB!-QANV8~ed5w$ zK6ee`@@n<@>QDO+R-#tvPk5Kw|DW-{4Erh#0O#lA01_*i$mmC2@;7RvXRccdbBXyc D4`ORg literal 0 HcmV?d00001 diff --git a/services/WebPageUI/images/btn_bar_reload_nor_mob.png b/services/WebPageUI/images/btn_bar_reload_nor_mob.png new file mode 100644 index 0000000000000000000000000000000000000000..28a77eeb4edc49f394a0d81c906ab397fe610106 GIT binary patch literal 3516 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 literal 0 HcmV?d00001 -- 2.7.4