[maemo-developers] [maemo-developers] VirtualKeyboard service/API

From: Aaron Levinson alevinsn at aracnet.com
Date: Fri Jan 20 21:40:12 EET 2006
I have to admit that I don't understand why you would need to use this
specialized function in your case.  The situation with osso-xterm is a
specialized one, since the GtkIMContext object's window needs to be
activated as the result of a menu action.  In your case, however, you
already have a GtkWidget (GtkMozEmbed), so you should be able to do the
following:

1.  Create a GtkIMMultiContext in the "constructor" for your object.
2.  In the realize function for your class (or as a response to the
"realize" signal), call gtk_im_context_set_client_window().  Also call it
for unrealize.
3.  Handle the "focus-in" and "focus-out" signals appropriately for the
widget by calling gtk_im_context_focus_in() and
gtk_im_context_focus_out(), respectively.
4.  Set up key-press and key-release signal handlers for the widget and
call gtk_im_context_filter_keypress() in each signal handler.

Take a look at the source code for vncviewer or osso-xterm for examples.  
You can also examine the code for various GTK classes, such as
GtkTextEntry.  Also, you can refer back to some previous e-mails that I
wrote to this list regarding input methods.

Aaron

On Fri, 20 Jan 2006, Aaron Levinson wrote:

> You can use gtk_im_context_show() to force the window for a GtkIMContext
> object to be displayed.  This function isn't mentioned in the
> documentation for the class, but it is in the include file.  An example of
> using this function can be found in the osso-xterm code.
> 
> Aaron
> 
> On Fri, 20 Jan 2006, Antonio Gomes wrote:
> 
> > otherwise, there is no way to force it Pop UP manually ?
> > 
> > regards
> > 
> > 
> > On 1/20/06, Antonio Gomes <tonikitoo at gmail.com> wrote:
> > >
> > >
> > > On 1/18/06, Aaron Levinson <alevinsn at aracnet.com> wrote:
> > >
> > > Hi Aaron,
> > >
> > > One possibility is to use gdk_window_foreign_new() to wrap the native
> > > > window in a GdkWindow object.
> > >
> > >
> > > Maybe I can jump this first step, once I already have a GtkWidget the
> > > wraps mozilla guts the make easier called GtkMozEmbed, provided by the
> > > mozilla embedding API. Make sense for you ?
> > >
> > >
> > > > Then, after creating a GtkIMMulticontext,
> > > > you could try using gtk_im_context_set_client_window() with the new
> > > > GdkWindow object.  You'll want to listen for key-press and key-release
> > > > signals (hard to do without a GtkWidget, but you should be able to
> > > > handle
> > > > this by listening for these signals on the HildonApp widget), and when
> > > > you
> > > > get these signals you can route them to the GtkIMContext that you
> > > > created
> > > > earlier if appropriate.  Also, look for other e-mails regarding input
> > > > methods in the archives for this e-mail list.  Maybe this will work,
> > > > although I'm not too hopeful.  You might also consider creating a
> > > > special
> > > > GtkWidget class that can wrap an arbitrary GdkWindow.  I would have
> > > > suggested the GtkPlug class, but GtkPlug widgets are top-level widgets,
> > > > which won't work here.
> > >
> > >
> > >
> > > Please note that the virtual keyboard is provided in the form of a GTK
> > > > input method, and you'll basically need to use the standard GTK
> > > > mechanisms
> > > > for working with input methods if you want to use it.
> > >
> > >
> > > but I'm already using Vb successfully and there is no synchronising
> > > between the rendered HTML forms and the Kb ... (focus in -> pop up vk /
> > > focus out -> vk gets down).
> > >
> > > many thanks
> > >
> > >
> > > > > Hi there,
> > > > >
> > > > > I'm wondering how I can get the Virtual Keyboard service to
> > > > synchronize with
> > > > > non GTK_Widgets (like HTML forms on mozilla-webpages) ?
> > > > >
> > > > > Actually, I have some methods already implemented regarding this, and
> > > > I just
> > > > > need communication with VK side (from APIs or whatever). Is there is
> > > > any API
> > > > > to use it, or GTK mask/hide it in its guts ?
> > > >
> > > >
> > 
> 
> _______________________________________________
> maemo-developers mailing list
> maemo-developers at maemo.org
> https://maemo.org/mailman/listinfo/maemo-developers
> 


More information about the maemo-developers mailing list