Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

CORE(3X)

XWMANAGER(3X)

XWPRIMITIVE(3X)

XWSASH(3X)

XWVPANED(3Xh)  —  Stardent Computer Inc.

NAME

XwvPanedWidgetClass − the X Widgets vertical paned manager widget. 

SYNOPSIS

#include <X11/StringDefs.h>
#include <X11/Intrinsic.h>
#include <Xw/Xw.h>
#include <Xw/VPW.h>

CLASSES

The vertical paned manager widget is built out of the Core, Composite, Constraint and XwManager classes. Note that since the Composite class contains no user settable resources, there is no table for Composite class resources. 

The widget class to use when creating a vertical paned manager is XwvPanedWidgetClass.  The class name is VPanedWindow. 

DESCRIPTION

The vertical paned manager is a composite widget which lays children out in a vertically tiled format.  Children appear in a top to bottom fashion, with the first child inserted appearing at the top of the paned widget and the last child inserted appearing at the bottom of the paned widget.  The vertical paned manager will grow to match the width of its widest child and all other children are forced to this width.  The vertical paned mananger does not grow if setValues is performed on a child, making it the widest child.  It is clipped instead.  The height of the vertical paned manager will be equal to the sum of the heights of all its children and the (optional) padding surrounding them. 

It is also possible for the end user to adjust the size of the panes. To facilitate this adjustment, a control widget (XwsashWidgetClass) is created for most children.  The control widget appears as a square box positioned on the bottom of the pane which it controls.  Using the mouse (see the description on translations below) a user can adjust the size of a pane. 

The vertical paned manager is a constraint widget, which means that it creates and manages a set of constraints for each child.  It is possible to specify a minimum and maximum size for each pane.  The vertical paned widget will not allow a pane to be adjusted below its minimum nor beyond its maximum.  Also, when the minimum size of a pane is equal to its maximum then no control widget will be presented for that pane.  Nor will a control widget be presented for the bottom-most pane. 

The vertical paned manager supports 2 presentation modes: framed and unframed.  When framed, each pane is offset from the edges of the vertical paned manager and from other panes by a specified (and settable) number of pixels.  In this mode the entire borderwidth of each child is also visible.  Note that the vertical paned manager enforces a particular (and settable) border width on each pane.  The second mode is unframed where the edge of a pane exactly corresponds to the edge of the vertical paned manager so that only a border between panes is visible. 

No callbacks are defined for this manager. 

NEW RESOURCES

The vertical paned manager defines a set of resource types used by the programmer to specify data for the manager widget.  The programmer can also set the values for the Core and XwManager widget classes to set attributes for this widget.  The following table contains the settable resources defined by the vertical paned manager.  Recall that the string to be used when setting any of these resources in an application defaults file (like .Xdefaults) can be obtained by stripping the preface "XtN" off of the resource name.  For instance, XtNmin becomes min.   

Vertical Paned Resource Set
Name Class Type Default
XtNsashIndent XtCSashIndent int -10
XtNborderFrame XtCBorderWidth int 1
XtNframed XtCBoolean Boolean TRUE
XtNpadding XtCPadding int 3
XtNrefigureMode XtCBoolean Boolean TRUE

XtNsashIndent
This controls where along the bottom of the pane the control widget (the pane’s sash) will be placed.  A positive number will cause the sash to be offset from the left side of the pane, a negative number will cause the sash to be offset from the right side of the pane.  If the offset specified is greater than the width of the vertical paned manager, minus the width of the sash, the sash will be placed flush against the left hand side of the paned manager.

XtNborderFrame
The application can specify the thickness of the borderwidth of all panes in the paned manager.  The value must be greater than or equal to 0.

XtNframed
The application can specify whether the panes should be displayed with some padding surrounding each pane (TRUE) or whether the panes should be set flush with the paned manager (FALSE).

XtNpadding
The application can specify how many pixels of padding should surround each pane when it is being displayed in framed mode.  This value must be greater than or equal to 0.

XtNrefigureMode
This setting is useful if a large number of programmatic manipulations are taking place.  It will prevent the manager from recomputing and displaying new positions for the child panes (FALSE).  Once the changes have been executed this flag should be set to TRUE to allow the vertical paned manager to show the correct positions of the current children.

CONSTRAINT RESOURCES

The following resources are attached to every widget inserted into vertical paned manager.  See CONSTRAINT(3X) for a general discussion of constraint resources.   

Constraint Resource Set -- Children of VPANEDWINDOW(3X)
Name Class Type Default
XtNmin XtCMin int 1
XtNmax XtCMax int 10000
XtNallowResize XtCBoolean Boolean FALSE
XtNskipAdjust XtCBoolean Boolean FALSE

XtNmin
Allows an application to specify the mimimum size to which a pane may be resized.  This value must be greater than 0.

XtNmax
Allows an application to specify the maximum size to which a pane may be resized.  This value must be greater than the specified minimum.

XtNallowResize
Allows an application to specify whether the vertical paned manager should allow a pane to request to be resized.  This flag only has an effect after the paned manager and its children have been realized.  If this flag is set to TRUE, the manager will try to honor requests to alter the height of the pane. If false, it will always deny pane requests to resize.

XtNskipAdjust
Allows an application to specify that the vertical paned manager should not automatically resize this pane (flag set to TRUE).

INHERITED RESOURCES

The following resources are inherited from the named superclasses:
 

Core Resource Set -- CORE(3X)
Name Class Type Default
XtNancestorSensitive XtCSenstitive Boolean TRUE
XtNx XtCPosition int 0
XtNy XtCPosition int 0
XtNwidth XtCWidth int 0
XtNheight XtCHeight int 0
XtNdepth XtCDepth int 0
XtNbackground XtCBackground Pixel White
XtNbackgroundPixmap XtCPixmap Pixmap Unspecified
XtNborderWidth XtCBorderWidth int 1
XtNborderColor XtCBorderColor Pixel Black
XtNborderPixmap XtCPixmap Pixmap Unspecified
XtNsensitive XtCSensitive Boolean TRUE
XtNmappedWhenManaged XtCMappedWhenManaged Boolean TRUE
XtNdestroyCallback XtCCallback Pointer NULL
XtNtranslations XtCTranslations XtTranslations NULL

 
 

Manager Resource Set -- XWMANAGER(3X)
Name Class Type Default
XtNforeground XtCForeground Pixel Black
XtNbackgroundTile XtCBackgroundTile int background
XtNtraversalOn XtCTraversalOn Boolean FALSE
XtNlayout XtCLayout int minimize
XtNnextTop XtCCallback Pointer NULL

KEYBOARD TRAVERSAL

If the XtNtraversalOn resource is set to TRUE at either create time or during a call to XtSetValues, the XwManager superclass will automatically augment the manager widget’s translations to support keyboard traversal.  Refer to the XwManager man page for a complete description of these translations. 

SASH TRANSLATIONS

The translations which control the sashes created for each adjustable pane are replicated here for convenience.   

<Btn1Down>: SashAction(Start, UpperPane)
<Btn2Down>: SashAction(Start, ThisBorderOnly)
<Btn3Down>: SashAction(Start, LowerPane)
<Btn1Motion>: SashAction(Move, Upper)
<Btn2Motion>: SashAction(Move, ThisBorder)
<Btn3Motion>: SashAction(Move, Lower)
Any<BtnUp>: SashAction(Commit)
<EnterWindow>: enter()
<LeaveWindow>: leave()

SashAction(Start, UpperPane):
Change the cursor from the crosshair to an upward pointing arrow. Determine the upper pane which will be adjusted (usually the pane to which the sash is attached).

SashAction(Start, ThisBorderOnly):
Change the cursor from the crosshair to a double headed arrow. The panes that will be adjusted are the pane to which the sash is attached and the first pane below it that can be adjusted. Unlike the UpperPane and LowerPane mode, only 2 panes will be effected.  If one of the panes reaches its minimum or maximum, adjustment will stop, instead of finding the next adjustable pane.

SashAction(Start, LowerPane):
Change the cursor from the crosshair to a downward pointing arrow. Determine the lower pane which will be adjusted (usually the pane below the pane to which the sash is attached).

SashAction(Move, Upper):
Draw a series of track lines to illustrate what the heights of the panes would be if the Commit action were invoked.  Determine which widget below the upper pane can be adjusted and make the appropriate adjustments.

SashAction(Move, ThisBorder):
Draw a series of track lines to illustrate what the heights of the panes would be if the Commit action were invoked.  Adjust as needed (and as possible) the upper and lower panes selected when the SashAction(Start, ThisBorderOnly) action was invoked.

SashAction(Move, Lower):
Draw a series of track lines to illustrate what the heights of the panes would be if the Commit action were invoked.  Determine which widget above the lower pane can be adjusted and make the appropriate adjustments.

enter:Enter window events occurring on the scrolled window are handled by this action. 

leave:Leave window events occurring on the scrolled window are handled by this action. 
 

ORIGIN

Hewlett-Packard Company. 

SEE ALSO

CORE(3X), XWMANAGER(3X), XWPRIMITIVE(3X), XWSASH(3X)

September 29, 2021

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026