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: ~TextEditKeyBindingsDelegateAuraLinux()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_ 44