Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ui / events / ozone / layout / xkb / xkb_key_code_converter.h
blobe01d2733d6142219b515d1bc822e8e1833de1ff7
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.
5 #ifndef UI_EVENTS_OZONE_LAYOUT_XKB_XKB_KEY_CODE_CONVERTER_H_
6 #define UI_EVENTS_OZONE_LAYOUT_XKB_XKB_KEY_CODE_CONVERTER_H_
8 #include <xkbcommon/xkbcommon.h>
10 namespace ui {
12 enum class DomCode;
14 // XKB scan code values are platform-dependent; this provides the layout engine
15 // with the mapping from DomCode to xkb_keycode_t. (This mapping is in principle
16 // derivable from the XKB keyboard layout, but xkbcommon does not provide a
17 // practical interface to do so.)
18 class EVENTS_OZONE_LAYOUT_EXPORT XkbKeyCodeConverter {
19 public:
20 XkbKeyCodeConverter();
21 virtual ~XkbKeyCodeConverter();
22 xkb_keycode_t InvalidXkbKeyCode() const { return invalid_xkb_keycode_; }
23 virtual xkb_keycode_t DomCodeToXkbKeyCode(DomCode dom_code) const = 0;
25 protected:
26 xkb_keycode_t invalid_xkb_keycode_;
29 } // namespace ui
31 #endif // UI_EVENTS_OZONE_LAYOUT_XKB_XKB_KEY_CODE_CONVERTER_H_