Hello Everyone!

The virtual keyboard has taken much longer than I anticipated (as so many things do) 
but it is finally usable. I completely reworked the keyboard compiler. Keyboards are 
now written in Perl, calling PGFX-like graphics primitives. These primitives save 
binary canvas commands to the keyboard file, which are later played back by pgboard 
using very little code. Keyboards contain one or more patterns, each pattern comprised 
of a canvas command binary and a table of keys. Each key can send a keyboard event 
and/or jump to a new pattern. Keyboards can be quite complex, with hyperlinks and 
menus if necessary, and bitmap or vector graphics.

I posted a screenshot on picogui.org of the first keyboard, us_qwerty_scalable. It is 
drawn with vector graphics so it can scale to almost any resolution. It has extra 
patterns for control characters, shift, caps lock, symbols, and a numeric keypad.
This keyboard layout looks good at most resolutions, including 240x320 and 160x240. It 
is very crowded and probably unusable at 160x160. I will make a bitmapped FITALY 
layout soon at 160-pixels-wide and 240-pixels-wide also.

The only problem I have seen so far with this keyboard system is entering text in 
popup boxes. pgboard is implemented as a toolbar application. Popup boxes may obscure 
the keyboard and they always block mouse events from reaching it.

I could probably hack the layout engine and event processing in pgserver a bit so that 
toolbars are still usable when popup boxes are on the screen. Because toolbars always 
sit at the edges of the screen, I could only allow popup boxes to be allocated from 
the remaining space after toolbars are subtracted. Then, pass any events occuring 
outside this non-toolbar rectangle directly to the bottom divtree layer where the 
toolbars are.

This could have some side-effects though. When toolbars are on the screen, it would be 
impossible to allocate a popup box to occupy the whole screen. I'm not sure if this is 
a problem. Maybe popups have to have some special flag to enable this 
toolbar-avoidance and event passthrough code.

Another option may be to simply not allow text entry in popup boxes. This would mean 
popup boxes are only for warnings and simple decisions, and all real text entry 
(including file selection and other standard dialogs) would be in the application 
panel.

--
Only you can prevent creeping featurism!


_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/pgui-devel

Reply via email to