
Graphical Keyboard Utility:

In many cases a keyboard is not desired for a windowing system.
A mouse or touchscreen would then be required to input any text that
an application needs (e.g. sign-on screen).

These programs show how to inject keystrokes into the QNX Windows
server ... it also brings up a keyboard window where the user can select
keys (using mouse or touchscreen) and have them automatically 'injected'
into an application.

Some notes before we begin:
-  Keystroke injection into QNX Windows input buffer works for single
   byte characters only! It will not work for function keys, arrow keys etc.
   It is designed purely for alphanumeric characters.

There are several programs required:

GraphKey:  This is the graphical keyboard process. It is created by an
           application (by using the 'display_keyboard(..)' function call
           contained in 'keyboard_api.c'.

           It uses a picture file (PopKeyA.pict) and a window file
           (PopKeyA.wnd). These can be modified as desired. The 'tag name'
           for each element in the picture file is the ASCII equivalent of
           the letter/number/punctuation char displayed.

           Compile the program as follows:
              cc GraphKey.c -o GraphKey -N5000

keyboard_api.c:  This is the api module that is linked with an application
           that wants to use the graphical keyboard.

           Compile the program as follows:
              cc keyboard_api.c -c

stub.c:    A sample application that contains editable text fields.
           You need to link this program with the 'keyboard_api.o' file.

           Compile the program as follows:
              cc stub.c keyboard_api.o -o stub
           
inj.c:     A small program that shows how the keyboard injection is
           accomplished. Not required to run 'stub'. This module is provided
           as a simple demonstration only.


Run 'stub' to see how it all works together. 
           

Final Note: These programs are provided as free software. QNX Software
Systems has provided this software as a demonstration of the power of QNX 
Windows, and is not responsible for them.

Please feel free to use these programs in any way you'd like. If anyone
makes some changes and would like to offer the changes back to
us, we would be interested in posting them.
Send mail to 'randy@qnx.com' (or just 'randy' on QUICS) if you have more
questions.

Enjoy!
