Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: ui/base/ime/chromeos/ime_keyboard.h

Issue 2925353002: Implement sync of keyboard layout between Ozone and Wayland clients (Closed)
Patch Set: Address reveman comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_BASE_IME_CHROMEOS_IME_KEYBOARD_H_ 5 #ifndef UI_BASE_IME_CHROMEOS_IME_KEYBOARD_H_
6 #define UI_BASE_IME_CHROMEOS_IME_KEYBOARD_H_ 6 #define UI_BASE_IME_CHROMEOS_IME_KEYBOARD_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 21 matching lines...) Expand all
32 // in user preferences. 32 // in user preferences.
33 kNumModifierKeys, 33 kNumModifierKeys,
34 }; 34 };
35 35
36 class UI_BASE_IME_EXPORT ImeKeyboard { 36 class UI_BASE_IME_EXPORT ImeKeyboard {
37 public: 37 public:
38 class Observer { 38 class Observer {
39 public: 39 public:
40 // Called when the caps lock state has changed. 40 // Called when the caps lock state has changed.
41 virtual void OnCapsLockChanged(bool enabled) = 0; 41 virtual void OnCapsLockChanged(bool enabled) = 0;
42
43 // Called when the layout state has changed.
44 virtual void OnLayoutChanged(const std::string& layout_name) = 0;
42 }; 45 };
43 46
44 ImeKeyboard(); 47 ImeKeyboard();
45 virtual ~ImeKeyboard(); 48 virtual ~ImeKeyboard();
46 // Adds/removes observer. 49 // Adds/removes observer.
47 virtual void AddObserver(Observer* observer); 50 virtual void AddObserver(Observer* observer);
48 virtual void RemoveObserver(Observer* observer); 51 virtual void RemoveObserver(Observer* observer);
49 52
50 // Sets the current keyboard layout to |layout_name|. This function does not 53 // Sets the current keyboard layout to |layout_name|. This function does not
51 // change the current mapping of the modifier keys. Returns true on success. 54 // change the current mapping of the modifier keys. Returns true on success.
52 virtual bool SetCurrentKeyboardLayoutByName( 55 virtual bool SetCurrentKeyboardLayoutByName(const std::string& layout_name);
53 const std::string& layout_name) = 0;
54 56
55 // Sets the current keyboard layout again. We have to call the function every 57 // Sets the current keyboard layout again. We have to call the function every
56 // time when "XI_HierarchyChanged" XInput2 event is sent to Chrome. See 58 // time when "XI_HierarchyChanged" XInput2 event is sent to Chrome. See
57 // xinput_hierarchy_changed_event_listener.h for details. 59 // xinput_hierarchy_changed_event_listener.h for details.
58 virtual bool ReapplyCurrentKeyboardLayout() = 0; 60 virtual bool ReapplyCurrentKeyboardLayout() = 0;
59 61
60 // Updates keyboard LEDs on all keyboards. 62 // Updates keyboard LEDs on all keyboards.
61 // XKB asymmetrically propagates keyboard modifier indicator state changes to 63 // XKB asymmetrically propagates keyboard modifier indicator state changes to
62 // slave keyboards. If the state change is initiated from a client to the 64 // slave keyboards. If the state change is initiated from a client to the
63 // "core/master keyboard", XKB changes global state and pushes an indication 65 // "core/master keyboard", XKB changes global state and pushes an indication
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 std::string last_layout_; 116 std::string last_layout_;
115 117
116 private: 118 private:
117 base::ObserverList<Observer> observers_; 119 base::ObserverList<Observer> observers_;
118 }; 120 };
119 121
120 } // namespace input_method 122 } // namespace input_method
121 } // namespace chromeos 123 } // namespace chromeos
122 124
123 #endif // UI_BASE_IME_CHROMEOS_IME_KEYBOARD_H_ 125 #endif // UI_BASE_IME_CHROMEOS_IME_KEYBOARD_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698