I would prefer to see a core gui library that has a dom like structure and the core lib doesn't really define the interface but only serves as "an interface to other interfaces".
For example, a button class in this library will work like this :
b = Button('Submit')
b.setStyles( {'backgroundColor': 'yellow', 'fontSize': 20} )
( which can also be done with:
b.style.backgroundColor='yellow'
b.style.fontSize = 20
)
# Define the style change when mouse over it
b.onMouseOver.style = { 'backgroundColor':'red', 'fontColor':'blue' }
# Define what happen when mouse over it
b.onMouseOver.action = "" 'Click to submit the article' )
That means, b.onMouseOver returns an "Event" object that has .style and .action.
b.onClick.action = ""
b.stickTo( 'right-top' ) # stick to the right-top corner of its parent (whatever it's parent is)
p = Panel( )
p.add( b ) # This also defines b.parent= p, so b will stick to right-top of p
......
...
The above are the 'core style and behavior', doesn't define to where those style and behavior will apply.
Now comes the real fun part:
Define a mechnism to allow this "core styles and actions" be applied to different "faces" the choice of users.
For example,
print p.toGui( face = 'html') # generate a webpage
p.toGui( face = 'wxPython' ).run # generate a desktop program, using wxpython
There are many advantages for this sort of "universal gui core". At least, a user will only need to learn one set of gui approach.
--
~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
Runsun Pan, PhD
[EMAIL PROTECTED]
Nat'l Center for Macromolecular Imaging
http://ncmi.bcm.tmc.edu/ncmi/
~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
-- http://mail.python.org/mailman/listinfo/python-list