[GUI] Dynamic ... something
Wolfgang Thaller
wolfgang.thaller@gmx.net
Sun, 13 Apr 2003 17:12:56 +0200
Axel Simon wrote:
> On Sat, Apr 12, 2003 at 06:54:13PM +0200, Wolfgang Thaller wrote:
>> None of the approaches need to be mutually exclusive, though:
>>
>> 1) Explicit placement
>> (should not be used directly except in some strange case that I just
>> can't think of)
>> 2) Platform-specific interface definition files
>> 3) Dynamic layout
>>
> I don't like the idea of separating explicit placement and dynamic
> layout.
Explicit placement is, of course, just one very simple layout
algorithm. I was not talking about separating it from the rest.
* Explicit placement is a layout algorithm, just like a GridBagLayout
* It is available on all platforms
* It is easy to implement on all platforms
* It is the only thing that is available on some platforms, so on those
platforms, we'll have to implement the other algorithms on top of that
* Because it's easy to implement on all platforms, it will be useful in
the early testing phases
* Because we need it as a base to implement better algorithms on
Windows & Aqua, we might as well have a convenient interface to it
* It's use for laying out dialogs should, of course, be discouraged,
for the sake of cross-platform compatibility.
* 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
> If
> we provide a set of simple combinators, these combinators can calculate
> fixed positions for Windows and Aqua but use the widget containers
> which
> allow resizing on Gtk and Motif.
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.
As I said, there is no mutual exclusion.
We should probably have good layout combinators, but we should also
have an "explicit placement" combinator because I need it as a base to
implement the other combinators on on Mac OS; also, it's a useful thing
to have in some situations.
> 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 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.
Cheers,
Wolfgang