Specifications
Athena Widget Set libXaw 1.0.7
showGrip If True then a grip will be shown for this pane. The grip associated with
apane is either belowortothe right of the pane. No grip is evershown
for the last pane.
skipAdjust This resource is used to determine which pane is forced to be resized.
Setting this value to True makes this pane less likely to be forced to be
resized. See Layout Semantics for details.
6.4.4. Layout Semantics
In order to makeeffective use of the Paned widget it is helpful to knowthe rules it uses to deter-
mine which child will be resized in anygiv e nsituation. There are three rules used to determine
which child is resized. While these rules are always the same, the panes that are searched can
change depending upon what caused the relayout.
Layout Rules
1 Do not let a pane growlarger than its max or smaller than its min.
2 Do not adjust panes with skipAdjust set.
3 Do not adjust panes awayfrom their preferred size, although moving one closer to its pre-
ferred size is fine.
When searching the children the Paned widget looks for panes that satisfy all the rules, and if
unsuccessful then it eliminates rule 3 and then 2. Rule 1 is always enforced.
If the relayout is due to a resize or change in management then the panes are searched from bot-
tom to top. If the relayout is due to grip movement then theyare searched from the grip selected
in the direction opposite the pane selected.
6.4.4.1. Resizing Panes from a Grip Action
The pane above the grip is resized by invoking the GripAction with UpLeftPane specified. The
panes belowthe grip are each checked against all rules, then rules 2 and 1 and finally against rule
1only.Nopane above the chosen pane will everberesized.
The pane belowthe grip is resized by invoking the GripAction with LowRightPane specified.
The panes above the grip are each checked in this case. No pane belowthe chosen pane will ever
be resized.
Invoking GripAction with ThisBorderOnly specified just movesthe border between the panes.
No other panes are everresized.
6.4.4.2. Resizing Panes after the Paned widget is resized.
When the Pane widget is resized it must determine a newsize for each pane. There are twometh-
ods of doing this. The Paned widget can either give each pane its preferred size and then resize
the panes to fit, or it can use the current sizes and then resize the panes to fit. The resizeToPre-
ferred resource allows the application to tell the Paned widget whether to query the child about
its preferred size (subject to the the preferredPaneSize)ortouse the current size when refiguring
the pane locations after the pane has been resized.
There is one special case. All panes assume theyshould resize to their preferred size until the
Paned widget becomes visible to the user.
6.4.4.3. Managing Children and Geometry Management
The Paned widget always resizes its children to their preferred sizes when a newchild is man-
aged, or a geometry management request is honored. The Paned widget will first attempt to
resize itself to contain its panes exactly.Ifthis is not possible then it will hunt through the chil-
dren, from bottom to top (right to left), for a pane to resize.
122