Input Methods

Name

Input Methods -- support for internationalized text input.

Synopsis


#include <gdk/gdk.h>




Description

Input Methods provide a way for complex character sets to be used in GTK+. Languages such as Chinese, Japanese, and Korean (often abbreviated to CJK) use a large number of ideographs, making it impossible to support all characters with a simple keyboard. Instead, text is usually pre-edited using a phonetic alphabet and then composed to form the ideographs.

GTK+ makes use of the input method mechanism provided by the X Windows platform. When a GTK+ application is started, it opens a connection to the input method appropriate for the current locale (if any).

Widgets which handle textual input, such as GtkEntry, need to do a number of things to support internationalized text input:

When the widget is realized:

Check if an input method is being used with gdk_im_ready(). If it is, create a new Input Context using gdk_ic_new(). Find out which events the Input Context needs to receive with gdk_ic_get_events(), and make sure that the widget's window receives these events using gdk_window_set_events().

When the widget's size, state or cursor position changes:

Update the appropriate Input Context attributes using gdk_ic_set_attr().

When the keyboard focus enters or leaves the widget:

Call gdk_im_begin() or gdk_im_end() to start or finish editing the text.

When the widget receives a key_press event:

The string and length fields of the GdkEventKey struct should be used to insert the composed text into the widget.

When the widget is unrealized:

Destroy the Input Context.

See the XLib reference manual for more detailed information on input methods, and the GtkEntry and GtkText widgets for some example code.

Details

See Also

Input Contexts

Used for each widget that handles internationalized text input using the global input method.