evas_object_smart_callback_add(edit_button, "clicked", __slide_edit_button_clicked_cb, item);
return edit_button;
} else if (!strncmp(part, "elm.slide.swallow.2", strlen("elm.slide.swallow.2"))) {
+ if (item->is_folder) {
+ Evas_Object *delete_button = elm_button_add(obj);
+ if (!delete_button) {
+ BROWSER_LOGE("elm_button_add is failed.\n");
+ return NULL;
+ }
+ elm_object_style_set(delete_button, "text_only/sweep");
+ elm_object_text_set(delete_button, BR_STRING_DELETE);
+ if (!item->is_editable)
+ elm_object_disabled_set(delete_button, EINA_TRUE);
+ evas_object_smart_callback_add(delete_button, "clicked", __slide_delete_button_clicked_cb, item);
+ return delete_button;
+ } else {
+ Evas_Object *share_button = elm_button_add(obj);
+ if (!share_button) {
+ BROWSER_LOGE("elm_button_add is failed.\n");
+ return NULL;
+ }
+ elm_object_style_set(share_button, "text_only/sweep");
+ elm_object_text_set(share_button, BR_STRING_SHARE);
+ evas_object_smart_callback_add(share_button, "clicked", __slide_share_button_clicked_cb, item);
+ return share_button;
+ }
+ } else if (!strncmp(part, "elm.slide.swallow.3", strlen("elm.slide.swallow.3"))) {
Evas_Object *delete_button = elm_button_add(obj);
if (!delete_button) {
BROWSER_LOGE("elm_button_add is failed.\n");
show_notify_popup(BR_STRING_DELETED, 3, EINA_TRUE);
}
+void Browser_Bookmark_View::__slide_share_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ BROWSER_LOGD("[%s]", __func__);
+ if (!data)
+ return;
+
+ Browser_Bookmark_DB::bookmark_item *item = (Browser_Bookmark_DB::bookmark_item *)data;
+ Browser_Bookmark_View *bookmark_view = (Browser_Bookmark_View *)(item->user_data_1);
+ if (!bookmark_view->_show_share_popup(item->url.c_str()))
+ BROWSER_LOGE("_show_share_popup failed");
+}
+
void Browser_Bookmark_View::__slide_delete_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
BROWSER_LOGD("[%s]", __func__);
evas_object_smart_callback_add(genlist, "moved", __genlist_move_cb, this);
m_bookmark_genlist_item_class.item_style = "1text.1icon.2";
- m_bookmark_genlist_item_class.decorate_item_style = "mode/slide2";
+ m_bookmark_genlist_item_class.decorate_item_style = "mode/slide3.text";
m_bookmark_genlist_item_class.decorate_all_item_style = "edit_default";
m_bookmark_genlist_item_class.func.text_get = __genlist_label_get_cb;
m_bookmark_genlist_item_class.func.content_get = __genlist_icon_get_cb;
static void __delete_processing_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
static void __slide_edit_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __slide_delete_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+ static void __slide_share_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __edit_bookmark_item_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __rename_folder_unfocus_cb(void *data, Evas_Object *obj, void *event_info);
static void __rename_folder_entry_enter_key_cb(void *data, Evas_Object *obj, void *event_info);
return EINA_TRUE;
}
+Eina_Bool Browser_Common_View::_show_share_popup(const char *url)
+{
+ BROWSER_LOGE("url=[%s]", url);
+ if (!url || strlen(url) == 0) {
+ BROWSER_LOGE("url is empty");
+ return EINA_FALSE;
+ }
+
+ m_share_url = std::string(url);
+
+ m_sns_path_list.clear();
+ m_sns_name_list.clear();
+ m_sns_icon_list.clear();
+
+ m_share_popup = elm_popup_add(m_navi_bar);
+ if (!m_share_popup) {
+ BROWSER_LOGE("elm_popup_add failed");
+ return EINA_FALSE;
+ }
+ elm_object_style_set(m_share_popup, "menustyle");
+ elm_object_part_text_set(m_share_popup, "title,text", BR_STRING_SHARE);
+ evas_object_size_hint_weight_set(m_share_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ m_share_list = elm_list_add(m_share_popup);
+ if (!m_share_list) {
+ BROWSER_LOGE("elm_list_add failed");
+ return EINA_FALSE;
+ }
+ evas_object_size_hint_weight_set(m_share_list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(m_share_list, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_list_item_append(m_share_list, BR_STRING_MESSAGES, NULL, NULL, __send_via_message_cb, this);
+ elm_list_item_append(m_share_list, BR_STRING_EMAIL, NULL, NULL, __send_via_email_cb, this);
+
+ evas_object_show(m_share_list);
+
+ Evas_Object *cancel_button = elm_button_add(m_share_popup);
+ elm_object_text_set(cancel_button, BR_STRING_CANCEL);
+ elm_object_part_content_set(m_share_popup, "button1", cancel_button);
+ elm_object_style_set(cancel_button, "popup_button/default");
+ evas_object_smart_callback_add(cancel_button, "clicked", __popup_response_cb, this);
+
+ elm_object_content_set(m_share_popup, m_share_list);
+
+ evas_object_show(m_share_popup);
+
+ return EINA_TRUE;
+}
+
void Browser_Common_View::__popup_response_cb(void* data, Evas_Object* obj, void* event_info)
{
BROWSER_LOGD("%s, event_info=%d", __func__, (int)event_info);
Evas_Object *_capture_snapshot(Browser_Window *window, float scale);
void _set_navigationbar_title(const char *title);
Eina_Bool _has_url_sheme(const char *url);
+ Eina_Bool _show_share_popup(const char *url);
Eina_Bool _launch_streaming_player(const char *url, const char *cookie = NULL);
Eina_Bool _send_via_message(std::string url, std::string to, Eina_Bool attach_file = EINA_FALSE);
Eina_Bool _send_via_email(std::string url, Eina_Bool attach_file = EINA_FALSE);
return EINA_FALSE;
}
- m_history_genlist_item_class.decorate_item_style = "mode/slide2";
+ m_history_genlist_item_class.decorate_item_style = "mode/slide3";
m_history_genlist_item_class.item_style = "2text.2icon.4";
m_history_genlist_item_class.decorate_all_item_style = "edit_default";
m_history_genlist_item_class.func.text_get = __genlist_label_get_cb;
}
}
+void Browser_History_Layout::__slide_share_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ BROWSER_LOGD("[%s]", __func__);
+ if (!data)
+ return;
+
+ Browser_History_DB::history_item *item = (Browser_History_DB::history_item *)data;
+ Browser_History_Layout *history_layout = (Browser_History_Layout *)item->user_data;
+ if (!history_layout->_show_share_popup(item->url.c_str()))
+ BROWSER_LOGE("_show_share_popup failed");
+}
+
void Browser_History_Layout::_delete_history_item_by_slide_button(Browser_History_DB::history_item *item)
{
BROWSER_LOGD("[%s]", __func__);
LOGD("elm_button_add() is failed.");
return NULL;
}
+
+ elm_object_style_set(button, "sweep/multiline");
+ elm_object_text_set(button, BR_STRING_SHARE);
+ evas_object_smart_callback_add(button, "clicked", __slide_share_button_clicked_cb, item);
+ return button;
+ } else if (!strncmp(part, "elm.slide.swallow.2", strlen("elm.slide.swallow.2"))) {
+ Evas_Object *button = elm_button_add(obj);
+ if (!button) {
+ LOGD("elm_button_add() is failed.");
+ return NULL;
+ }
elm_object_style_set(button, "sweep/multiline");
elm_object_text_set(button, BR_STRING_ADD_TO_BOOKMARKS);
evas_object_smart_callback_add(button, "clicked", __slide_add_to_bookmark_button_clicked_cb, item);
- return button;
- } else if (!strncmp(part, "elm.slide.swallow.2", strlen("elm.slide.swallow.2"))) {
+ return button;
+ } else if (!strncmp(part, "elm.slide.swallow.3", strlen("elm.slide.swallow.3"))) {
Evas_Object *button = elm_button_add(obj);
if (!button) {
LOGD("elm_button_add() is failed.");
static void __edit_mode_item_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
static void __edit_mode_select_all_check_changed_cb(void *data, Evas_Object *obj, void *event_info);
static void __slide_add_to_bookmark_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+ static void __slide_share_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __slide_delete_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __delete_confirm_response_by_edit_mode_cb(void *data, Evas_Object *obj, void *event_info);
static void __delete_confirm_response_by_slide_button_cb(void *data, Evas_Object *obj, void *event_info);
break;
case EWK_CONTEXT_MENU_ITEM_TAG_COPY:
ewk_context_menu_item_append_as_action(menu, tag, BR_STRING_CTXMENU_COPY, true);
+ ewk_context_menu_item_append_as_action(menu, CustomContextMenuItemSelectedTextShareTag, BR_STRING_CTXMENU_SHARE, true);
break;
case EWK_CONTEXT_MENU_ITEM_TAG_SELECT_ALL:
ewk_context_menu_item_append_as_action(menu, tag, BR_STRING_SELECT_ALL, true);
BROWSER_LOGD("link url=[%s]", link_url_string.c_str());
std::string image_url_string = ewk_context_menu_item_image_url_get(item);
BROWSER_LOGD("image url=[%s]", image_url_string.c_str());
+ const char *selected_text = ewk_view_text_selection_text_get(context_menu->m_ewk_view);
Ewk_Context_Menu_Item_Tag tag = ewk_context_menu_item_tag_get(item);
switch (tag) {
+ case CustomContextMenuItemSelectedTextShareTag:
+ BROWSER_LOGD("Share selected text[%s]", selected_text);
+ if (selected_text && strlen(selected_text) > 0)
+ context_menu->_show_share_popup(selected_text);
+ break;
default:
break;
enum {
CustomContextMenuItemBaseApplicationTag = EWK_CONTEXT_MENU_ITEM_BASE_APPLICATION_TAG,
CustomContextMenuItemImageSendViaMessageTag,
- CustomContextMenuItemImageSendViaEmailTag
+ CustomContextMenuItemImageSendViaEmailTag,
+ CustomContextMenuItemSelectedTextShareTag
};
private:
static void __get_context_menu_from_proposed_context_menu_cb(void *data, Evas_Object *obj, void *event_info);
}
#endif
+void Browser_View::__url_editfield_share_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ BROWSER_LOGD("[%s]", __func__);
+ if (!data)
+ return;
+
+ Browser_View *browser_view = (Browser_View *)data;
+ const char *selected_text = elm_entry_selection_get(br_elm_editfield_entry_get(browser_view->m_option_header_url_edit_field));
+
+ if (browser_view->_show_share_popup(selected_text))
+ BROWSER_LOGE("_show_share_popup failed");
+}
+
Eina_Bool Browser_View::__show_scissorbox_view_idler_cb(void *data)
{
if (!data)
evas_object_show(m_control_bar);
}
+void Browser_View::__share_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ BROWSER_LOGD("[%s]", __func__);
+ if (!data)
+ return;
+
+ Browser_View *browser_view = (Browser_View *)data;
+ browser_view->_destroy_more_context_popup();
+ browser_view->_show_share_popup(browser_view->get_url().c_str());
+}
+
+
void Browser_View::__private_cb(void *data, Evas_Object *obj, void *event_info)
{
BROWSER_LOGD("[%s]", __func__);
|| _get_edit_mode() == BR_FIND_WORD_MODE)
elm_object_item_disabled_set(sub_menu, EINA_TRUE);
+ sub_menu = elm_ctxpopup_item_append(m_more_context_popup, BR_STRING_SHARE, NULL,
+ __share_cb, this);
+
m_bookmark_on_off_icon = elm_icon_add(m_more_context_popup);
if(m_data_manager->get_history_db()->is_in_bookmark(get_url().c_str(), NULL)) {
BROWSER_LOGE("elm_editfield_add failed");
return NULL;
}
+ elm_entry_context_menu_item_add(br_elm_editfield_entry_get(m_option_header_url_edit_field),
+ BR_STRING_CTXMENU_SHARE, NULL, ELM_ICON_NONE, __url_editfield_share_clicked_cb, this);
elm_object_part_content_set(m_option_header_url_entry_layout, "elm.swallow.entry", m_option_header_url_edit_field);
// br_elm_editfield_entry_single_line_set(m_option_header_url_edit_field, EINA_TRUE);
static void __title_changed_cb(void *data, Evas_Object *obj, void *event_info);
static void __load_nonempty_layout_finished_cb(void *data, Evas_Object *obj, void *event_info);
+ static void __url_editfield_share_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+
/* imf event callback functions */
static void __url_entry_imf_event_cb(void *data, Ecore_IMF_Context *ctx, int value);
static void __find_word_entry_imf_event_cb(void *data, Ecore_IMF_Context *ctx, int value);
Eina_Bool _create_zoom_buttons(void);
#endif
static void __expand_option_header_cb(void *data, Evas_Object *obj, void *event_info);
+ static void __share_cb(void *data, Evas_Object *obj, void *event_info);
static void __private_cb(void *data, Evas_Object *obj, void *event_info);
static void __private_check_change_cb(void *data, Evas_Object *obj, void *event_info);
static void __bookmark_cb(void *data, Evas_Object *obj, void *event_info);