diff options
Diffstat (limited to 'chromium/content/browser/renderer_host/gtk_key_bindings_handler.h')
-rw-r--r-- | chromium/content/browser/renderer_host/gtk_key_bindings_handler.h | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/chromium/content/browser/renderer_host/gtk_key_bindings_handler.h b/chromium/content/browser/renderer_host/gtk_key_bindings_handler.h deleted file mode 100644 index 9006f5d0727..00000000000 --- a/chromium/content/browser/renderer_host/gtk_key_bindings_handler.h +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_BROWSER_RENDERER_HOST_GTK_KEY_BINDINGS_HANDLER_H_ -#define CONTENT_BROWSER_RENDERER_HOST_GTK_KEY_BINDINGS_HANDLER_H_ - -#include <gtk/gtk.h> - -#include <string> - -#include "content/common/edit_command.h" -#include "content/common/content_export.h" -#include "ui/base/gtk/owned_widget_gtk.h" - -namespace content { -struct NativeWebKeyboardEvent; - -// This class is a convenience class for handling editor key bindings defined -// in gtk keyboard theme. -// In gtk, only GtkEntry and GtkTextView support customizing editor key bindings -// through keyboard theme. And in gtk keyboard theme definition file, each key -// binding must be bound to a specific class or object. So existing keyboard -// themes only define editor key bindings exactly for GtkEntry and GtkTextView. -// Then, the only way for us to intercept editor key bindings defined in -// keyboard theme, is to create a GtkEntry or GtkTextView object and call -// gtk_bindings_activate_event() against it for the key events. If a key event -// matches a predefined key binding, corresponding signal will be emitted. -// GtkTextView is used here because it supports more key bindings than GtkEntry, -// but in order to minimize the side effect of using a GtkTextView object, a new -// class derived from GtkTextView is used, which overrides all signals related -// to key bindings, to make sure GtkTextView won't receive them. -// -// See third_party/WebKit/Source/WebCore/editing/EditorCommand.cpp for detailed -// definition of webkit edit commands. -// See webkit/glue/editor_client_impl.cc for key bindings predefined in our -// webkit glue. -class CONTENT_EXPORT GtkKeyBindingsHandler { - public: - explicit GtkKeyBindingsHandler(GtkWidget* parent_widget); - ~GtkKeyBindingsHandler(); - - // Matches a key event against predefined gtk key bindings, false will be - // returned if the key event doesn't correspond to a predefined key binding. - // Edit commands matched with |wke| will be stored in |edit_commands|. - bool Match(const NativeWebKeyboardEvent& wke, - EditCommands* edit_commands); - - private: - // Object structure of Handler class, which is derived from GtkTextView. - struct Handler { - GtkTextView parent_object; - GtkKeyBindingsHandler *owner; - }; - - // Class structure of Handler class. - struct HandlerClass { - GtkTextViewClass parent_class; - }; - - // Creates a new instance of Handler class. - GtkWidget* CreateNewHandler(); - - // Adds an edit command to the key event. - void EditCommandMatched(const std::string& name, const std::string& value); - - // Initializes Handler structure. - static void HandlerInit(Handler *self); - - // Initializes HandlerClass structure. - static void HandlerClassInit(HandlerClass *klass); - - // Registeres Handler class to GObject type system and return its type id. - static GType HandlerGetType(); - - // Gets the GtkKeyBindingsHandler object which owns the Handler object. - static GtkKeyBindingsHandler* GetHandlerOwner(GtkTextView* text_view); - - // Handler of "backspace" signal. - static void BackSpace(GtkTextView* text_view); - - // Handler of "copy-clipboard" signal. - static void CopyClipboard(GtkTextView* text_view); - - // Handler of "cut-clipboard" signal. - static void CutClipboard(GtkTextView* text_view); - - // Handler of "delete-from-cursor" signal. - static void DeleteFromCursor(GtkTextView* text_view, GtkDeleteType type, - gint count); - - // Handler of "insert-at-cursor" signal. - static void InsertAtCursor(GtkTextView* text_view, const gchar* str); - - // Handler of "move-cursor" signal. - static void MoveCursor(GtkTextView* text_view, GtkMovementStep step, - gint count, gboolean extend_selection); - - // Handler of "move-viewport" signal. - static void MoveViewport(GtkTextView* text_view, GtkScrollStep step, - gint count); - - // Handler of "paste-clipboard" signal. - static void PasteClipboard(GtkTextView* text_view); - - // Handler of "select-all" signal. - static void SelectAll(GtkTextView* text_view, gboolean select); - - // Handler of "set-anchor" signal. - static void SetAnchor(GtkTextView* text_view); - - // Handler of "toggle-cursor-visible" signal. - static void ToggleCursorVisible(GtkTextView* text_view); - - // Handler of "toggle-overwrite" signal. - static void ToggleOverwrite(GtkTextView* text_view); - - // Handler of "show-help" signal. - static gboolean ShowHelp(GtkWidget* widget, GtkWidgetHelpType arg1); - - // Handler of "move-focus" signal. - static void MoveFocus(GtkWidget* widget, GtkDirectionType arg1); - - ui::OwnedWidgetGtk handler_; - - // Buffer to store the match results. - EditCommands edit_commands_; -}; - -} // namespace content - -#endif // CONTENT_BROWSER_RENDERER_HOST_GTK_KEY_BINDINGS_HANDLER_H_ |