
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