[Bf-committers] UI layout engine

Ben Batt benbatt at gmail.com
Wed Nov 28 05:38:50 CET 2007


On Nov 28, 2007 2:16 PM, Matt Ebb <matt at mke3.net> wrote:
> On Nov 28, 2007 1:52 PM, Ben Batt <benbatt at gmail.com> wrote:
> > If the system had smart widget resizing behaviours, it would be even
> > nicer. For example, the "Show" column of buttons in the camera edit
> > panel could be made using a column layout container which tries to be
> > as narrow as possible, while each button calculates a minimum size
> > based on its text width and all buttons stretch to fill the layout
> > container (taking margins and padding into account). This would give a
> > column of buttons all the same width, and just wide enough to show the
> > widest button text nicely.
>
> Well perhaps when you're talking about layout within a predefined
> column area, but that's not a good way to go to make the columns
> themselves. You don't want to get too 'smart' unless that smartness
> knows about how to make good layouts :) It's not just about cramming
> buttons in - it's also having a good grid system that enables easy
> reading and wayfinding. Right now, in many of the button areas in
> Blender, the sizing is very haphazard, and not only does it give a
> cluttered messy appearance with differing widths and margines, but it
> also hinders skim-reading a bit, since it loses that sense of rhythm.

Well, I don't really know anything about the grid system thing you're
working on, so I can't comment on that, but when I say smart resizing
behaviours, I'm imagining behaviours that support good layouts.

For example, if you want a row of buttons all the same width, you
could have a row layout container that distributed its width evenly
between the widgets inside it (in fact, I imagine that would be the
default behaviour, and similarly for column layouts and height). The
two columns in the camera settings panel could be set up like this.
You could even have a row layout container that found the widget with
the largest minimum width and made all widgets that width, giving nice
content-fitting behaviour while still keeping the UI neat.

I guess the question is whether widget positions, widths etc. should
be hard-coded or adjust to fit the widget contents. I get the
impression that you'd prefer them to be hard-coded?

Ben


More information about the Bf-committers mailing list