Git init
[framework/uifw/xorg/xcb/xcb-util.git] / keysyms / xcb_keysyms.h
1 #ifndef __XCB_KEYSYMS_H__
2 #define __XCB_KEYSYMS_H__
3
4 #include <xcb/xcb.h>
5
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11
12 typedef struct _XCBKeySymbols xcb_key_symbols_t;
13
14 xcb_key_symbols_t *xcb_key_symbols_alloc        (xcb_connection_t         *c);
15
16 void           xcb_key_symbols_free         (xcb_key_symbols_t         *syms);
17
18 xcb_keysym_t      xcb_key_symbols_get_keysym    (xcb_key_symbols_t         *syms,
19                                           xcb_keycode_t             keycode,
20                                           int                    col);
21
22 /**
23  * @brief Get the keycodes attached to a keysyms.
24  * There can be several value, so what is returned is an array of keycode
25  * terminated by XCB_NO_SYMBOL. You are responsible to free it.
26  * Be aware that this function can be slow. It will convert all
27  * combinations of all available keycodes to keysyms to find the ones that
28  * match.
29  * @param syms Key symbols.
30  * @param keysym The keysym to look for.
31  * @return A XCB_NO_SYMBOL terminated array of keycode, or NULL if nothing is found.
32  */
33 xcb_keycode_t * xcb_key_symbols_get_keycode(xcb_key_symbols_t *syms,
34                                             xcb_keysym_t keysym);
35
36 xcb_keysym_t      xcb_key_press_lookup_keysym   (xcb_key_symbols_t         *syms,
37                                           xcb_key_press_event_t      *event,
38                                           int                    col);
39
40 xcb_keysym_t      xcb_key_release_lookup_keysym (xcb_key_symbols_t         *syms,
41                                           xcb_key_release_event_t    *event,
42                                           int                    col);
43
44 int            xcb_refresh_keyboard_mapping (xcb_key_symbols_t         *syms,
45                                           xcb_mapping_notify_event_t *event);
46
47 /* TODO:  need XLookupString equivalent */
48
49 /* Tests for classes of symbols */
50
51 int xcb_is_keypad_key        (xcb_keysym_t keysym);
52
53 int xcb_is_private_keypad_key (xcb_keysym_t keysym);
54
55 int xcb_is_cursor_key        (xcb_keysym_t keysym);
56
57 int xcb_is_pf_key            (xcb_keysym_t keysym);
58
59 int xcb_is_function_key      (xcb_keysym_t keysym);
60
61 int xcb_is_misc_function_key  (xcb_keysym_t keysym);
62
63 int xcb_is_modifier_key      (xcb_keysym_t keysym);
64
65
66 #ifdef __cplusplus
67 }
68 #endif
69
70
71 #endif /* __XCB_KEYSYMS_H__ */