NAME¶
XmPanedWindow — The PanedWindow widget class
"XmPanedWindow" "widget class" "PanedWindow"
SYNOPSIS¶
#include <Xm/PanedW.h>
DESCRIPTION¶
PanedWindow is a composite widget that lays out children in a vertically tiled
format. Children appear in top-to-bottom fashion, with the first child
inserted appearing at the top of the PanedWindow and the last child inserted
appearing at the bottom. The PanedWindow grows to match the width of its
widest child and all other children are forced to this width. The height of
the PanedWindow is equal to the sum of the heights of all its children, the
spacing between them, and the size of the top and bottom margins.
The user can also adjust the size of the panes. To facilitate this adjustment, a
pane control sash is created for most children. The sash appears as a square
box positioned on the bottom of the pane that it controls. The user can adjust
the size of a pane by using the mouse or keyboard.
The PanedWindow is also a constraint widget, which means that it creates and
manages a set of constraints for each child. You can specify a minimum and
maximum size for each pane. The PanedWindow does not allow a pane to be
resized below its minimum size or beyond its maximum size. Also, when the
minimum size of a pane is equal to its maximum size, no control sash is
presented for that pane or for the lowest pane.
The default
XmNinsertPosition procedure for PanedWindow causes all panes
to appear first in the
XmNchildren list and all sashes to appear after
the panes. For a pane child, it returns the value of
XmNpositionIndex
if one has been specified for the child. Otherwise, it returns the number of
panes in the PanedWindow's
XmNchildren list. Other than the fact
that all sashes appear after all panes, the insertion order of sashes is
unspecified. This procedure also causes nonsash widgets to be inserted after
other nonsash children but before any sashes. The behavior of PanedWindow is
undefined if
XmNinsertPosition is set to a procedure other than the
default.
All panes and sashes in a PanedWindow must be tab groups. When a pane is
inserted as a child of the PanedWindow, if the pane's
XmNnavigationType
is not
XmEXCLUSIVE_TAB_GROUP, PanedWindow sets it to
XmSTICKY_TAB_GROUP.
Descendants¶
PanedWindow automatically creates for each paned window the descendants shown in
the following table. An application can use
XtName and the child list
information to gain access to the named descendant. In addition, a user or an
application can use the named descendant when specifying resource values.
Named Descendant |
Class |
Identity |
_ |
_ |
_ |
|
_ |
_ |
_ |
Sash |
subclass of XmPrimitive |
sash |
_ |
_ |
_ |
Separator |
XmSeparatorGadget |
dividing line between window panes |
_ |
_ |
_ |
Classes¶
PanedWindow inherits behavior and resources from the
Core,
Composite,
Constraint, and
XmManager classes.
The class pointer is
xmPanedWindowWidgetClass.
The class name is
XmPanedWindow.
New Resources¶
The following table defines a set of widget resources used by the programmer to
specify data. The programmer can also set the resource values for the
inherited classes to set attributes for this widget. To reference a resource
by name or by class in a
.Xdefaults file, remove the
XmN or
XmC prefix and use the remaining letters. To specify one of the defined
values for a resource in a
.Xdefaults file, remove the
Xm prefix
and use the remaining letters (in either lowercase or uppercase, but include
any underscores between words). The codes in the access column indicate if the
given resource can be set at creation time (C), set by using
XtSetValues (S), retrieved by using
XtGetValues (G), or is not
applicable (N/A).
XmPanedWindow Resource Set |
|
|
|
|
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNmarginHeight |
XmCMarginHeight |
Dimension |
3 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNmarginWidth |
XmCMarginWidth |
Dimension |
3 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNorientation |
XmCOrientation |
unsigned char |
XmVERTICAL |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNrefigureMode |
XmCBoolean |
Boolean |
True |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashHeight |
XmCSashHeight |
Dimension |
10 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashIndent |
XmCSashIndent |
Position |
-10 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashShadowThickness |
XmCShadowThickness |
Dimension |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashWidth |
XmCSashWidth |
Dimension |
10 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNseparatorOn |
XmCSeparatorOn |
Boolean |
True |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNspacing |
XmCSpacing |
Dimension |
8 |
CSG |
_ |
_ |
_ |
_ |
_ |
- XmNmarginHeight
- Specifies the distance between the top and bottom edges of the PanedWindow
and its children.
- XmNmarginWidth
- Specifies the distance between the left and right edges of the PanedWindow
and its children.
- XmNorientation
- Specifies the layout as either vertical (with the XmVERTICAL value)
or horizontal (with the XmHORIZONTAL value). In the vertical
layout, the children are laid out in a vertically tiled format. In the
horizontal layout, the children are laid out in a horizontal layout, with
the sash moveable along the horizontal axis.
- XmNrefigureMode
- Determines whether the panes' positions are recomputed and repositioned
when programmatic changes are being made to the PanedWindow. Setting this
resource to True resets the children to their appropriate positions.
- XmNsashHeight
- Specifies the height of the sash.
- XmNsashIndent
- Specifies the horizontal placement of the sash along each pane. A positive
value causes the sash to be offset from the near (left) side of the
PanedWindow, and a negative value causes the sash to be offset from the
far (right) side of the PanedWindow. If the offset is greater than the
width of the PanedWindow minus the width of the sash, the sash is placed
flush against the near side of the PanedWindow.
-
- Whether the placement actually corresponds to the left or right side of
the PanedWindow depends on the XmNlayoutDirection resource of the
widget.
- XmNsashShadowThickness
- Specifies the thickness of the shadows of the sashes.
- XmNsashWidth
- Specifies the width of the sash.
- XmNseparatorOn
- Determines whether a separator is created between each of the panes.
Setting this resource to True creates a Separator at the midpoint between
each of the panes.
- XmNspacing
- Specifies the distance between each child pane.
-
-
XmPanedWindow Constraint Resource Set |
|
|
|
|
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNallowResize |
XmCBoolean |
Boolean |
False |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpaneMaximum |
XmCPaneMaximum |
Dimension |
1000 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpaneMinimum |
XmCPaneMinimum |
Dimension |
1 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpositionIndex |
XmCPositionIndex |
short |
XmLAST_POSITION |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNskipAdjust |
XmCBoolean |
Boolean |
False |
CSG |
_ |
_ |
_ |
_ |
_ |
- XmNallowResize
- Allows an application to specify whether the PanedWindow should allow a
pane to request to be resized. This flag has an effect only after the
PanedWindow and its children have been realized. If this flag is set to
True, the PanedWindow tries to honor requests to alter the height of the
pane. If False, it always denies pane requests to resize.
- XmNpaneMaximum
- Allows an application to specify the maximum size to which a pane may be
resized. This value must be greater than the specified minimum.
- XmNpaneMinimum
- Allows an application to specify the minimum size to which a pane may be
resized. This value must be greater than 0 (zero).
- XmNpositionIndex
- Specifies the position of the widget in its parent's list of children (the
list of pane children, not including sashes). The value is an integer that
is no less than 0 (zero) and no greater than the number of children in the
list at the time the value is specified. A value of 0 means that the child
is placed at the beginning of the list. The value can also be specified as
XmLAST_POSITION (the default), which means that the child is placed
at the end of the list. Any other value is ignored. XtGetValues
returns the position of the widget in its parent's child list at the time
of the call to XtGetValues.
-
- When a widget is inserted into its parent's child list, the positions of
any existing children that are greater than or equal to the specified
widget's XmNpositionIndex are increased by 1. The effect of a call
to XtSetValues for XmNpositionIndex is to remove the
specified widget from its parent's child list, decrease by one the
positions of any existing children that are greater than the specified
widget's former position in the list, and then insert the specified widget
into its parent's child list as described in the preceding sentence.
- XmNskipAdjust
- When set to True, this Boolean resource allows an application to specify
that the PanedWindow should not automatically resize this pane.
Inherited Resources¶
PanedWindow inherits behavior and resources from the superclasses described in
the following tables. For a complete description of each resource, refer to
the reference page for that superclass.
XmManager Resource Set |
|
|
|
|
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNbottomShadowColor |
XmCBottomShadowColor |
Pixel |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNbottomShadowPixmap |
XmCBottomShadowPixmap |
Pixmap |
XmUNSPECIFIED_PIXMAP |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNforeground |
XmCForeground |
Pixel |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNhelpCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
_ |
_ |
_ |
_ |
_ |
XmNhighlightColor |
XmCHighlightColor |
Pixel |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNhighlightPixmap |
XmCHighlightPixmap |
Pixmap |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNinitialFocus |
XmCInitialFocus |
Widget |
NULL |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNlayoutDirection |
XmCLayoutDirection |
XmDirection |
dynamic |
CG |
_ |
_ |
_ |
_ |
_ |
XmNnavigationType |
XmCNavigationType |
XmNavigationType |
XmTAB_GROUP |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpopupHandlerCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
_ |
_ |
_ |
_ |
_ |
XmNshadowThickness |
XmCShadowThickness |
Dimension |
2 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNstringDirection |
XmCStringDirection |
XmStringDirection |
dynamic |
CG |
_ |
_ |
_ |
_ |
_ |
XmNtopShadowColor |
XmCTopShadowColor |
Pixel |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNtopShadowPixmap |
XmCTopShadowPixmap |
Pixmap |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNtraversalOn |
XmCTraversalOn |
Boolean |
True |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNunitType |
XmCUnitType |
unsigned char |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNuserData |
XmCUserData |
XtPointer |
NULL |
CSG |
_ |
_ |
_ |
_ |
_ |
Core Resource Set |
|
|
|
|
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNaccelerators |
XmCAccelerators |
XtAccelerators |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNancestorSensitive |
XmCSensitive |
Boolean |
dynamic |
G |
_ |
_ |
_ |
_ |
_ |
XmNbackground |
XmCBackground |
Pixel |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNbackgroundPixmap |
XmCPixmap |
Pixmap |
XmUNSPECIFIED_PIXMAP |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNborderColor |
XmCBorderColor |
Pixel |
XtDefaultForeground |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNborderPixmap |
XmCPixmap |
Pixmap |
XmUNSPECIFIED_PIXMAP |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNborderWidth |
XmCBorderWidth |
Dimension |
0 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNcolormap |
XmCColormap |
Colormap |
dynamic |
CG |
_ |
_ |
_ |
_ |
_ |
XmNdepth |
XmCDepth |
int |
dynamic |
CG |
_ |
_ |
_ |
_ |
_ |
XmNdestroyCallback |
XmCCallback |
XtCallbackList |
NULL |
C |
_ |
_ |
_ |
_ |
_ |
XmNheight |
XmCHeight |
Dimension |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNinitialResourcesPersistent |
XmCInitialResourcesPersistent |
Boolean |
True |
C |
_ |
_ |
_ |
_ |
_ |
XmNmappedWhenManaged |
XmCMappedWhenManaged |
Boolean |
True |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNscreen |
XmCScreen |
Screen * |
dynamic |
CG |
_ |
_ |
_ |
_ |
_ |
XmNsensitive |
XmCSensitive |
Boolean |
True |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNtranslations |
XmCTranslations |
XtTranslations |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNwidth |
XmCWidth |
Dimension |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNx |
XmCPosition |
Position |
0 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNy |
XmCPosition |
Position |
0 |
CSG |
_ |
_ |
_ |
_ |
_ |
Composite Resource Set |
|
|
|
|
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNchildren |
XmCReadOnly |
WidgetList |
NULL |
G |
_ |
_ |
_ |
_ |
_ |
XmNinsertPosition |
XmCInsertPosition |
XtOrderProc |
default procedure |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNnumChildren |
XmCReadOnly |
Cardinal |
0 |
G |
_ |
_ |
_ |
_ |
_ |
Translations¶
XmPanedWindow inherits translations from
XmManager.
The translations for sashes within the PanedWindow are described in the
following table.
The following key names are listed in the X standard key event translation table
syntax. This format is the one used by Motif to specify the widget actions
corresponding to a given key. A brief overview of the format is provided under
VirtualBindings(3). For a complete description of the format, please
refer to the X Toolkit Instrinsics Documentation.
- ∼c ∼s ∼m ∼a
<Btn1Down>:
- SashAction(Start)
- ∼c ∼s ∼m ∼a
<Btn1Motion>:
- SashAction(Move)
- ∼c ∼s ∼m ∼a <Btn1Up>:
- SashAction(Commit)
- ∼c ∼s ∼m ∼a
<Btn2Down>:
- SashAction(Start)
- ∼c ∼s ∼m ∼a
<Btn2Motion>:
- SashAction(Move)
- ∼c ∼s ∼m ∼a <Btn2Up>:
- SashAction(Commit)
- :<Key><osfActivate>:
- PrimitiveParentActivate()
- :<Key><osfCancel>:
- PrimitiveParentCancel()
- :<Key><osfHelp>:
- Help()
- :c <Key><osfUp>:
- SashAction(Key,LargeIncr,Up)
- :<Key><osfUp>:
- SashAction(Key,DefaultIncr,Up)
- :c <Key><osfRight>:
- SashAction(Key,LargeIncr,Right)
- :<Key><osfRight>:
- SashAction(Key,DefaultIncr,Right)
- :c <Key><osfDown>:
- SashAction(Key,LargeIncr,Down)
- :<Key><osfDown>:
- SashAction(Key,DefaultIncr,Down)
- :c <Key><osfLeft>:
- SashAction(Key,LargeIncr,Left)
- :<Key><osfLeft>:
- SashAction(Key,DefaultIncr,Left)
- ∼s ∼m ∼a <Key>Return:
- PrimitiveParentActivate()
- s ∼m ∼a <Key>Tab:
- PrevTabGroup()
- ∼m ∼a <Key>Tab:
- NextTabGroup()
Action Routines¶
The
XmPanedWindow action routines are
- Help():
- Calls the callbacks for XmNhelpCallback if any exist. If there are
no help callbacks for this widget, this action calls the help callbacks
for the nearest ancestor that has them.
- NextTabGroup():
- Moves the keyboard focus to the next tab group. By default, each pane and
sash is a tab group.
- PrevTabGroup():
- Moves the keyboard focus to the previous tab group. By default, each pane
and sash is a tab group.
- SashAction(action) or SashAction(Key,increment,direction):
- The Start action activates the interactive placement of the pane's
borders. The Move action causes the sash to track the position of
the pointer. If one of the panes reaches its minimum or maximum size,
adjustment continues with the next adjustable pane. The Commit
action ends sash motion.
-
- When sash action is caused by a keyboard event, the sash with the keyboard
focus is moved according to the increment and direction
specified. DefaultIncr adjusts the sash by one line.
LargeIncr adjusts the sash by one view region. The direction
is specified as either Up, Down, Left, or
Right.
-
- Note that the SashAction action routine is not a direct action routine of
the XmPanedWindow, but rather an action of the Sash control created
by the XmPanedWindow.
Additional Behavior¶
This widget has the following additional behavior:
- <FocusIn>:
- Moves the keyboard focus to the sash and highlights it
- <FocusOut>:
- Unsets the keyboard focus in the sash and unhighlights it
Virtual Bindings¶
The bindings for virtual keys are vendor specific. For information about
bindings for virtual buttons and keys, see
VirtualBindings(3).
Composite(3),
Constraint(3),
Core(3),
XmCreatePanedWindow(3),
XmManager(3),
XmVaCreatePanedWindow(3), and
XmVaCreateManagedPanedWindow(3).