summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuActions.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-06-25 13:35:59 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-06-25 13:35:59 +0200
commit79ad030d505ccf79cf10aa9f8189ca3e2f61f6f4 (patch)
tree0287b1a69d84492c901e8bc820e635e7133809a0 /Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuActions.cpp
parent682ab87480e7757346802ce7f54cfdbdfeb2339e (diff)
downloadqtwebkit-79ad030d505ccf79cf10aa9f8189ca3e2f61f6f4.tar.gz
Imported WebKit commit c4b613825abd39ac739a47d7b4410468fcef66dc (http://svn.webkit.org/repository/webkit/trunk@121147)
New snapshot that includes Win32 debug build fix (use SVGAllInOne)
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuActions.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuActions.cpp318
1 files changed, 318 insertions, 0 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuActions.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuActions.cpp
new file mode 100644
index 000000000..3793d7c0f
--- /dev/null
+++ b/Source/WebKit2/UIProcess/API/gtk/WebKitContextMenuActions.cpp
@@ -0,0 +1,318 @@
+/*
+ * Copyright (C) 2012 Igalia S.L.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "WebKitContextMenuActions.h"
+
+#include "WebKitContextMenuActionsPrivate.h"
+#include <WebCore/LocalizedStrings.h>
+
+using namespace WebCore;
+
+bool webkitContextMenuActionIsCheckable(WebKitContextMenuAction action)
+{
+ switch (action) {
+ case WEBKIT_CONTEXT_MENU_ACTION_BOLD:
+ case WEBKIT_CONTEXT_MENU_ACTION_ITALIC:
+ case WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE:
+ case WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS:
+ case WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP:
+ return true;
+ default:
+ return false;
+ }
+}
+
+ContextMenuAction webkitContextMenuActionGetActionTag(WebKitContextMenuAction action)
+{
+ switch (action) {
+ case WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION:
+ return ContextMenuItemTagNoAction;
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK:
+ return ContextMenuItemTagOpenLink;
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW:
+ return ContextMenuItemTagOpenLinkInNewWindow;
+ case WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK:
+ return ContextMenuItemTagDownloadLinkToDisk;
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD:
+ return ContextMenuItemTagCopyLinkToClipboard;
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW:
+ return ContextMenuItemTagOpenImageInNewWindow;
+ case WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK:
+ return ContextMenuItemTagDownloadImageToDisk;
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD:
+ return ContextMenuItemTagCopyImageToClipboard;
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD:
+ return ContextMenuItemTagCopyImageUrlToClipboard;
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW:
+ return ContextMenuItemTagOpenFrameInNewWindow;
+ case WEBKIT_CONTEXT_MENU_ACTION_GO_BACK:
+ return ContextMenuItemTagGoBack;
+ case WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD:
+ return ContextMenuItemTagGoForward;
+ case WEBKIT_CONTEXT_MENU_ACTION_STOP:
+ return ContextMenuItemTagStop;
+ case WEBKIT_CONTEXT_MENU_ACTION_RELOAD:
+ return ContextMenuItemTagReload;
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY:
+ return ContextMenuItemTagCopy;
+ case WEBKIT_CONTEXT_MENU_ACTION_CUT:
+ return ContextMenuItemTagCut;
+ case WEBKIT_CONTEXT_MENU_ACTION_PASTE:
+ return ContextMenuItemTagPaste;
+ case WEBKIT_CONTEXT_MENU_ACTION_DELETE:
+ return ContextMenuItemTagDelete;
+ case WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL:
+ return ContextMenuItemTagSelectAll;
+ case WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS:
+ return ContextMenuItemTagInputMethods;
+ case WEBKIT_CONTEXT_MENU_ACTION_UNICODE:
+ return ContextMenuItemTagUnicode;
+ case WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS:
+ return ContextMenuItemTagSpellingGuess;
+ case WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND:
+ return ContextMenuItemTagNoGuessesFound;
+ case WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING:
+ return ContextMenuItemTagIgnoreSpelling;
+ case WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING:
+ return ContextMenuItemTagLearnSpelling;
+ case WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR:
+ return ContextMenuItemTagIgnoreGrammar;
+ case WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU:
+ return ContextMenuItemTagFontMenu;
+ case WEBKIT_CONTEXT_MENU_ACTION_BOLD:
+ return ContextMenuItemTagBold;
+ case WEBKIT_CONTEXT_MENU_ACTION_ITALIC:
+ return ContextMenuItemTagItalic;
+ case WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE:
+ return ContextMenuItemTagUnderline;
+ case WEBKIT_CONTEXT_MENU_ACTION_OUTLINE:
+ return ContextMenuItemTagOutline;
+ case WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT:
+ return ContextMenuItemTagInspectElement;
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW:
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW:
+ return ContextMenuItemTagOpenMediaInNewWindow;
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD:
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD:
+ return ContextMenuItemTagCopyMediaLinkToClipboard;
+ case WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS:
+ return ContextMenuItemTagToggleMediaControls;
+ case WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP:
+ return ContextMenuItemTagToggleMediaLoop;
+ case WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN:
+ return ContextMenuItemTagEnterVideoFullscreen;
+ case WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY:
+ case WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE:
+ return ContextMenuItemTagMediaPlayPause;
+ case WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE:
+ return ContextMenuItemTagMediaMute;
+ case WEBKIT_CONTEXT_MENU_ACTION_CUSTOM:
+ return ContextMenuItemBaseApplicationTag;
+ default:
+ ASSERT_NOT_REACHED();
+ }
+
+ return ContextMenuItemBaseApplicationTag;
+}
+
+WebKitContextMenuAction webkitContextMenuActionGetForContextMenuItem(ContextMenuItem* menuItem)
+{
+ switch (menuItem->action()) {
+ case ContextMenuItemTagNoAction:
+ return WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION;
+ case ContextMenuItemTagOpenLink:
+ return WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK;
+ case ContextMenuItemTagOpenLinkInNewWindow:
+ return WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW;
+ case ContextMenuItemTagDownloadLinkToDisk:
+ return WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK;
+ case ContextMenuItemTagCopyLinkToClipboard:
+ return WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD;
+ case ContextMenuItemTagOpenImageInNewWindow:
+ return WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW;
+ case ContextMenuItemTagDownloadImageToDisk:
+ return WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK;
+ case ContextMenuItemTagCopyImageToClipboard:
+ return WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD;
+ case ContextMenuItemTagCopyImageUrlToClipboard:
+ return WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD;
+ case ContextMenuItemTagOpenFrameInNewWindow:
+ return WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW;
+ case ContextMenuItemTagGoBack:
+ return WEBKIT_CONTEXT_MENU_ACTION_GO_BACK;
+ case ContextMenuItemTagGoForward:
+ return WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD;
+ case ContextMenuItemTagStop:
+ return WEBKIT_CONTEXT_MENU_ACTION_STOP;
+ case ContextMenuItemTagReload:
+ return WEBKIT_CONTEXT_MENU_ACTION_RELOAD;
+ case ContextMenuItemTagCopy:
+ return WEBKIT_CONTEXT_MENU_ACTION_COPY;
+ case ContextMenuItemTagCut:
+ return WEBKIT_CONTEXT_MENU_ACTION_CUT;
+ case ContextMenuItemTagPaste:
+ return WEBKIT_CONTEXT_MENU_ACTION_PASTE;
+ case ContextMenuItemTagDelete:
+ return WEBKIT_CONTEXT_MENU_ACTION_DELETE;
+ case ContextMenuItemTagSelectAll:
+ return WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL;
+ case ContextMenuItemTagInputMethods:
+ return WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS;
+ case ContextMenuItemTagUnicode:
+ return WEBKIT_CONTEXT_MENU_ACTION_UNICODE;
+ case ContextMenuItemTagSpellingGuess:
+ return WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS;
+ case ContextMenuItemTagIgnoreSpelling:
+ return WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING;
+ case ContextMenuItemTagLearnSpelling:
+ return WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING;
+ case ContextMenuItemTagIgnoreGrammar:
+ return WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR;
+ case ContextMenuItemTagFontMenu:
+ return WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU;
+ case ContextMenuItemTagBold:
+ return WEBKIT_CONTEXT_MENU_ACTION_BOLD;
+ case ContextMenuItemTagItalic:
+ return WEBKIT_CONTEXT_MENU_ACTION_ITALIC;
+ case ContextMenuItemTagUnderline:
+ return WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE;
+ case ContextMenuItemTagOutline:
+ return WEBKIT_CONTEXT_MENU_ACTION_OUTLINE;
+ case ContextMenuItemTagInspectElement:
+ return WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT;
+ case ContextMenuItemTagOpenMediaInNewWindow:
+ return menuItem->title() == contextMenuItemTagOpenVideoInNewWindow() ?
+ WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW : WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW;
+ case ContextMenuItemTagCopyMediaLinkToClipboard:
+ return menuItem->title() == contextMenuItemTagCopyVideoLinkToClipboard() ?
+ WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD : WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD;
+ case ContextMenuItemTagToggleMediaControls:
+ return WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS;
+ case ContextMenuItemTagToggleMediaLoop:
+ return WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP;
+ case ContextMenuItemTagEnterVideoFullscreen:
+ return WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN;
+ case ContextMenuItemTagMediaPlayPause:
+ return menuItem->title() == contextMenuItemTagMediaPlay() ?
+ WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY : WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE;
+ case ContextMenuItemTagMediaMute:
+ return WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE;
+ case ContextMenuItemBaseApplicationTag:
+ return WEBKIT_CONTEXT_MENU_ACTION_CUSTOM;
+ default:
+ ASSERT_NOT_REACHED();
+ }
+
+ return WEBKIT_CONTEXT_MENU_ACTION_CUSTOM;
+}
+
+String webkitContextMenuActionGetLabel(WebKitContextMenuAction action)
+{
+ switch (action) {
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK:
+ return contextMenuItemTagOpenLink();
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW:
+ return contextMenuItemTagOpenLinkInNewWindow();
+ case WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK:
+ return contextMenuItemTagDownloadLinkToDisk();
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD:
+ return contextMenuItemTagCopyLinkToClipboard();
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW:
+ return contextMenuItemTagOpenImageInNewWindow();
+ case WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK:
+ return contextMenuItemTagDownloadImageToDisk();
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD:
+ return contextMenuItemTagCopyImageToClipboard();
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD:
+ return contextMenuItemTagCopyImageUrlToClipboard();
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW:
+ return contextMenuItemTagOpenFrameInNewWindow();
+ case WEBKIT_CONTEXT_MENU_ACTION_GO_BACK:
+ return contextMenuItemTagGoBack();
+ case WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD:
+ return contextMenuItemTagGoForward();
+ case WEBKIT_CONTEXT_MENU_ACTION_STOP:
+ return contextMenuItemTagStop();
+ case WEBKIT_CONTEXT_MENU_ACTION_RELOAD:
+ return contextMenuItemTagReload();
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY:
+ return contextMenuItemTagCopy();
+ case WEBKIT_CONTEXT_MENU_ACTION_CUT:
+ return contextMenuItemTagCut();
+ case WEBKIT_CONTEXT_MENU_ACTION_PASTE:
+ return contextMenuItemTagPaste();
+ case WEBKIT_CONTEXT_MENU_ACTION_DELETE:
+ return contextMenuItemTagDelete();
+ case WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL:
+ return contextMenuItemTagSelectAll();
+ case WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS:
+ return contextMenuItemTagInputMethods();
+ case WEBKIT_CONTEXT_MENU_ACTION_UNICODE:
+ return contextMenuItemTagUnicode();
+ case WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND:
+ return contextMenuItemTagNoGuessesFound();
+ case WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING:
+ return contextMenuItemTagIgnoreSpelling();
+ case WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING:
+ return contextMenuItemTagLearnSpelling();
+ case WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR:
+ return contextMenuItemTagIgnoreGrammar();
+ case WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU:
+ return contextMenuItemTagFontMenu();
+ case WEBKIT_CONTEXT_MENU_ACTION_BOLD:
+ return contextMenuItemTagBold();
+ case WEBKIT_CONTEXT_MENU_ACTION_ITALIC:
+ return contextMenuItemTagItalic();
+ case WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE:
+ return contextMenuItemTagUnderline();
+ case WEBKIT_CONTEXT_MENU_ACTION_OUTLINE:
+ return contextMenuItemTagOutline();
+ case WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT:
+ return contextMenuItemTagInspectElement();
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_VIDEO_IN_NEW_WINDOW:
+ return contextMenuItemTagOpenVideoInNewWindow();
+ case WEBKIT_CONTEXT_MENU_ACTION_OPEN_AUDIO_IN_NEW_WINDOW:
+ return contextMenuItemTagOpenAudioInNewWindow();
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_VIDEO_LINK_TO_CLIPBOARD:
+ return contextMenuItemTagCopyVideoLinkToClipboard();
+ case WEBKIT_CONTEXT_MENU_ACTION_COPY_AUDIO_LINK_TO_CLIPBOARD:
+ return contextMenuItemTagCopyAudioLinkToClipboard();
+ case WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS:
+ return contextMenuItemTagToggleMediaControls();
+ case WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP:
+ return contextMenuItemTagToggleMediaLoop();
+ case WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN:
+ return contextMenuItemTagEnterVideoFullscreen();
+ case WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY:
+ return contextMenuItemTagMediaPlay();
+ case WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PAUSE:
+ return contextMenuItemTagMediaPause();
+ case WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE:
+ return contextMenuItemTagMediaMute();
+ case WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION:
+ case WEBKIT_CONTEXT_MENU_ACTION_CUSTOM:
+ case WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS:
+ return String();
+ default:
+ ASSERT_NOT_REACHED();
+ }
+
+ return String();
+}