[GUI] Dynamic ... something
Wolfgang Thaller
wolfgang.thaller@gmx.net
Sat, 12 Apr 2003 16:37:33 +0200
Hello everyone!
The Easter Holidays are beginning, and finally I have some time to
spare again....
So allow me to try to summarize the discussion about dynamic layout:
We'll have one or more of the following (correct me if I left something
out, or if I'm misrepresenting something):
1) programmatic creation of widgets with fixed positions
2) programmatic creation of widgets using dynamic layout
(where the layout manager provides the same features across all
platforms; implemented in Haskell at least for those platforms that
don't have a native layout manager)
3) creation of widgets from platform-specifc resource files
.. using platform-specific extensions
Something like:
nib <- loadAppleNibFile_MAC "foo.nib" -- a nib file is a document
created by Apple's Interface Builder and contains one or more dialogs
dialog <- createDialogFromNib_MAC nib "MyDialog"
If "MyDialog" doesn't refer to a dialog in the file, a runtime error
occurs...
(_MAC indicates a Mac-specific extension, in analogy to the naming
convention for OpenGL extensions).
4.) automatic layout using a self-made resource file format
... and perhaps, in the far future, a GUI layout editor to go along
with it
5.) some conversion of platform-specific formats to Haskell code
(frankly, I fail to see the point)
=====
What about making layout management a feature of a containter widget?
When adding widgets to a FixedLayoutContainer, you'd have to specify
the coordinates, when adding widgets to a GridLayoutContainer, you'd
specify row & column, etc.
We could start with just a FixedLayoutContainer (that's easy), and then
we can go on and add "more intelligent" layout mechanisms.
Another, similar approach would be to make the "layout manager" an
_attribute_ of a container widget (as is done in Java's AWT, if I
remember correctly). Don't know if that has any advantages for our
situation.
Cheers,
Wolfgang