This section describes how XIM works.
The current XIMP in Solaris software supports the following key event handling solutions:
XIMP_FE_TYPE1 (default)
XIMP_SYNC_BE_TYPE2
All key events go through the IM server only when input conversion mode is ON to compose text.
The Conversion ON key is recognized in the IM library.
The Conversion OFF key is recognized in the IM server.
All key events are sent first to the IM library and then to the IM server. The IM server is responsible for sending unused key events back to the IM library.
The Conversion ON/OFF key is recognized in IM server.
For XIMP_SYNC_BE_TYPE2, extra synchronization is done on XIMP_KEYPRESS.
The IM server is implemented as a separate process. The Sun IM server, named htt, supports the following Asian locales:
ko and ko.UTF-8 (Korean)
ja and ja_JP.PCK (Japanese)
zh (Simplified Chinese)
zh_TW and zh_TW.BIG5 (Traditional Chinese)
For Korean or Chinese htt usage and options, refer to the htt(1) man pages and to the input methods chapter in the Asian Solaris user's guide appropriate to your product.
The IM server comprises the following functional components:
XIMP
XIMP is one of the most commonly used protocol interfaces between the IM server and the application side of the X library. Sun's implementation supports the latest version of XIMP, which is XIMP4.0.
Event Handling
Event-handling routines handle all key events coming to the IM server directly from the X server.
Language Engine Interface
htt communicates with language engines through its internal interface.
Rendering
Rendering routines support the lookup choice region, non-callback status style, and various preedit area styles:
Lookup Choice Region
Support for lookup choice region
Status Area Style
Support for status callbacks (XIMStatusCallbacks)
Support for geometry management of status (XIMStatusArea)
Support for root window status (XIMStatusNothing)
Preedit Style
Support for "on-the-spot" style preedit area (XIMPreeditCallbacks)
Support for "over-the-spot" style preedit area (XIMPreeditPosition)
Support for "off-the-spot" style preedit area (XIMPreeditArea)
Support for "root window" style preedit area (XIMPreeditNothing)