Data Structures | |
struct | MInputGUIArgIC |
Type of the argument to the function minput_create_ic(). More... | |
struct | MInputXIMArgIM |
Structure pointed to by the argument arg of the function minput_open_im(). More... | |
struct | MInputXIMArgIC |
Structure pointed to by the argument arg of the function minput_create_ic(). More... | |
Functions | |
MSymbol | minput_event_to_key (MFrame *frame, void *event) |
Convert an event to an input key. | |
Variables | |
MInputDriver | minput_gui_driver |
Input driver for internal input methods on window systems. | |
MSymbol | Mxim |
Symbol of the name "xim". | |
MInputDriver | minput_xim_driver |
minput_gui_driver
is provided for internal input methods that is useful on window systems. It displays preedit text and status text at the inputting spot. See the documentation of minput_gui_driver
for more details.
In the m17n-X library, the foreign input method of name Mxim
is provided. It uses XIM (X Input Method) as a background input engine. The symbol Mxim
has a property Minput_driver
whose value is a pointer to the input driver minput_xim_driver
. See the documentation of minput_xim_driver
for more details.
The driver minput_xim_driver is for the foreign input method of name Mxim. It uses XIM (X Input Methods) as a background input engine.
As the symbol Mxim has property Minput_driver whose value is a pointer to this driver, the input method of language Mnil and name Mxim uses this driver.
Therefore, for such input methods, the driver dependent arguments to the functions whose name begin with minput_ must be as follows.
The argument arg of the function minput_open_im() must be a pointer to the structure MInputXIMArgIM. See the documentation of MInputXIMArgIM for more details.
The argument arg of the function minput_create_ic() must be a pointer to the structure MInputXIMArgIC. See the documentation of MInputXIMArgIC for more details.
The argument arg of the function minput_filter() must be a pointer to the structure XEvent
. The argument key is ignored.
The argument arg of the function minput_lookup() must be the same one as that of the function minput_filter(). The argument key is ignored.
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), "s-" (Super), and/or "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.
The input driver minput_gui_driver
is for internal input methods to be used on window systems.
It creates sub-windows for a preedit text and a status text, and displays them at the input spot set by the function minput_set_spot().
The macro M17N_INIT() set the variable minput_driver
to the pointer to this driver so that all internal input methods use it.
Therefore, unless minput_driver
is changed from the default, the driver dependent arguments to the functions whose name begin with minput_ must are treated as follows.
The argument arg of the function minput_open_im() is ignored.
The argument arg of the function minput_create_ic() must be a pointer to the structure MInputGUIArgIC
. See the documentation of MInputGUIArgIC
for more details.
If the argument key of function minput_filter() is Mnil
, the argument arg must be a pointer to the object of type XEvent
. In that case, key is generated from arg.
The argument arg of the function minput_lookup() must be the same one as that of the function minput_filter().
The variable Mxim is a symbol of name "xim". It is a name of the input method driver minput_xim_driver.
Initial value:
{ xim_open_im, xim_close_im, xim_create_ic, xim_destroy_ic, xim_filter, xim_lookup, NULL }