[Bf-committers] 2.5 UI font

Mathias Panzenböck grosser.meister.morti at gmx.net
Wed Dec 9 01:05:35 CET 2009


On 12/08/2009 05:38 PM, Martin Poirier wrote:
> There are the same issues that were present in 2.49a.
> 
> Mainly: lists expend vertically, so having panels laid out horizontally means you have to scroll in two directions instead of just one.

Then the list layout manager should be extendes so that it breaks the list and
starts a new column when the height would be overflown (in case the orientation
of the parent layout is horizontal).

> Additionally, the panels in 2.5 aren't forced square (ish) like they were before, so an horizontal layout can't just put all of them side by side.
> 
> Martin
> 

A lot of the talk here sounds to me like it was missed to implement real layout
managers and a more declarative way of defining GUIs in blender 2.50. This is
something that should have been considered in the design phase of blender 2.50.

Developers do not want to place widgets manually, ever. E.g. they want to place
them in some kind of (non-regular) grid. This grid is provided by a layout
manager. You then tell the layout manager which columns/rows are fixed in their
size and which can vary (+weight of variation). For those that can vary you
define min- and max-sizes.

When you can do that this way, the layout manager can do some interesting stuff:
It can automatically create right-to-left GUIs! (Qt does it that way.) Also you
could toggle horizontal/vertical display in the layout manager, without having
to write custom layout placements for these two cases.

This describes basically grid layouts like they can be seen in Qt and SWING. You
can setup about any GUI you want with grid layouts, but sometimes they are a bit
cumbersome. For this reason there is the new "group" layout in SWING and the new
"anchor"[1] layout in Qt (currently work in progress). You can see in the Qt
example no single number is used in the source and the setup of the layout isn't
done in a draw/paint method. All the definitions are relative, gluing one edge
of a widget to another one.

Ok, enough interference.

	-panzi

[1]
http://labs.trolltech.com/blogs/2009/11/26/anchor-layout-joins-the-family-of-qgraphicslayout/


More information about the Bf-committers mailing list