Window Auto-Size

If the packer window manager is used throughout then the sizes of panels and frames is determined automatically by their contents. However, if any option is used which requires that the placer window manager is used (for example the use of rows and columns for laying out panels) then it is necessary that the panel is given a explicit size.
The library routines when placing widgets in panels track the maximum x and y co-ordinates used and this information can be used to supply the width and height needed for the panel. For this feature to be enabled the :panel command must not supply a width (:w) or height (:h) when creating the panel.
It no explicit size is given to a panel then the autosize feature will supply it. This feature can also be disabled by use of the command :set autosize 1.
Autosize is only available for the panel widget. It is expected that normally no absolute positioning information (:x and :y) will be given via the :panel command and that panel widgets are then packed into the frame widget which will then be autosized by the geometry manager.
Note that the :show T command at the end of the frame creation will configure the frame footer (if it exists) to be the width of the frame.

Text windows created by the :galley procedure do not usually resize automatically to best fill the window when the frame is resized to increase its size. (The window manager does seem to respond correctly when the frame is made smaller).
The :galley_size procedure should be called at the end of the creation of a frame containing a galley and after the frame has been opened in order to establish initial sizes of the windows.
The galley would have been created with something like

:galley $W :rows $rows :cols $cols
and the :galley_size procedure would then be
:galley_size $W $rows $cols
The :galley_resize procedure should be called whenever it is required to check if the galley can be resized to fit the window.
:galley_resize $W
Typically a binding is made to create an event whenever the mouse moves into or out of the frame or (possibly better) when a X Configure event occurs for the frame.
:enter [self frame-name] Enter
:enter [self frame-name] Configure