Data Fields | |
int(* | open_im )(MInputMethod *im) |
Open an input method. | |
void(* | close_im )(MInputMethod *im) |
Close an input method. | |
int(* | create_ic )(MInputContext *ic) |
Create an input context. | |
void(* | destroy_ic )(MInputContext *ic) |
Destroy an input context. | |
int(* | filter )(MInputContext *ic, MSymbol key, void *arg) |
Filter an input key. | |
int(* | lookup )(MInputContext *ic, MSymbol key, void *arg, MText *mt) |
Lookup a produced text in an input context. | |
MPlist * | callback_list |
List of callback functions. |
MInputDriver
is the structure of an input method driver that contains several functions to handle an input method.
int(* MInputDriver::open_im)(MInputMethod *im) |
This function opens the input method im. It is called from the function minput_open_im() after all member of im but <info> set. If opening im succeeds, it returns 0. Otherwise, it returns -1. The function can setup im->info to keep various information that is referred by the other driver functions.
void(* MInputDriver::close_im)(MInputMethod *im) |
This function closes the input method im. It is called from the function minput_close_im(). It frees all memory allocated for im->info (if any) after finishing all the tasks of closing the input method. But, the other members of im should not be touched.
int(* MInputDriver::create_ic)(MInputContext *ic) |
This function creates the input context ic. It is called from the function minput_create_ic() after all members of ic but <info> are set. If creating ic succeeds, it returns 0. Otherwise, it returns -1. The function can setup ic->info to keep various information that is referred by the other driver functions.
void(* MInputDriver::destroy_ic)(MInputContext *ic) |
This function is called from the function minput_destroy_ic() and destroys the input context ic. It frees all memory allocated for ic->info (if any) after finishing all the tasks of destroying the input method. But, the other members of ic should not be touched.
int(* MInputDriver::filter)(MInputContext *ic, MSymbol key, void *arg) |
This function is called from the function minput_filter() and filters an input key. key and arg are the same as what given to minput_filter().
The task of the function is to handle key, update the internal state of ic. If key is absorbed by the input method and no text is produced, it returns 1. Otherwise, it returns 0.
It may update ic->status, ic->preedit, ic->cursor_pos, ic->ncandidates, ic->candidates, and ic->produced if that is necessary for the member <callback>.
The meaning of arg depends on the input method river. See the documentation of minput_default_driver
and minput_gui_driver
for instance.
int(* MInputDriver::lookup)(MInputContext *ic, MSymbol key, void *arg, MText *mt) |
It is called from the function minput_lookup() and looks up a produced text in the input context ic. This function concatenate a text produced by the input key key (if any) to M-text mt. If key was correctly handled by the input method of ic, it returns 0. Otherwise, it returns 1.
The meaning of arg depends on the input method driver. See the documentation of minput_default_driver
and minput_gui_driver
for instance.
List of callback functions. Keys are one of Minput_preedit_start, Minput_preedit_draw, Minput_preedit_done, Minput_status_start, Minput_status_draw, Minput_status_done, Minput_candidates_start, Minput_candidates_draw, Minput_candidates_done, Minput_set_spot, Minput_toggle, Minput_reset, Minput_get_surrounding_text, Minput_delete_surrounding_text. Values are functions of type MInputCallbackFunc.