SgSpringBox(3X)SgSpringBox(3X)NAMESgSpringBox — The SgSpringBox widget class
SYNOPSIS
#include <Sgm/SgSpringBox.h>
VERSION
This page documents the version of Sgm that accompanies Motif 1.2.
DESCRIPTIONSgSpringBox is a container widget with no input semantics of its own.
It arranges its children in a single row or column based on a set of
spring constraints assigned to each child. The SgSpringBox widget
allows layouts similar to those supported by the XmForm widget, but are
usually easier to set up. It is also possible to create some layouts
that cannot be achieved with the XmForm widget. For example, centering
a column of widgets is very easy to do with the SgSpringBox widget, but
nearly impossible using the XmForm.
Each child of an SgSpringBox widget has 6 constraints associated with
it. First, each child has a "springiness" in both the vertical and
horizontal direction that determines how much the child may be resized
in each direction.
The resources XmNverticalSpring and XmNhorizontalSpring control the
degree of "springiness" in each child. A value of zero means the child
cannot be resized in that direction. For non-zero values, the values
are compared to the values of other springs in the overall system to
determine the proportional effects of any resizing. The default value
of both resources is zero.
Each child also has a spring between its left, right, top, and bottom
sides and whatever boundary it is adjacent to. By default, the value of
each of these springs is 50. A value of zero means that the SgSpringBox
widget cannot add additional space adjacent to that part of a widget.
Larger values are considered in relation to all other spring values in
the system.
The behavior of the widget is best seen by example. The following code
places two widget in a single column. With the default resource set‐
tings, this results in both children being centered in the parent, one
above the other.
void createCenteredWidgets(Widget parent)
{
Arg args[2];
Widget springbox, child1, child2;
XtSetArg(args[0], XmNorientation, XmVERTICAL);
springbox = SgCreateSpringBox( parent, "column", args, 1 );
child1 = XmCreatePushButton ( box, "child1", NULL, 0 );
child2 = XmCreatePushButton ( box, "child2", NULL, 0 );
XtManageChild(child1);
XtManageChild(child2);
XtManageChild(springbox);
}
This example creates two widgets in a horizontal row. As the row is
resized, the widget gravitates to the left and right sides of the row.
The leftmost child also hangs from the top of its parent, while the
rightmost widget gravitates to the bottom of its parent.
void createCenteredWidgets(Widget parent) {
Arg args[5];
int n;
Widget springbox, child1, child2;
n = 0;
XtSetArg(args[n], XmNorientation, XmCOLUMN);n++
springbox = SgCreateSpringBox( parent, "column", args, 1 );
n = 0;
XtSetArg(args[n], XmNrightSpring, 0);n++
XtSetArg(args[n], XmNleftSpring, 100);n++
XtSetArg(args[n], XmNbottomSpring, 0);n++
XtSetArg(args[n], XmNtopSpring, 100);n++
child1 = XmCreatePushButton ( box, "child1", args, n);
n = 0;
XtSetArg(args[n], XmNrightSpring, 100);n++
XtSetArg(args[n], XmNleftSpring, 0);n++
XtSetArg(args[n], XmNbottomSpring, 100);n++
XtSetArg(args[n], XmNtopSpring, 0);n++
child2 = XmCreatePushButton ( box, "child2", args, n);
XtManageChild(child1);
XtManageChild(child2);
XtManageChild(springbox); }
Following are some important considerations in using a SgSpringBox:
Unmapping a child has no effect on the SgSpringBox except that
the child is not mapped.
ClassesSgSpringBox inherits behavior and resources from Core, Composite, Con‐
straint, XmManager, and XmBulletinBoard classes.
The class pointer is sgSpringBoxWidgetClass.
The class name is SgSpringBox.
New Resources
The following table defines a set of widget resources used by the pro‐
grammer to specify data. The programmer can also set the resource val‐
ues 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).
SgSpringBox Resource Set
Name Class Type Default Access
───────────────────────────────────────────────────────────────
XmNorientation XmCOrientation int XmHORIZONTAL CG
SgSpringBox Constraint Resource Set
Name Class Type Default Access
──────────────────────────────────────────────────────────
XmNleftSpring XmCSpring int 50 CSG
XmNrightSpring XmCSpring int 50 CSG
XmNtopSpring XmCSpring int 50 CSG
XmNbottomSpring XmCSpring int 50 CSG
XmNverticalSpring XmCSpring int 0 CSG
XmNhorizontalSpring XmCSpring int 0 CSG
XmNleftSpring
Determines the stretchability of the space adjacent to the left
side of the widget. The larger the value, the more this space
can be resized relative to other "springs" contained in the
SgSpringBox widget.
XmNrightSpring
Determines the stretchability of the space adjacent to the right side
of the widget. The larger the value, the more this space can be resized
relative to other "springs" contained in the SgSpringBox widget.
XmNtopSpring
Determines the stretchability of the space adjacent to the top side of
the widget. The larger the value, the more this space can be resized
relative to other "springs" contained in the SgSpringBox widget.
XmNbottomSpring
Determines the stretchability of the space adjacent to the bottom side
of the widget. The larger the value, the more this space can be resized
relative to other "springs" contained in the SgSpringBox widget.
XmNverticalSpring
Determines the stretchability of the widget in the vertical direction.
The larger the value, the more this space can be resized relative to
other "springs" contained in the SgSpringBox widget.
XmNhorizontalSpring
Determines the stretchability of the widget in the horizontal direc‐
tion. The larger the value, the more this space can be resized rela‐
tive to other "springs" contained in the SgSpringBox widget.
Inherited ResourcesSgSpringBox inherits behavior and resources from the following super‐
classes. For a complete description of each resource, refer to the man
page for that superclass.
XmBulletinBoard Resource Set
Name Class Type Default Access
──────────────────────────────────────────────────────────────────────────────────
XmNallowOverlap XmCAllowOverlap Boolean True CSG
XmNautoUnmanage XmCAutoUnmanage Boolean True CG
XmNbuttonFontList XmCButtonFontList XmFontList dynamic CSG
XmNcancelButton XmCWidget Widget NULL SG
XmNdefaultButton XmCWidget Widget NULL SG
XmNdefaultPosition XmCDefaultPosition Boolean True CSG
XmNdialogStyle XmCDialogStyle unsigned char dynamic CSG
XmNdialogTitle XmCDialogTitle XmString NULL CSG
XmNfocusCallback XmCCallback XtCallbackList NULL C
XmNlabelFontList XmCLabelFontList XmFontList dynamic CSG
XmNmapCallback XmCCallback XtCallbackList NULL C
XmNmarginHeight XmCMarginHeight Dimension 0 CSG
XmNmarginWidth XmCMarginWidth Dimension 0 CSG
XmNnoResize XmCNoResize Boolean False CSG
XmNresizePolicy XmCResizePolicy unsigned char XmRESIZE_ANY CSG
XmNshadowType XmCShadowType unsigned char XmSHADOW_OUT CSG
XmNtextFontList XmCTextFontList XmFontList dynamic CSG
XmNtextTranslations XmCTranslations XtTranslations NULL C
XmNunmapCallback XmCCallback XtCallbackList NULL C
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 dynamic CSG
XmNnavigationType XmCNavigationType XmNavigationType XmTAB_GROUP CSG
XmNshadowThickness XmCShadowThickness Dimension dynamic CSG
XmNstringDirection XmCStringDirection XmStringDirection dynamic CG
XmNtopShadowColor XmCBackgroundTopShadowColor Pixel dynamic CSG
XmNtopShadowPixmap XmCTopShadowPixmap Pixmap dynamic CSG
XmNtraversalOn XmCTraversalOn Boolean True CSG
XmNunitType XmCUnitType unsigned char dynamic CSG
XmNuserData XmCUserData Pointer NULL CSG
Composite Resource Set
Name Class Type Default Access
───────────────────────────────────────────────────────────────────────
XmNchildren XmCReadOnly WidgetList NULL G
XmNinsertPosition XmCInsertPosition XtOrderProc NULL CSG
XmNnumChildren XmCReadOnly Cardinal 0 G
Core Resource Set
Name Class Type Default Access
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
XmNaccelerators XmCAccelerators XtAccelerators dynamic N/A
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
Translations
qSgSpringBox inherits translations from XmBulletinBoard.
RELATED INFORMATIONComposite(3X), Constraint(3X), Core(3X), XmBulletinBoard(3X), SgCreate‐
Grid, SgCreateGridDialog(3X), and XmManager(3X).
SgSpringBox(3X)