} BookmarkItemData;
BookmarkManagerUI::BookmarkManagerUI()
- : m_genList(nullptr)
- , b_mm_layout(nullptr)
+ : b_mm_layout(nullptr)
, m_itemClass(nullptr)
, m_gengrid(nullptr)
, m_parent(nullptr)
void BookmarkManagerUI::showUI()
{
- evas_object_show(b_mm_layout);
+ evas_object_show(b_mm_layout);
+ m_focusManager.startFocusManager(m_gengrid);
}
void BookmarkManagerUI::hideUI()
evas_object_hide(b_mm_layout);
elm_gengrid_clear(m_gengrid);
m_map_bookmark.clear();
+ m_focusManager.stopFocusManager();
}
Evas_Object* BookmarkManagerUI::getContent()
createGenGrid();
showTopContent();
+ createFocusVector();
return b_mm_layout;
}
void BookmarkManagerUI::showTopContent()
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ M_ASSERT(b_mm_layout);
elm_theme_extension_add(nullptr, edjFilePath.c_str());
- m_genList = elm_genlist_add(b_mm_layout);
- elm_object_part_content_set(b_mm_layout, "elm.swallow.genlist", m_genList);
- elm_genlist_homogeneous_set(m_genList, EINA_FALSE);
- elm_genlist_multi_select_set(m_genList, EINA_FALSE);
- elm_genlist_select_mode_set(m_genList, ELM_OBJECT_SELECT_MODE_ALWAYS);
- elm_genlist_mode_set(m_genList, ELM_LIST_LIMIT);
- elm_genlist_decorate_mode_set(m_genList, EINA_TRUE);
- evas_object_size_hint_weight_set(m_genList, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- m_itemClass = elm_genlist_item_class_new();
- m_itemClass->item_style = "topContent";
- m_itemClass->func.text_get = &listItemTextGet;
- m_itemClass->func.content_get = &listItemContentGet;
- m_itemClass->func.state_get = 0;
- m_itemClass->func.del = 0;
-
- ItemData * id = new ItemData;
- id->m_bookmarkManager = this;
- Elm_Object_Item* elmItem = elm_genlist_item_append(m_genList, //genlist
- m_itemClass, //item Class
- id,
- nullptr, //parent item
- ELM_GENLIST_ITEM_NONE, //item type
- nullptr,
- nullptr //data passed to above function
- );
-
- id->e_item = elmItem;
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-}
-Evas_Object* BookmarkManagerUI::listItemContentGet(void* data, Evas_Object* obj, const char* part)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- if ((data != nullptr) && (obj != nullptr) && (part != nullptr))
- {
- const char *part_name = "close_click";
- static const int part_name_len = strlen(part_name);
- ItemData * id = static_cast<ItemData *>(data);
+ m_topContent = elm_layout_add(b_mm_layout);
+ elm_object_part_content_set(b_mm_layout, "top_content", m_topContent);
+ evas_object_size_hint_weight_set(m_topContent, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(m_topContent, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(m_topContent);
- if(!strncmp(part_name, part, part_name_len))
- {
- Evas_Object *close_click = elm_button_add(obj);
- elm_object_style_set(close_click, "hidden_button");
- evas_object_smart_callback_add(close_click, "clicked", BookmarkManagerUI::close_clicked_cb, id);
- return close_click;
- }
- }
- return nullptr;
+ elm_layout_file_set(m_topContent, edjFilePath.c_str(), "topContent");
+
+ Evas_Object* close_button = elm_button_add(m_topContent);
+ elm_object_style_set(close_button, "hidden_button");
+ evas_object_smart_callback_add(close_button, "clicked", close_clicked_cb, this);
+ elm_object_part_content_set(m_topContent, "close_click", close_button);
+
+ evas_object_show(close_button);
+ elm_object_focus_custom_chain_append(m_topContent, close_button, nullptr);
+ elm_object_focus_set(close_button, EINA_TRUE);
+ elm_object_tree_focus_allow_set(b_mm_layout, EINA_TRUE);
+ elm_object_focus_allow_set(close_button, EINA_TRUE);
}
void BookmarkManagerUI::close_clicked_cb(void* data, Evas_Object*, void*)
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
if (data != nullptr)
{
- ItemData * id = static_cast<ItemData *>(data);
- id->m_bookmarkManager->closeBookmarkManagerClicked();
+ BookmarkManagerUI* id = static_cast<BookmarkManagerUI*>(data);
+ id->closeBookmarkManagerClicked();
}
}
-char* BookmarkManagerUI::listItemTextGet(void* data, Evas_Object*, const char* part)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- return strdup("Bookmark");
-}
-
-Evas_Object * BookmarkManagerUI::getGenList()
-{
- return m_genList;
-}
-
Evas_Object * BookmarkManagerUI::getGenGrid()
{
BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__);
}
}
+void BookmarkManagerUI::createFocusVector()
+{
+ BROWSER_LOGD("[%s:%d]", __PRETTY_FUNCTION__, __LINE__);
+ m_focusManager.addItem(elm_object_part_content_get(m_topContent, "close_click"));
+ m_focusManager.addItem(m_gengrid);
+ m_focusManager.setIterator();
+}
+
}
}
group {
- name: "elm/genlist/item/topContent/default";
+ name: "topContent";
min: WIDTH HEIGHT;
max: WIDTH HEIGHT;
images {
type: RECT;
description {
state: "default" 0.0;
- color: 255 255 255 255;
+ color: 231 231 231 255;
align: 0 0;
min: 1920 285;
max: 1920 285;
visible: 1;
align: 0.0 0.0;
fixed: 0 0;
- min: 1920 5;
- max: 1920 5;
+ min: 1920 14;
+ max: 1920 14;
image.normal: "web_shadow.png";
rel1 { relative: 0.0 1.0; to: "action_bar_bg"; }
rel2 { relative: 1.0 1.0; }
fixed: 1 1;
rel1 { relative: 0.0 0.0;to: "action_bar_bg";}
rel2 { relative: 1.0 1.0;to: "action_bar_bg";}
- color: 116 116 116 255;
+ color: 51 51 51 255;
text {
text: "Bookmark Manager";
font: "Sans";
align: 0 0.5;
min: 82 102;
max: 82 102;
- rel1 { relative: 0.0 0.0; to: "action_bar_bg"; offset: 1828 0;}
+ rel1 { relative: 0.0 0.0; to: "action_bar_bg"; offset: 1758 0;}
rel2 { relative: 1.0 1.0; to: "action_bar_bg";}
color_class: transparent;
}
fixed: 1 1;
rel1 { relative: 0.0 0.0;to: "bookmark_group_bg"; offset : 62 104; }
rel2 { relative: 1.0 1.0;to: "bookmark_group_bg";}
- color: 116 116 116 255;
+ color: 74 74 74 255;
text {
- text: "Bookmark";
+ text: "Bookmarks";
font: "Sans";
size: 34;
align: 0.0 0.0;
visible: 1;
min: 1920 1080;
max: 1920 1080;
+ color: 231 231 231 255;
rel1 {
relative: 0 0;
}
}
}
}
- part { name: "elm.swallow.genlist";
+ part { name: "top_content";
type : SWALLOW;
scale: 1;
description {
align: 0.0 0.0;
min: 1920 614;
max: 1920 614;
- color: 255 255 255 255;
+ color: 231 231 231 255;
rel1 {
relative: 0 1; to: "genlist_bg";
}
visible: 1;
}
}
-
- part { name: "genlist2_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: 255 255 255 255;
- rel1 {
- relative: 0 1; to: "gengrid_bg";
- }
- rel2{
- relative: 1 1;
- }
- }
- }
- part { name: "elm.swallow.genlist2";
- type : SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- min: 1920 149;
- max: 1920 149;
- align: 0.0 0.0;
- fixed: 0 0;
- rel1 { relative: 0.0 0.0; to: "genlist2_bg"; offset: 0 32;}
- rel2 { relative: 1.0 1.0; to: "genlist2_bg";}
- }
- description {
- state: "hidden" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- description {
- state: "visible" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
part { name: "elm.swallow.empty";
type: SWALLOW;
description { state: "default" 0.0;
type: RECT;
mouse_events: 0;
description { state: "default" 0.0;
- color: 255 255 255 255;
+ color: 231 231 231 255;
rel1 {
relative: 0 0;
}
min: 378 294;
max: 378 294;
visible: 1;
- color: 231 231 231 255;
+ color: 255 255 255 255;
rel1.offset: -26 -26;
}
description { state: "selected";
description { state: "default" 0.0;
fixed: 1 0;
align: 0.0 0.0;
- color : 231 231 231 255;
+ color : 255 255 255 255;
min: 378 198;
max: 378 198;
rel1 {
min: 378 96;
max: 378 96;
align: 0.0 0.0;
- color: 231 231 231 255;
+ color: 255 255 255 255;
rel1 {
to: "elm.thumbnail";
relative: 0.0 1.0;