SgSpringBox(3X)

SgSpringBox --The SgSpringBox widget class

As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.22.

NAME
     SgSpringBox --The SgSpringBox widget class

SYNOPSIS
     #include <Sgm/SgSpringBox.h>


VERSION
     This page documents the version of Sgm that accompanies Motif 1.2.

DESCRIPTION
     SgSpringBox  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 Xm-
     Form.

     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 direc-
     tion.

     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 propor-
     tional 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 can-
     not 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  settings,
     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  re-
     sized,  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.

Classes
     SgSpringBox 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 program-
     mer 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 re-
     maining letters (in either lowercase or uppercase, but include  any  under-
     scores  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 re-
            sized relative to other "springs" contained in the SgSpringBox  wid-
            get.

   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  rela-
     tive 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  rela-
     tive 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  direction.
     The  larger the value, the more this space can be resized relative to other
     "springs" contained in the  SgSpringBox widget.

Inherited Resources
     SgSpringBox 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 INFORMATION
     Composite(3X), Constraint(3X), Core(3X), XmBulletinBoard(3X), SgCreateGrid,
     SgCreateGridDialog(3X), and XmManager(3X).

                                                                 SgSpringBox(3X)