module xcb.keysyms; import xcb.xcb; extern (C): struct xcb_key_symbols_t { } xcb_key_symbols_t* xcb_key_symbols_alloc(xcb_connection_t* c); void xcb_key_symbols_free(xcb_key_symbols_t* syms); xcb_keysym_t xcb_key_symbols_get_keysym(xcb_key_symbols_t* syms, xcb_keycode_t keycode, int col); /** * @brief Get the keycodes attached to a keysyms. * There can be several value, so what is returned is an array of keycode * terminated by XCB_NO_SYMBOL. You are responsible to free it. * Be aware that this function can be slow. It will convert all * combinations of all available keycodes to keysyms to find the ones that * match. * @param syms Key symbols. * @param keysym The keysym to look for. * @return A XCB_NO_SYMBOL terminated array of keycode, or NULL if nothing is found. */ xcb_keycode_t* xcb_key_symbols_get_keycode(xcb_key_symbols_t* syms, xcb_keysym_t keysym); xcb_keysym_t xcb_key_press_lookup_keysym(xcb_key_symbols_t* syms, xcb_key_press_event_t* event, int col); xcb_keysym_t xcb_key_release_lookup_keysym(xcb_key_symbols_t* syms, xcb_key_release_event_t* event, int col); int xcb_refresh_keyboard_mapping(xcb_key_symbols_t* syms, xcb_mapping_notify_event_t* event); /* TODO: need XLookupString equivalent */ /* Tests for classes of symbols */ int xcb_is_keypad_key(xcb_keysym_t keysym); int xcb_is_private_keypad_key(xcb_keysym_t keysym); int xcb_is_cursor_key(xcb_keysym_t keysym); int xcb_is_pf_key(xcb_keysym_t keysym); int xcb_is_function_key(xcb_keysym_t keysym); int xcb_is_misc_function_key(xcb_keysym_t keysym); int xcb_is_modifier_key(xcb_keysym_t keysym);