Input Method status update



Recently, I've had a chance to work some on the input method code for
GTK+-2.0, and wanted to let people know how that work was going.

The changes I've made to the core input method support beyond what is
in 1.3.1:

 - Added the capability to load input methods from dlloaded
   modules on the fly. The user can select among available
   modules by selecting (for instance) from a popup menu
   in an entry or text widget.

 - Added support for preedit in the text and entry widgets

 - Added cursor position to the preedit state along with the
   preedit string and attributes.

 - Added a reset virtual function at the suggestion of
   ChiDeok Hwang.

 - Extended the GtkIMContexSimple module to allow additional
   tables of compose sequences to be added

 - Created a test Cyrillic-transliteration input method
   
 - Created an XIM-based input method; instead of using the
   XIM support in GDK, it goes directly to Xlib. The advantage
   of doing it this way is it avoids having the XIM specific
   interfaces in GDK, and in fact allows not initializing
   XIM at all except when it is explicitely in used.

   This tested to work pretty well with kinput2. I originally
   hoped to be able to switch input methods on the fly by
   initializing different XIMs with different locales, but
   it turned out that the Xlib locale code isn't up to 
   doing this. So, it looks like this module will be restricted
   to using the input method that Xlib selects for the 
   User's locale  .

There is still a quite bit of stuff to do, for instance:

 - Figure out how to handle status display (a separate window,
   communicate with a GNOME panel applet, have some sort
   of status widget that can be packed into toplevels...) 

 - Test the XIM module with a wider range of engines;
   kinput2 is pretty forgiving. Most likely some more
   care has to be taken with event handling.

 - Look at writing a module (or modules) based on Sun's
   recently released IIIMF. Switching input methods on
   the fly should work with IIIMF. 

Hopefully now that the module system for inputs methods is basically
in place and preediting is working in the text widgets, it should be
easier for other people to figure out how to work on this code.

The current code is in GNOME CVS in the gtk-new-im branch of
GTK+. To get the XIM input method module to work properly,
you need to disable the old XIM support by configuring 
GTK+ with --disable-xim. Once we are sure that the approach
of using XIM directly from a module works, we can most likely
simply remove this old support. 

I'm going to busy with other things for the next few days, but I hope
to commit this work to the main branch of CVS and make a new GTK+
release (1.3.2) early next week.

Regards,
                                        Owen




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]