Chromium Code Reviews| Index: chrome/browser/extensions/global_shortcut_listener_gtk.h |
| diff --git a/chrome/browser/extensions/global_shortcut_listener_gtk.h b/chrome/browser/extensions/global_shortcut_listener_gtk.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ef74140a27a700b8d208b5c7a829238a7a986ed1 |
| --- /dev/null |
| +++ b/chrome/browser/extensions/global_shortcut_listener_gtk.h |
| @@ -0,0 +1,56 @@ |
| +// Copyright (c) 2013 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 CHROME_BROWSER_EXTENSIONS_GLOBAL_SHORTCUT_LISTENER_GTK_H_ |
| +#define CHROME_BROWSER_EXTENSIONS_GLOBAL_SHORTCUT_LISTENER_GTK_H_ |
| + |
| +#include <gtk/gtk.h> |
| +#include <set> |
| + |
| +#include "base/lazy_instance.h" |
| +#include "chrome/browser/extensions/global_shortcut_listener.h" |
| +#include "ui/base/gtk/gtk_signal.h" |
| + |
| +namespace extensions { |
| + |
| +// Linux-specific implementation of the GlobalShortcutListener class that |
| +// listens for global shortcuts. Handles basic keyboard intercepting and |
| +// forwards its output to the base class for processing. |
| +class GlobalShortcutListenerGtk : public GlobalShortcutListener { |
| + public: |
| + virtual ~GlobalShortcutListenerGtk(); |
| + |
| + virtual void StartListening() OVERRIDE; |
| + virtual void StopListening() OVERRIDE; |
| + |
| + private: |
| + friend struct base::DefaultLazyInstanceTraits<GlobalShortcutListenerGtk>; |
| + |
| + GlobalShortcutListenerGtk(); |
| + |
| + // Register an |accelerator| with the particular |observer|. |
| + virtual void RegisterAccelerator( |
| + const ui::Accelerator& accelerator, |
| + GlobalShortcutListener::Observer* observer) OVERRIDE; |
| + // Unregister an |accelerator| with the particular |observer|. |
| + virtual void UnregisterAccelerator( |
| + const ui::Accelerator& accelerator, |
| + GlobalShortcutListener::Observer* observer) OVERRIDE; |
| + // Callback for XEvents of the default root window. |
|
Finnur
2013/09/27 10:35:02
nit: Line break above this line.
zhchbin
2013/09/27 13:47:20
Done.
|
| + CHROMEG_CALLBACK_1(GlobalShortcutListenerGtk, GdkFilterReturn, |
| + OnXEvent, GdkXEvent*, GdkEvent*); |
| + |
| + // Whether this object is listening for global shortcuts. |
| + bool is_listening_; |
| + |
| + // A set of registered accelerators. |
| + typedef std::set<ui::Accelerator> RegisteredHotKeys; |
| + RegisteredHotKeys registered_hot_keys_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(GlobalShortcutListenerGtk); |
| +}; |
| + |
| +} // namespace extensions |
| + |
| +#endif // CHROME_BROWSER_EXTENSIONS_GLOBAL_SHORTCUT_LISTENER_GTK_H_ |