|
|
| |
XmPaned(3) |
FreeBSD Library Functions Manual |
XmPaned(3) |
XmPaned — The Paned widget class
The Paned widget manages children in a vertically or horizontally tiled fashion
with each child in a separate pane. The panes may be dynamically resized by
the user using "control sashes" that appear between the panes.
Application programmers have control over whether or not sashes
and separators are displayed, the preferred size of each pane, and which
pane will be forced to absorb size restrictions imposed by the Paned
widget's parent.
The Paned widget usually resizes its children to their preferred sizes when a
new child is managed. It will first attempt to resize itself to contain its
panes exactly. If this is not possible then it will hunt through the children,
from bottom to top (or right to left), for a pane to resize.
The Paned widget will attempt to honor the geometry request of its
children. It will first attempt to resize itself to satisfy the request then
go through the layout rules below to satisfy the request. Only if all panes
are at their min/max values will a geometry request be refused. If the
XmNallowResize resource is False for the child then all geometry requests
will be denied,
of course.
When a user resizes a pane with the sashes, the Paned widget assumes that this
new size is the preferred size of both the pane above and the pane below,
unless the XmNresizeToPreferred constraint resource is True for that pane.
In order to make effective use of the Paned widget it is helpful to know the
rules it uses to determine which child will be resized in any given situation.
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 change of layout.
1. Do not let a pane grow larger than its max or smaller than
its min size. In addition do not let a pane without a sash shrink below its
preferred size due to a grip movement of another pane.
2. Do not adjust panes with XmNskipAdjust set.
3. Do not adjust panes away from their preferred size, although
moving one closer to its preferred 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 bottom to top. If space is needed above the
current sash the panes are searched from bottom to top beginning with the
second pane above the grip that was moved. If space is needed below the
current sash the panes are searched from top to bottom beginning with the
second pane below the grip that was moved. The Paned widget never wraps its
pane resizing. Therefore if space is needed below the sash then no widget
above the sash will ever be resized.
Note: If the orientation is horizontal then substitute
"right" for "bottom" and "left" for
"top" in the above paragraph.
When the Paned widget is resized it must determine a new size for each pane.
There are two methods 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 XmNresizeToPreferred
constraint resource allows the application to tell the Paned widget whether to
query the child about its preferred size (subject to the XmNpreferredPaneSize)
or to use the current size when refiguring the pane locations after the Paned
widget has been resized.
All panes assume they should resize to their preferred size until
the Paned widget becomes visible to the user.
Paned inherits behavior and resources from the Core, Composite,
Constraint, abd Xmmanager classes.
The class pointer of xmPanedWidgetClass.
The class name is XmPaned.
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).
XmPaned Resource Set |
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNcursor |
XmCursor |
tCursor |
None |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNmarginHeight |
XmCMarginHeight |
Dimension |
3 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNmarginWidth |
XmCMarginWidth |
Dimension |
3 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNorientation |
XmCOrientation |
unsigned char |
XmVERTICAL |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNrefigureMode |
XmCBoolean |
Boolean |
True |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashHeight |
XmCSashHeight |
Dimension |
8 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashIndent |
XmCSashIndent |
Position |
-10 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashShadowThickness |
XmCShadowThickness |
Dimension |
dynamic |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNsashTranslations%Translations%XtTranslations%see
below |
_ |
_ |
_ |
_ |
_ |
XmNsashWidth |
XmCSashWidth |
Dimension |
10 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNseparatorOn |
XmCSeparatorOn |
Boolean |
True |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNspacing |
XmCSpacing |
Dimension |
8 |
CSG |
_ |
_ |
_ |
_ |
_ |
- XmNcursor
- Image that will be displayed as the pointer cursor whenever the pointer is
over this widget. If the children do not explicitly set their cursor
attribute then this resource will be inherited by each child.
- XmNmarginHeight
- Specifies the distance between the top and bottom edges of the Paned
widget and its children.
- XmNmarginWidth
- Specifies the distance between the left and right edges of the Paned
widget 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 Paned widget. 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 Paned
widget, and a negative value causes the sash to be offset from the far
(right) side of the Paned widget. If the offset is greater than the width
of the Paned widget minus the width of the sash, the sash is placed flush
against the near side of the Paned widget.
-
- Whether the placement actually corresponds to the left or right side of
the Paned widget depends on the XmNlayoutDirection resource of the
widget.
- XmNsashTranslations
- Translation bindings for the sash. See below.
- 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.
XmPaned Constraint
Resource Set |
Name |
Class |
Type |
Default |
Access |
_ |
_ |
_ |
_ |
_ |
XmNallowResize |
XmCBoolean |
Boolean |
False |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpaneMaximum |
XmCPaneMaximum |
Dimension |
1000 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpaneMinimum |
XmCPaneMinimum |
Dimension |
1 |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNskipAdjust |
XmCBoolean |
Boolean |
False |
CSG |
_ |
_ |
_ |
_ |
_ |
XmNpreferredPaneSize |
XmCPreferredPaneSize |
Dimension |
XmPanedAskChild |
_ |
_ |
_ |
_ |
_ |
XmNresizeToPreferred |
XmCBoolean |
Boolean |
False |
_ |
_ |
_ |
_ |
_ |
XmNshowSash |
XmCBoolean |
Boolean |
True |
_ |
_ |
_ |
_ |
_ |
- XmNallowResize
- Allows an application to specify whether the Paned widget should allow a
pane to request to be resized. This flag has an effect only after the
Paned widget and its children have been realized. If this flag is set to
True, the Paned widget 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).
- XmNskipAdjust
- When set to True, this Boolean resource allows an application to specify
that the Paned widget should not automatically resize this pane.
- XmNpreferredPaneSize
- Preferred size of the pane. If this value is not set the paned widget will
query the child for a preferred size. This resource allows the user or
application to provide a new preferred size.
- XmNresizeToPreferred
- Specifies whether to resize each pane to its preferred size when the Paned
window is resized. If this is False then only those panes the user has not
resized with the sashes will be resized to their preferred size.
- XmNshowSash
- If True show the Sash below or to the right of this pane.
Paned widget 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 |
_ |
_ |
_ |
_ |
_ |
XmPaned widget inherits translations from XmManager.
The translations for sashes within the Paned widget 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><osfHelp>:
- Help()
- :c <Key><osfUp>:
- SashAction(Key,10,Up)
- :<Key><osfUp>:
- SashAction(Key,1,Up)
- :c <Key><osfRight>:
- SashAction(Key,10,Right)
- :<Key><osfRight>:
- SashAction(Key,1,Right)
- :c <Key><osfDown>:
- SashAction(Key,10,Down)
- :<Key><osfDown>:
- SashAction(Key,1,Down)
- :c <Key><osfLeft>:
- SashAction(Key,10,Left)
- :<Key><osfLeft>:
- SashAction(Key,1,Left)
- s ∼m ∼a <Key>Tab:
- PrevTabGroup()
- ∼m ∼a <Key>Tab:
- NextTabGroup()
The XmPaned 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 XmPaned, but rather an action of the Sash control created by
the XmPaned.
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
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),
XmCreatePaned(3), XmManager(3), XmPaneGetpanes(3),
XmVaCreatePaned(3), and XmVaCreateManagedPaned(3).
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |