Name

XmPanedWindow(3X) — XmPanedWindow--The PanedWindow widget class XmPanedWindowwidget class

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 sashes to be inserted at the end of the list of children and causes non-sash widgets to be inserted after other non-sash children but before any sashes.

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.

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).

Name

Class

Type

Default

Access

XmNmarginHeight

XmCMarginHeight

Dimension

3

CSG

XmNmarginWidth

XmCMarginWidth

Dimension

3

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.

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 may depend on the value of the XmNstringDirection resource.

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.

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.

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 zero and no greater than the number of children in the list at the time the value is specified. A value of zero 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 one. 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 following superclasses. For a complete description of each resource, refer to the man page for that superclass.

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

XmNnavigationType

XmCNavigationType

XmNavigationType

XmTAB_GROUP

CSG

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


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


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 listed below. These translations may not directly correspond to a translation table.

BSelect Press:

SashAction(Start)

BSelect Motion:

SashAction(Move)

BSelect Release:

SashAction(Commit)

BDrag Press:

SashAction(Start)

BDrag Motion:

SashAction(Move)

BDrag Release:

SashAction(Commit)

KUp:

SashAction(Key,DefaultIncr,Up)

MCtrl KUp:

SashAction(Key,LargeIncr,Up)

KDown:

SashAction(Key,DefaultIncr,Down)

MCtrl KDown:

SashAction(Key,LargeIncr,Down)

KNextField:

NextTabGroup()

KPrevField:

PrevTabGroup()

KHelp:

Help()


Action Routines

The XmPanedWindow action routines are described below:

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 or Down.

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 additional behavior described below:

<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(3X).

RELATED INFORMATION

Composite(3X), Constraint(3X), Core(3X), XmCreatePanedWindow(3X), and XmManager(3X).