const std::string& url,
const std::string& title,
const TabOrigin& origin,
- tools::BrowserImagePtr thumbnail)
+ tools::BrowserImagePtr thumbnail,
+ bool isSecret)
: m_id(id)
, m_url(url)
, m_title(title)
, m_origin(origin)
, m_thumbnail(thumbnail)
+ , m_isSecret(isSecret)
{
}
-TabContent::TabContent(const TabId& id, const std::string& url, const std::string& title, const TabOrigin& origin) :
- TabContent(id, url, title, origin, std::make_shared<tools::BrowserImage>())
+TabContent::TabContent(const TabId& id, const std::string& url, const std::string& title, const TabOrigin& origin, bool isSecret) :
+ TabContent(id, url, title, origin, std::make_shared<tools::BrowserImage>(), isSecret)
{
}
return m_thumbnail;
}
+bool TabContent::getIsSecret() const
+{
+ return m_isSecret;
+}
+
} /* end of basic_webengine */
} /* end of tizen_browser */
const std::string& url,
const std::string& title,
const TabOrigin& origin,
- tools::BrowserImagePtr thumbnail);
- TabContent(const TabId& id, const std::string& url, const std::string& title, const TabOrigin& origin);
+ tools::BrowserImagePtr thumbnail,
+ bool isSecret = false);
+ TabContent(const TabId& id,
+ const std::string& url,
+ const std::string& title,
+ const TabOrigin& origin,
+ bool isSecret = false);
TabId getId() const;
std::string getUrl() const;
std::string getTitle() const;
TabOrigin getOrigin() const;
void setThumbnail(tools::BrowserImagePtr thumbnail);
tools::BrowserImagePtr getThumbnail() const;
+ bool getIsSecret() const;
private:
TabId m_id;
std::string m_title;
TabOrigin m_origin;
tools::BrowserImagePtr m_thumbnail;
+ bool m_isSecret;
};
} /* end of basic_webengine */
}
color_class {
name: "AO027";
- color: 0 0 0 255;
+ //TODO: add correct color when guidelines are fixed.
+ color: 61 185 204 255;
+ }
+ color_class {
+ name: "tabs_secret_bg";
+ color: 97 97 97 255;
+ }
+ color_class {
+ name: "AO028";
+ color: 15 125 153 255;
}
color_class {
name: "AO030";
color: 102 102 102 205;
}
+ color_class {
+ name: "AO033";
+ color: 0 0 0 127;
+ }
color_class {
name: "AO034";
color: 0 0 0 205;
}
color_class {
name: "AO035";
+ //TODO: add correct color when guidelines are fixed.
color: 255 255 255 230;
}
color_class {
name: "secret";
+ //TODO: add correct color when guidelines are fixed.
color: 97 97 97 255;
}
//Font colors
elm_gengrid_align_set(m_gengrid, 0.5, 0.0);
evas_object_smart_callback_add(m_gengrid, "pressed", _gengrid_tab_pressed, this);
evas_object_smart_callback_add(m_gengrid, "released", _gengrid_tab_released, this);
+ evas_object_smart_callback_add(m_gengrid, "realized", _gengrid_tab_realized, this);
elm_object_part_content_set(m_content, "elm.swallow.content", m_gengrid);
evas_object_show(m_gengrid);
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
boost::optional<bool> landscape = isLandscape();
if (landscape) {
+ std::string state;
if (*landscape) {
elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH_LANDSCAPE), ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT_LANDSCAPE));
elm_object_signal_emit(m_content, "switch_landscape", "ui");
+ state = "state_landscape";
} else {
elm_gengrid_item_size_set(m_gengrid, ELM_SCALE_SIZE(GENGRID_ITEM_WIDTH), ELM_SCALE_SIZE(GENGRID_ITEM_HEIGHT));
elm_object_signal_emit(m_content, "switch_vertical", "ui");
+ state = "state_default";
+ }
+ Elm_Object_Item *it = elm_gengrid_first_item_get(m_gengrid);
+ while (it) {
+ elm_object_item_signal_emit(it, state.c_str(), "ui");
+ it = elm_gengrid_item_next_get(it);
}
} else {
BROWSER_LOGE("[%s:%d] Signal not found", __PRETTY_FUNCTION__, __LINE__);
}
}
+void TabUI::_gengrid_tab_realized(void *, Evas_Object *, void *event_info)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ if (event_info) {
+ auto tabItem = static_cast<Elm_Object_Item*>(event_info);
+ auto tabData = static_cast<TabData*>(elm_object_item_data_get(tabItem));
+ auto favicon = elm_object_item_part_content_get(tabItem, "elm.icon");
+ if (tabData->item->getIsSecret()) {
+ elm_object_item_signal_emit(tabItem, "state_secret", "ui");
+ elm_object_signal_emit(favicon, "state_secret", "ui");
+ } else {
+ elm_object_item_signal_emit(tabItem, "state_normal", "ui");
+ elm_object_signal_emit(favicon, "state_normal", "ui");
+ }
+ } else {
+ BROWSER_LOGW("[%s] event_info = nullptr", __PRETTY_FUNCTION__);
+ }
+}
+
void TabUI::_close_tab_clicked(void *data, Evas_Object*, void*)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
static void _gengrid_tab_pressed(void * data, Evas_Object * obj, void * event_info);
static void _gengrid_tab_released(void * data, Evas_Object * obj, void * event_info);
static void _gengrid_tab_clicked(void * data, Evas_Object * obj, void * event_info);
+ static void _gengrid_tab_realized(void * data, Evas_Object * obj, void * event_info);
static void _close_clicked(void *data, Evas_Object *obj, void *event_info);
void updateNoTabsText(bool forceShow=false);
group { name: "favicon_image";
images.image: "internet_tabs_ic_default.png" COMP;
+ script {
+ public secret_mode = 0;
+ }
parts {
part { name: "image";
type: IMAGE;
program { name: "on_mouse_up";
signal: "on_mouse_up";
source: "ui";
- action: STATE_SET "default" 0.0;
- target: "image";
+ script {
+ if (get_int(secret_mode))
+ set_state(PART:"image", "selected", 0.0);
+ else
+ set_state(PART:"image", "default", 0.0);
+ }
+ }
+ program { name: "state_secret";
+ signal: "state_secret";
+ source: "ui";
+ script {
+ set_int(secret_mode, 1);
+ set_state(PART:"image", "selected", 0.0);
+ }
+ }
+ program { name: "state_normal";
+ signal: "state_normal";
+ source: "ui";
+ script {
+ set_int(secret_mode, 0);
+ set_state(PART:"image", "default", 0.0);
+ }
}
}
}
images.image: "internet_tabs_img_mask.#.png" COMP;
data.item: "texts" "elm.text";
data.item: "contents" "elm.icon elm.button elm.thumbnail elm.overlay";
+ script {
+ public secret_mode = 0;
+ }
parts {
rect { "top_left_spacer"; scale;
description { "default";
}
color_class: "AO026";
}
+ description { "secret_default";
+ inherit: "default";
+ color_class: "tabs_secret_bg";
+ }
description { "selected";
inherit: "default";
color_class: "AO027";
}
+ description { "secret_selected";
+ inherit: "default";
+ color_class: "AO028";
+ }
}
rect { "icon_spacer"; scale;
description { "default";
visible: 1;
image.normal: "internet_tabs_img_mask.#.png";
}
+ description { state: "secret" 0.0;
+ inherit: "default";
+ color_class: "AO033";
+ }
}
swallow { "elm.thumbnail"; scale;
description { "default";
target: "top_left_spacer";
target: "bottom_right_spacer";
}
- program { name: "state_default";
+ program { name: "state_default";
signal: "state_default";
source: "ui";
action: STATE_SET "default" 0.0;
target: "bottom_right_spacer";
}
program { name: "selected";
- signal: "elm,state,selected";
- source: "elm";
- action: STATE_SET "selected" 0.0;
- target: "elm.text";
- target: "top_bg";
- target: "press_effect";
+ signal: "elm,state,selected";
+ source: "elm";
+ script {
+ if (get_int(secret_mode))
+ set_state(PART:"top_bg", "secret_selected", 0.0);
+ else
+ set_state(PART:"top_bg", "selected", 0.0);
+ set_state(PART:"elm.text", "selected", 0.0);
+ }
}
program { name: "unselected";
- signal: "elm,state,unselected";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "elm.text";
- target: "top_bg";
- target: "press_effect";
+ signal: "elm,state,unselected";
+ source: "elm";
+ script {
+ if (get_int(secret_mode)) {
+ set_state(PART:"elm.text", "selected", 0.0);
+ set_state(PART:"top_bg", "secret_default", 0.0);
+ } else {
+ set_state(PART:"elm.text", "default", 0.0);
+ set_state(PART:"top_bg", "default", 0.0);
+ }
+ }
+ }
+ program { name: "state_secret";
+ signal: "state_secret";
+ source: "ui";
+ script {
+ set_int(secret_mode, 1);
+ set_state(PART:"elm.text", "selected", 0.0);
+ set_state(PART:"top_bg", "secret_default", 0.0);
+ set_state(PART:"image_mask", "secret", 0.0);
+ }
+ }
+ program { name: "state_normal";
+ signal: "state_normal";
+ source: "ui";
+ script {
+ set_int(secret_mode, 0);
+ set_state(PART:"elm.text", "default", 0.0);
+ set_state(PART:"top_bg", "default", 0.0);
+ set_state(PART:"image_mask", "default", 0.0);
+ }
}
}
}
std::vector<TabContentPtr> WebEngineService::getTabContents() const {
std::vector<TabContentPtr> result;
for (auto const& tab : m_stateStruct->tabs) {
- auto tabContent = std::make_shared<TabContent>(tab.first, tab.second->getURI(), tab.second->getTitle(), tab.second->getOrigin());
+ auto tabContent = std::make_shared<TabContent>(tab.first, tab.second->getURI(),
+ tab.second->getTitle(), tab.second->getOrigin(), m_state == State::SECRET);
result.push_back(tabContent);
}
return result;