return ShowContextMenu();
}
-void ContextMenuControllerEfl::AddItemToProposedList(ContextMenuOptionType item,
- ContextMenuOption option,
+void ContextMenuControllerEfl::AddItemToProposedList(Ewk_Context_Menu_Item_Type item,
+ Ewk_Context_Menu_Item_Tag option,
const std::string& title,
const std::string& image_url,
const std::string& link_url,
void ContextMenuControllerEfl::GetProposedContextMenu() {
if (!params_.link_url.is_empty()) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_OPEN_LINK_IN_NEW_WINDOW,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW,
std::string(dgettext("WebKit",
"IDS_WEBVIEW_OPT_OPEN_LINK_IN_NEW_TAB_ABB")),
params_.link_url.spec(),
params_.link_url.spec());
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_COPY_LINK_TO_CLIPBOARD,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_TO_CLIPBOARD,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_COPY_LINK_URL_ABB")),
std::string(),
params_.link_url.spec());
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_DOWNLOAD_LINK_TO_DISK,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_LINK_TO_DISK,
std::string(dgettext("WebKit", "IDS_BR_BODY_SAVE_LINK")),
std::string(),
params_.link_url.spec());
}
#if !defined(WAYLAND_BRINGUP)
if (params_.is_editable && ClipboardHelperEfl::NumberOfItems() > 0) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_PASTE,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_PASTE,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_PASTE")));
}
#else
NOTIMPLEMENTED();
#endif
if (!params_.selection_text.empty() && params_.is_editable) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_CUT,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_CUT,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_CUT_ABB")));
}
if (!params_.selection_text.empty()) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_COPY,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_COPY,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_COPY")));
if (!params_.is_editable) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_SEARCH_WEB,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_WEB,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_WEB_SEARCH")));
#if !defined(OS_TIZEN_MOBILE)
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_SEARCH_IN_SPOTLIGHT,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_SEARCH_IN_SPOTLIGHT,
std::string());
#endif
}
}
if (params_.has_image_contents && !params_.src_url.is_empty()) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_OPEN_IMAGE_IN_NEW_WINDOW,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_OPEN_IMAGE_IN_NEW_WINDOW,
std::string(dgettext("WebKit",
"IDS_WEBVIEW_OPT_OPEN_IMAGE_IN_NEW_TAB_ABB")),
params_.src_url.spec(),
params_.src_url.spec());
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_DOWNLOAD_IMAGE_TO_DISK,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_IMAGE_TO_DISK,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_SAVE_IMAGE_ABB")),
params_.src_url.spec(),
params_.src_url.spec());
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_COPY_IMAGE_TO_CLIPBOARD,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_COPY_IMAGE_TO_CLIPBOARD,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_COPY_IMAGE")),
params_.src_url.spec(),
params_.src_url.spec());
} else if (!params_.link_url.is_empty()) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_TEXT_SELECTION_MODE,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION,
+ EWK_CONTEXT_MENU_ITEM_TAG_TEXT_SELECTION_MODE,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_SELECTION_MODE_ABB")),
params_.link_url.spec(),
params_.link_url.spec());
RenderWidgetHostViewEfl* rwhv = static_cast<RenderWidgetHostViewEfl*>(web_contents_.GetRenderWidgetHostView());
if (!params_.selection_text.empty()
|| (params_.is_editable && (rwhv && !rwhv->IsLastAvailableTextEmpty()))) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_SELECT_WORD,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_SELECT_WORD,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_SELECT_ABB")));
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_SELECT_ALL,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_SELECT_ALL,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_SELECT_ALL_ABB")));
}
#if !defined(EWK_BRINGUP)
if (params_.is_draggable) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_DRAG,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_DRAG,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_DRAG_AND_DROP")));
}
#endif
#if !defined(WAYLAND_BRINGUP)
if (params_.is_editable && ClipboardHelperEfl::NumberOfItems() > 0) {
- AddItemToProposedList(MENU_ITEM_TYPE_ACTION, MENU_ITEM_CLIPBOARD,
+ AddItemToProposedList(EWK_CONTEXT_MENU_ITEM_TYPE_ACTION, EWK_CONTEXT_MENU_ITEM_TAG_CLIPBOARD,
std::string(dgettext("WebKit", "IDS_WEBVIEW_OPT_CLIPBOARD")));
}
#else
_Ewk_Context_Menu_Item* item = static_cast<_Ewk_Context_Menu_Item*> (data);
ContextMenuItemEfl* context_item = item->GetMenuItem();
switch (context_item->GetContextMenuOption()) {
- case MENU_ITEM_COPY:
- case MENU_ITEM_SELECT_ALL:
- case MENU_ITEM_SELECT_WORD:
- case MENU_ITEM_PASTE:
+ case EWK_CONTEXT_MENU_ITEM_TAG_COPY:
+ case EWK_CONTEXT_MENU_ITEM_TAG_SELECT_ALL:
+ case EWK_CONTEXT_MENU_ITEM_TAG_SELECT_WORD:
+ case EWK_CONTEXT_MENU_ITEM_TAG_PASTE:
is_text_selection_ = true;
break;
default:
// FIXME: Add cases as and when required
switch(menu_item->GetContextMenuOption())
{
- case MENU_ITEM_OPEN_LINK_IN_NEW_WINDOW: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_OPEN_LINK_IN_NEW_WINDOW: {
OpenInNewTab(GURL(params_.link_url.spec()));
break;
}
- case MENU_ITEM_GO_BACK: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_GO_BACK: {
webview_->GoBack();
break;
}
- case MENU_ITEM_GO_FORWARD: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_GO_FORWARD: {
webview_->GoForward();
break;
}
- case MENU_ITEM_RELOAD: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_RELOAD: {
webview_->ReloadIgnoringCache();
break;
}
- case MENU_ITEM_COPY: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_COPY: {
webview_->ExecuteEditCommand("copy", NULL);
if (params_.is_editable) {
HideSelectionHandle();
}
break;
}
- case MENU_ITEM_TEXT_SELECTION_MODE: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_TEXT_SELECTION_MODE: {
Evas_Coord x, y;
evas_object_geometry_get(webview_->evas_object(), &x, &y, 0, 0);
webview_->SelectLinkText(gfx::Point(params_.x - x, params_.y - y));
RequestShowSelectionHandleAndContextMenu();
break;
}
- case MENU_ITEM_COPY_IMAGE_TO_CLIPBOARD: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_COPY_IMAGE_TO_CLIPBOARD: {
DownloadFile(GURL(params_.src_url.spec()),
base::FilePath("/tmp/"),
base::Bind(&ContextMenuControllerEfl::OnClipboardDownload,
weak_ptr_factory_.GetWeakPtr()));
break;
}
- case MENU_ITEM_COPY_LINK_TO_CLIPBOARD: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_COPY_LINK_TO_CLIPBOARD: {
#if !defined(WAYLAND_BRINGUP)
ClipboardHelperEfl::GetInstance()->SetData(params_.link_url.spec(),
ClipboardHelperEfl::CLIPBOARD_DATA_TYPE_URL);
#endif
break;
}
- case MENU_ITEM_DOWNLOAD_LINK_TO_DISK: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_LINK_TO_DISK: {
if (!TriggerDownloadCb(GURL(params_.link_url.spec()))) {
base::FilePath path;
if (!PathService::Get(PathsEfl::DIR_DOWNLOADS, &path)) {
}
break;
}
- case MENU_ITEM_DOWNLOAD_IMAGE_TO_DISK: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_DOWNLOAD_IMAGE_TO_DISK: {
if (!TriggerDownloadCb(GURL(params_.src_url.spec()))) {
base::FilePath path;
if (!PathService::Get(PathsEfl::DIR_DOWNLOAD_IMAGE, &path)) {
}
break;
}
- case MENU_ITEM_OPEN_IMAGE_IN_NEW_WINDOW: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_OPEN_IMAGE_IN_NEW_WINDOW: {
OpenInNewTab(GURL(params_.src_url.spec()));
break;
}
- case MENU_ITEM_SELECT_WORD: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_SELECT_WORD: {
webview_->ExecuteEditCommand("SelectWord", NULL);
RequestShowSelectionHandleAndContextMenu();
break;
}
- case MENU_ITEM_SELECT_ALL: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_SELECT_ALL: {
webview_->ExecuteEditCommand("SelectAll", NULL);
RequestShowSelectionHandleAndContextMenu();
break;
}
- case MENU_ITEM_PASTE: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_PASTE: {
webview_->ExecuteEditCommand("paste", NULL);
HideSelectionHandle();
break;
}
- case MENU_ITEM_CUT: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_CUT: {
webview_->ExecuteEditCommand("cut", NULL);
HideSelectionHandle();
break;
}
- case MENU_ITEM_CLIPBOARD: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_CLIPBOARD: {
// TODO: set true for richly editable.
// Paste operations are blocked by Editor if content is not richly editible.
// Need to find if webview_ has rich editor.
#endif
break;
}
- case MENU_ITEM_DRAG: {
+ case EWK_CONTEXT_MENU_ITEM_TAG_DRAG: {
#if !defined(EWK_BRINGUP)
RenderViewHost* rvh = web_contents_.GetRenderViewHost();
rvh->StartDragging();
#include "content/public/browser/download_url_parameters.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/context_menu_params.h"
+#include "public/ewk_context_menu.h"
class EWebView;
namespace content {
-enum ContextMenuOption{
- MENU_ITEM_NO_ACTION = 0,
- MENU_ITEM_OPEN_LINK_IN_NEW_WINDOW,
- MENU_ITEM_DOWNLOAD_LINK_TO_DISK,
- MENU_ITEM_COPY_LINK_TO_CLIPBOARD,
- MENU_ITEM_OPEN_IMAGE_IN_NEW_WINDOW,
- MENU_ITEM_DOWNLOAD_IMAGE_TO_DISK,
- MENU_ITEM_COPY_IMAGE_TO_CLIPBOARD,
- MENU_ITEM_OPEN_FRAME_IN_NEW_WINDOW,
- MENU_ITEM_COPY,
- MENU_ITEM_GO_BACK,
- MENU_ITEM_GO_FORWARD,
- MENU_ITEM_STOP,
- MENU_ITEM_RELOAD,
- MENU_ITEM_CUT,
- MENU_ITEM_PASTE,
- MENU_ITEM_SPELLING_GUESS,
- MENU_ITEM_NO_GUESSES_FOUND,
- MENU_ITEM_IGNORE_SPELLING,
- MENU_ITEM_LEARN_SPELLING,
- MENU_ITEM_OTHER,
- MENU_ITEM_SEARCH_IN_SPOTLIGHT,
- MENU_ITEM_SEARCH_WEB,
- MENU_ITEM_LOOK_UP_IN_DICTIONARY,
- MENU_ITEM_OPEN_WITH_DEFAULT_APPLICATION,
- MENU_ITEM_PDF_ACTUAL_SIZE,
- MENU_ITEM_PDF_ZOOM_IN,
- MENU_ITEM_PDF_ZOOM_OUT,
- MENU_ITEM_PDF_AUTO_SIZE,
- MENU_ITEM_PDF_SINGLE_PAGE,
- MENU_ITEM_PDF_FACTING_PAGES,
- MENU_ITEM_PDF_CONTINUOUS,
- MENU_ITEM_PDF_NEXT_PAGE,
- MENU_ITEM_PDF_PREVIOUS_PAGE,
- MENU_ITEM_OPEN_LINK,
- MENU_ITEM_IGNORE_GRAMMAR,
- MENU_ITEM_SPELLING_MENU,
- MENU_ITEM_SHOW_SPELLING_PANEL,
- MENU_ITEM_CHECK_SPELLING,
- MENU_ITEM_CHECK_SPELLING_WHILE_TYPING,
- MENU_ITEM_CHECK_GRAMMAR_WITH_SPELLING,
- MENU_ITEM_FONT_MENU,
- MENU_ITEM_SHOW_FONTS,
- MENU_ITEM_BOLD,
- MENU_ITEM_ITALIC,
- MENU_ITEM_UNDERLINE,
- MENU_ITEM_OUTLINE,
- MENU_ITEM_STYLES,
- MENU_ITEM_SHOW_COLORS,
- MENU_ITEM_SPEECH_MENU,
- MENU_ITEM_START_SPEAKING,
- MENU_ITEM_STOP_SPEAKING,
- MENU_ITEM_WRITING_DIRECTION_MENU,
- MENU_ITEM_DEFAULT_DIRECTION,
- MENU_ITEM_LEFT_TO_RIGHT,
- MENU_ITEM_RIGHT_TO_LEFT,
- MENU_ITEM_PDF_SINGLE_PAGE_SCROLLING,
- MENU_ITEM_PDF_FACING_PAGES_SCROLLING,
- MENU_ITEM_INSPECT_ELEMENT,
- MENU_ITEM_TEXT_DIRECTION_MENU,
- MENU_ITEM_TEXT_DIRECTION_DEFAULT,
- MENU_ITEM_TEXT_DIRECTION_LEFT_TO_RIGHT,
- MENU_ITEM_TEXT_DIRECTION_RIGHT_TO_LEFT,
- MENU_ITEM_CORRECT_SPELLING_AUTOMATICALLY,
- MENU_ITEM_SUBSTITUTIONS_MENU,
- MENU_ITEM_SHOW_SUBSTITUTIONS,
- MENU_ITEM_SMART_COPY_PASTE,
- MENU_ITEM_SMART_QUOTES,
- MENU_ITEM_SMART_DASHES,
- MENU_ITEM_SMART_LINKS,
- MENU_ITEM_TEXT_REPLACEMENT,
- MENU_ITEM_TRANSFORMATIONS_MENU,
- MENU_ITEM_MAKE_UPPER_CASE,
- MENU_ITEM_MAKE_LOWER_CASE,
- MENU_ITEM_CAPITALIZE,
- MENU_ITEM_CHANGE_BACK,
- MENU_ITEM_OPEN_MEDIA_IN_NEW_WINDOW,
- MENU_ITEM_COPY_MEDIA_LINK_TO_CLIPBOARD,
- MENU_ITEM_TOGGLE_MEDIA_CONTROLS,
- MENU_ITEM_TOGGLE_MEDIA_LOOP,
- MENU_ITEM_ENTER_VIDEO_FULLSCREEN,
- MENU_ITEM_MEDIA_PLAY_PAUSE,
- MENU_ITEM_MEDIA_MUTE,
- MENU_ITEM_DICTATION_ALTERNATIVE,
- MENU_ITEM_SELECT_ALL,
- MENU_ITEM_SELECT_WORD,
- MENU_ITEM_TEXT_SELECTION_MODE,
- MENU_ITEM_CLIPBOARD,
- MENU_ITEM_DRAG,
- MENU_ITEM_TRANSLATE
-};
-
-enum ContextMenuOptionType {
- MENU_ITEM_TYPE_ACTION,
- MENU_ITEM_TYPE_CHECKABLE_ACTION,
- MENU_ITEM_TYPE_SEPARATOR,
- MENU_ITEM_TYPE_SUBMENU
-};
-
class ContextMenuItemEfl {
public:
- ContextMenuItemEfl(ContextMenuOptionType item,
- ContextMenuOption option,
+ ContextMenuItemEfl(Ewk_Context_Menu_Item_Type item,
+ Ewk_Context_Menu_Item_Tag option,
const std::string& title,
const std::string& image_url = std::string(),
const std::string& link_url = std::string(),
bool IsEnabled() const { return is_enabled_; }
void SetEnabled(bool status) { is_enabled_ = status; }
- ContextMenuOption GetContextMenuOption() const { return menu_option_; }
- ContextMenuOptionType GetContextMenuOptionType() const { return menu_type_; }
+ Ewk_Context_Menu_Item_Tag GetContextMenuOption() const { return menu_option_; }
+ Ewk_Context_Menu_Item_Type GetContextMenuOptionType() const { return menu_type_; }
const std::string& LinkURL() const { return link_url_; }
const std::string& ImageURL() const { return image_url_; }
const std::string& IconPath() const { return icon_path_; }
private:
- ContextMenuOptionType menu_type_;
- ContextMenuOption menu_option_;
+ Ewk_Context_Menu_Item_Type menu_type_;
+ Ewk_Context_Menu_Item_Tag menu_option_;
std::string title_;
bool is_enabled_;
std::string image_url_;
void GetProposedContextMenu();
bool CreateContextMenu();
bool ShowContextMenu();
- void AddItemToProposedList(ContextMenuOptionType item,
- ContextMenuOption option,
+ void AddItemToProposedList(Ewk_Context_Menu_Item_Type item,
+ Ewk_Context_Menu_Item_Tag option,
const std::string& title,
const std::string& image_url = std::string(),
const std::string& link_url = std::string(),