Home | History | Annotate | Download | only in keycodes
      1 // Copyright (c) 2011 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_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_
      6 #define UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "ui/events/events_base_export.h"
     10 #include "ui/events/keycodes/keyboard_codes_posix.h"
     11 
     12 typedef union _XEvent XEvent;
     13 typedef struct _XDisplay XDisplay;
     14 
     15 namespace ui {
     16 
     17 EVENTS_BASE_EXPORT KeyboardCode KeyboardCodeFromXKeyEvent(const XEvent* xev);
     18 
     19 EVENTS_BASE_EXPORT KeyboardCode KeyboardCodeFromXKeysym(unsigned int keysym);
     20 
     21 EVENTS_BASE_EXPORT const char* CodeFromXEvent(const XEvent* xev);
     22 
     23 // Returns a character on a standard US PC keyboard from an XEvent.
     24 EVENTS_BASE_EXPORT uint16 GetCharacterFromXEvent(const XEvent* xev);
     25 
     26 // Converts a KeyboardCode into an X KeySym.
     27 EVENTS_BASE_EXPORT int XKeysymForWindowsKeyCode(KeyboardCode keycode,
     28                                                 bool shift);
     29 
     30 // Returns a XKeyEvent keycode (scancode) for a KeyboardCode. Keyboard layouts
     31 // are usually not injective, so inverse mapping should be avoided when
     32 // practical. A round-trip keycode -> KeyboardCode -> keycode will not
     33 // necessarily return the original keycode.
     34 EVENTS_BASE_EXPORT unsigned int XKeyCodeForWindowsKeyCode(KeyboardCode key_code,
     35                                                           int flags,
     36                                                           XDisplay* display);
     37 
     38 // Converts an X keycode into ui::KeyboardCode.
     39 EVENTS_BASE_EXPORT KeyboardCode
     40     DefaultKeyboardCodeFromHardwareKeycode(unsigned int hardware_code);
     41 
     42 // Initializes a core XKeyEvent from an XI2 key event.
     43 EVENTS_BASE_EXPORT void InitXKeyEventFromXIDeviceEvent(const XEvent& src,
     44                                                        XEvent* dst);
     45 
     46 }  // namespace ui
     47 
     48 #endif  // UI_EVENTS_KEYCODES_KEYBOARD_CODE_CONVERSION_X_H_
     49