lua-users home
lua-l archive

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


Hi list,
I just downloaded LFW and am exploring the libraries, especially the IUP GUI library as a replacement for Perl's Win32::GUI for recreational coding. My question is, why isn't the tree control IUP uses in Win32 native and are there any work-arounds? Personally, this is an accessibility problem and quite a show stopper at that. I've tested some other controls, too, and fortunately the basics like edit fields, buttons and message boxes appear to work natively, however.

The problem:
The tree does not respect my custom window and selection fg/bg colors, causing my screen reader not too track the selection in the trees. This means there's no spoken feedback when cursoring around and no selection tracking magnified, either. Not only that but the keyboard interface has holes, too, left, numpad minus and backspace don't work as expected on open/close branch and leaf nodes. this means that though I can write apps using treees all right, I cannot easily test or use them myself.
End problem.

This lack of accessibility is a pitty, since IUP seems to be one of my favorite GUI libs ever, even after only having read the basic guide.

Praise::
It is a lot like Win32::GUI for PErl but more elegant and native fealing and portable. It gets the excellent box based layout management from GTK+ I've liked ever since I used it, as it maps well to my mental model of a GUI. Yet using Iup makes writing small apps as easy as TK does. It is also quite simple to understand and use unlike Swing, and is natively Lua so you don't have to read C++ docs as in WxWidgets.
End praise.

So briefly put, it definitely looks like my number 1 choice of GUi library when doing portable GUI apps in Lua, heck I wish Perl had that, too. If only Iup was more keyboard and screen reader accessible. Of course, virtually all native controls automagically are, adding non-native controls common to all platforms is what gets you into trouble accessibilitywise.

The funny thing about accessibility is that it isn't just the sight-impaired users, either. Power-users and those whose mice don't work benefit as well. Alternative input like speech-recognition and tablet PCs can take advantage of well-coded accessibility e.g. programmatic associations between labels and labelled controls. Nough said.

I'm running XP SP3, the latest version of LFW for WIndows and Dolphin Supernova 9.02 as the screen reader.

here's the sample code from the guide I tested the tree with:

require 'iuplua'
require 'iupluacontrols'
tree = iup.tree{}
tree.addexpanded = "NO"
list = {
 {
   "Horse",
   "Whale";
   branchname = "Mammals"
 },
 {
   "Shrimp",
   "Lobster";
   branchname = "Crustaceans"
 },
 {
   branchname = "Birds"
 },
 branchname = "Animals"
}
iup.TreeSetValue(tree, list)
f = iup.dialog{tree; title = "Tree Test"}
f:show()
iup.MainLoop()

And for testing with custom colors, the relevant section of the .theme file I've created for myself:

[Control Panel\Colors]
ActiveTitle=0 0 0
Background=0 0 0
Hilight=255 255 117
HilightText=0 0 0
TitleText=255 255 255
Window=0 0 0
WindowText=255 255 255
Scrollbar=113 160 208
InactiveTitle=84 252 252
Menu=3 64 97
WindowFrame=0 0 0
MenuText=255 255 255
ActiveBorder=255 255 255
InactiveBorder=32 64 97
AppWorkspace=0 0 60
ButtonFace=32 64 97
ButtonShadow=21 43 64
GrayText=192 192 192
ButtonText=255 255 255
InactiveTitleText=0 0 0
ButtonHilight=113 160 208
ButtonDkShadow=255 255 255
ButtonLight=255 255 255
InfoText=255 255 255
InfoWindow=0 0 80
GradientActiveTitle=0 0 0
GradientInactiveTitle=84 252 252
ButtonAlternateFace=192 192 192
HotTrackingColor=255 255 117
MenuHilight=0 0 128
MenuBar=192 192 192

HTH.


--
With kind regards Veli-Pekka Tätilä
Accessibility, Apps and Coding plus Synths and Music:
http://vtatila.kapsi.fi