Thanks for the tips, Evan.  Do you mean to say that if I pack a (horizontal) slider into a VBox, using PackNatural, the slider will then stretch horizontally and not vertically (allotting extra vertical space to other widgets)?

   - Conal

On Tue, Feb 23, 2010 at 2:32 PM, Evan Martin <martine@danga.com> wrote:
On Tue, Feb 23, 2010 at 9:07 PM, Conal Elliott <conal@conal.net> wrote:
> I'm programmatically generating GUIs (not using Glade), and I want some
> widgets (e.g. sliders) to stretch only horizontally (on interactive window
> resize), while allowing others (e.g. graphics canvases) to stretch
> horizontally and vertically.  Is there some gtk2hs magic that will give me
> this effect?

Widget size is determined by their containers.  One-cell containers
(aka "bins", which include top-level windows, scrolled views, etc.)
typically have their children fill them completely.  Otherwise if you
wrap a widget in an HBox you can control the horizontal expansion or a
VBox to control the vertical expansion.  (Or a Table to control both,
but that is almost never needed in my experience.)  See the Packing
param to boxPackStart.

Maybe this link will work if you're on a system like mine:
file:///usr/share/doc/gtk2hs-doc/html/Graphics-UI-Gtk-Abstract-Box.html#t%3APacking