Upstream version 7.35.139.0
[platform/framework/web/crosswalk.git] / src / ui / events / linux / text_edit_key_bindings_delegate_auralinux.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef UI_EVENTS_X_TEXT_EDIT_KEY_BINDINGS_DELEGATE_X11_H_
6 #define UI_EVENTS_X_TEXT_EDIT_KEY_BINDINGS_DELEGATE_X11_H_
7
8 #include <vector>
9
10 #include "ui/events/events_export.h"
11
12 namespace ui {
13 class Event;
14 class TextEditCommandAuraLinux;
15
16 // An interface which can interpret various text editing commands out of key
17 // events.
18 //
19 // On desktop Linux, we've traditionally supported the user's custom
20 // keybindings. We need to support this in both content/ and in views/.
21 class EVENTS_EXPORT TextEditKeyBindingsDelegateAuraLinux {
22  public:
23   // Matches a key event against the users' platform specific key bindings,
24   // false will be returned if the key event doesn't correspond to a predefined
25   // key binding.  Edit commands matched with |event| will be stored in
26   // |edit_commands|, if |edit_commands| is non-NULL.
27   virtual bool MatchEvent(const ui::Event& event,
28                           std::vector<TextEditCommandAuraLinux>* commands) = 0;
29
30  protected:
31   virtual ~TextEditKeyBindingsDelegateAuraLinux() {}
32 };
33
34 // Sets/Gets the global TextEditKeyBindingsDelegateAuraLinux. No ownership
35 // changes. Can be NULL.
36 EVENTS_EXPORT void SetTextEditKeyBindingsDelegate(
37     TextEditKeyBindingsDelegateAuraLinux* delegate);
38 EVENTS_EXPORT TextEditKeyBindingsDelegateAuraLinux*
39     GetTextEditKeyBindingsDelegate();
40
41 }  // namespace ui
42
43 #endif  // UI_EVENTS_X_TEXT_EDIT_KEY_BINDINGS_DELEGATE_X11_H_