[GUI] Dynamic ... something

Axel Simon A.Simon@ukc.ac.uk
Sun, 13 Apr 2003 21:11:37 +0100


On Sun, Apr 13, 2003 at 05:12:56PM +0200, Wolfgang Thaller wrote:
> >I don't like the idea of separating explicit placement and dynamic 
> >layout.
> 
[..]
> * I'm sure that there are some strange situations where it is 
> necessary, and if the application can query things like minimum and 
> recommended sizes, font sizes are no problem

I just assumed that we explicit placement is something nobody will ever 
use, so it just seemed odd that we should start with it.

> Resizing is a different issue. Mac OS Cocoa only has explicit 
> placement, but does automatic resizing.
> Also, consider a document window: You'd need to place some content-area 
> widget (e.g. a text widget), and two scrollbar widgets. Of course we 
> need resizing, even for windows.

Sorry, I only meant to say resizing in terms of dialogs. The normal
document window certainly is resizable.

> >I therefore opose to taking "explicit placement" as a starting
> >point.
> 
> I was suggesting that we should start with explicit placement because 
> it is by far the simplest mechanism; we can then already implement and 
> test other parts of the CGA, before all the dynamic layout mechanisms 
> are implemented on Mac OS and Windows.

How would it look like?

placeWidget :: Container -> Int -> Int -> Widget -> IO ()

What are the two Ints? Pixels? Dialog units? Fractions of something? I 
just wonder if it is really simple. Convince me that it is! :-)

> >Using combinators doesn't go along
> >with absolute pixel positions anyway as far as I can tell.
> 
> I don't get that... what do you mean by this?

I meant that placing a widget at a specific position will be just an IO 
action like "placeWidget" above. This cannot be expressed by combinators, 
otherwise you already have the dynamic version.

Axel.