ef29bbe9b6ca5fedee133907962afeea43510bec
[platform/framework/web/crosswalk.git] / src / ozone / wayland / input / keyboard.h
1 // Copyright 2013 Intel Corporation. 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 OZONE_WAYLAND_INPUT_KEYBOARD_H_
6 #define OZONE_WAYLAND_INPUT_KEYBOARD_H_
7
8 #include <xkbcommon/xkbcommon.h>
9
10 #include "ozone/wayland/display.h"
11
12 namespace ui {
13 class EventConverterOzoneWayland;
14 }
15
16 namespace ozonewayland {
17
18 class KeyboardEngineXKB;
19
20 class WaylandKeyboard {
21  public:
22   WaylandKeyboard();
23   ~WaylandKeyboard();
24   KeyboardEngineXKB* GetBackend() { return backend_;}
25
26   void OnSeatCapabilities(wl_seat *seat, uint32_t caps);
27
28  private:
29   static void OnKeyNotify(void* data,
30                           wl_keyboard* input_keyboard,
31                           uint32_t serial,
32                           uint32_t time,
33                           uint32_t key,
34                           uint32_t state);
35
36   static void OnKeyboardKeymap(void *data,
37                                struct wl_keyboard *keyboard,
38                                uint32_t format,
39                                int fd,
40                                uint32_t size);
41
42   static void OnKeyboardEnter(void* data,
43                               wl_keyboard* input_keyboard,
44                               uint32_t serial,
45                               wl_surface* surface,
46                               wl_array* keys);
47
48   static void OnKeyboardLeave(void* data,
49                               wl_keyboard* input_keyboard,
50                               uint32_t serial,
51                               wl_surface* surface);
52
53   static void OnKeyModifiers(void *data,
54                              wl_keyboard *keyboard,
55                              uint32_t serial,
56                              uint32_t mods_depressed,
57                              uint32_t mods_latched,
58                              uint32_t mods_locked,
59                              uint32_t group);
60
61   wl_keyboard* input_keyboard_;
62   ui::EventConverterOzoneWayland* dispatcher_;
63   KeyboardEngineXKB* backend_;
64
65   DISALLOW_COPY_AND_ASSIGN(WaylandKeyboard);
66 };
67
68 }  // namespace ozonewayland
69
70 #endif  // OZONE_WAYLAND_INPUT_KEYBOARD_H_