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

Side by Side Diff: ui/events/ozone/evdev/keyboard_evdev.h

Issue 742103002: Ozone keyboard layout (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lite-code
Patch Set: reeeeebase Created 6 years 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_EVENTS_OZONE_EVDEV_KEYBOARD_EVDEV_H_ 5 #ifndef UI_EVENTS_OZONE_EVDEV_KEYBOARD_EVDEV_H_
6 #define UI_EVENTS_OZONE_EVDEV_KEYBOARD_EVDEV_H_ 6 #define UI_EVENTS_OZONE_EVDEV_KEYBOARD_EVDEV_H_
7 7
8 #include <bitset> 8 #include <bitset>
9 #include <linux/input.h> 9 #include <linux/input.h>
10 10
11 #include "ui/events/ozone/evdev/event_device_util.h" 11 #include "ui/events/ozone/evdev/event_device_util.h"
12 #include "ui/events/ozone/evdev/event_dispatch_callback.h" 12 #include "ui/events/ozone/evdev/event_dispatch_callback.h"
13 #include "ui/events/ozone/evdev/events_ozone_evdev_export.h" 13 #include "ui/events/ozone/evdev/events_ozone_evdev_export.h"
14 #include "ui/events/ozone/layout/keyboard_layout_engine.h"
14 15
15 namespace ui { 16 namespace ui {
16 17
17 class EventModifiersEvdev; 18 class EventModifiersEvdev;
18 19
19 // Keyboard for evdev. 20 // Keyboard for evdev.
20 // 21 //
21 // This object is responsible for combining all attached keyboards into 22 // This object is responsible for combining all attached keyboards into
22 // one logical keyboard, applying modifiers & implementing key repeat. 23 // one logical keyboard, applying modifiers & implementing key repeat.
23 // 24 //
24 // It also currently also applies the layout (hardcoded as US). 25 // It also currently also applies the layout.
25 // 26 //
26 // TODO(spang): Implement key repeat & turn off kernel repeat. 27 // TODO(spang): Implement key repeat & turn off kernel repeat.
27 class EVENTS_OZONE_EVDEV_EXPORT KeyboardEvdev { 28 class EVENTS_OZONE_EVDEV_EXPORT KeyboardEvdev {
28 public: 29 public:
29 KeyboardEvdev(EventModifiersEvdev* modifiers, 30 KeyboardEvdev(EventModifiersEvdev* modifiers,
31 KeyboardLayoutEngine* keyboard_layout_engine,
30 const EventDispatchCallback& callback); 32 const EventDispatchCallback& callback);
31 ~KeyboardEvdev(); 33 ~KeyboardEvdev();
32 34
33 static int NativeCodeToEvdevCode(int native_code); 35 static int NativeCodeToEvdevCode(int native_code);
34 36
35 // Handlers for raw key presses & releases. 37 // Handlers for raw key presses & releases.
36 void OnKeyChange(unsigned int code, bool down); 38 void OnKeyChange(unsigned int code, bool down);
37 39
38 private: 40 private:
39 void UpdateModifier(unsigned int key, bool down); 41 void UpdateModifier(unsigned int key, bool down);
40 void DispatchKey(unsigned int key, bool down); 42 void DispatchKey(unsigned int key, bool down);
41 43
42 // Aggregated key state. There is only one bit of state per key; we do not 44 // Aggregated key state. There is only one bit of state per key; we do not
43 // attempt to count presses of the same key on multiple keyboards. 45 // attempt to count presses of the same key on multiple keyboards.
44 // 46 //
45 // A key is down iff the most recent event pertaining to that key was a key 47 // A key is down iff the most recent event pertaining to that key was a key
46 // down event rather than a key up event. Therefore, a particular key position 48 // down event rather than a key up event. Therefore, a particular key position
47 // can be considered released even if it is being depresssed on one or more 49 // can be considered released even if it is being depresssed on one or more
48 // keyboards. 50 // keyboards.
49 std::bitset<KEY_CNT> key_state_; 51 std::bitset<KEY_CNT> key_state_;
50 52
51 // Callback for dispatching events. 53 // Callback for dispatching events.
52 EventDispatchCallback callback_; 54 EventDispatchCallback callback_;
53 55
54 // Shared modifier state. 56 // Shared modifier state.
55 EventModifiersEvdev* modifiers_; 57 EventModifiersEvdev* modifiers_;
56 58
59 KeyboardLayoutEngine* keyboard_layout_engine_;
60
57 DISALLOW_COPY_AND_ASSIGN(KeyboardEvdev); 61 DISALLOW_COPY_AND_ASSIGN(KeyboardEvdev);
58 }; 62 };
59 63
60 } // namespace ui 64 } // namespace ui
61 65
62 #endif // UI_EVENTS_OZONE_EVDEV_KEYBOARD_EVDEV_H_ 66 #endif // UI_EVENTS_OZONE_EVDEV_KEYBOARD_EVDEV_H_
OLDNEW
« no previous file with comments | « ui/events/ozone/evdev/input_injector_evdev_unittest.cc ('k') | ui/events/ozone/evdev/keyboard_evdev.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698