minput_event_to_key − Convert an event to an input key.
MSymbol minput_event_to_key (MFrame * frame, void * event)
Convert an event to an input key. The minput_event_to_key() function returns the input key corresponding to event event on frame by a window system dependent manner.
In the m17n−X library, event must be a pointer to the structure XKeyEvent, and it is handled as below.
At first, the keysym name of event is acquired by the function XKeysymToString. Then, the name is modified as below.
If the name is one of ’a’ .. ’z’ and event has a Shift modifier, the name is converted to ’A’ .. ’Z’ respectively, and the Shift modifier is cleared.
If the name is one byte length and event has a Control modifier, the byte is bitwise anded by 0x1F and the Control modifier is cleared.
If event still has modifiers, the name is preceded by ’S−’ (Shift), ’C−’ (Control), ’M−’ (Meta), ’A−’ (Alt), ’G−’ (AltGr), ’s−’ (Super), and ’H−’ (Hyper) in this order.
For instance, if the keysym name is ’a’ and the event has Shift, Meta, and Hyper modifiers, the resulting name is ’M−H−A’.
At last, a symbol who has the name is returned.
Copyright (C) 2001 Information−technology Promotion Agency (IPA)
Copyright (C) 2001−2011 National Institute of Advanced Industrial Science and Technology (AIST)
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License <http://www.gnu.org/licenses/fdl.html>.