Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmManager(Xm) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 XmManager(Xm)                  6 January 1993                  XmManager(Xm)


 Name

    XmManager - the Manager widget class

 Syntax


    #include <Xm/Xm.h>


 Description

    Manager is a widget class used as a supporting superclass for other
    widget classes. It supports the visual resources, graphics contexts, and
    traversal resources necessary for the graphics and traversal mechanisms.

    Classes

    Manager inherits behavior and resources from Core, Composite, and Con-
    straint classes.

    The class pointer is xmManagerWidgetClass.

    The class name is XmManager.

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

 XmManager resource set

 ____________________________________________________________________________
 Name               Class              Type               Default      Access
 ____________________________________________________________________________
 XmNbottomShadow-   XmCBottomShadow-   Pixel              dynamic      CSG
 Color              Color
 XmNbottomShadow-   XmCBottomShadow-   Pixmap             XmUNSPEC-    CSG
 Pixmap             Pixmap                                IFIED_PIXMAP
 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          0            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


    XmNbottomShadowColor
            Specifies the color to use to draw the bottom and right sides of
            the border shadow. This color is used if the XmNbottomShadow-
            Pixmap resource is NULL.

    XmNbottomShadowPixmap
            Specifies the pixmap to use to draw the bottom and right sides of
            the border shadow.

    XmNforeground
            Specifies the foreground drawing color used by manager widgets.

    XmNhelpCallback
            Specifies the list of callbacks that are called when the help key
            sequence is pressed. The reason sent by this callback is
            XmCRHELP.

    XmNhighlightColor
            Specifies the color of the highlighting rectangle.  This color is
            used if the highlight pixmap resource is XmUNSPECIFIEDPIXMAP.

    XmNhighlightPixmap
            Specifies the pixmap used to draw the highlighting rectangle.

    XmNinitialFocus
            Specifies the ID of a widget descendant of the manager.  The
            widget must meet these conditions:

            +  The widget must be either a tab group or a non-tab-group
               widget that can receive keyboard focus.  For the definition of
               a tab group, see the description of the Manager, Primitive,
               and Gadget XmNnavigationType resources.  In general a widget
               can receive keyboard focus when it is a primitive, a gadget,
               or a manager (such as a DrawingArea with no traversable chil-
               dren) that acts as a primitive.

            +  The widget must not be a descendant of a tab group that is
               itself a descendant of the manager.  That is, the widget can-
               not be contained within a tab group that is nested inside the
               manager.

            +  The widget and its ancestors must have a value of True for
               their XmNtraversalOn resources.

            If the widget does not meet these conditions, XmNinitialFocus is
            treated as if the value were NULL.

            This resource is meaningful only when the nearest shell
            ancestor's XmNkeyboardFocusPolicy is XmEXPLICIT.  It is used to
            determine which widget receives focus in these situations:

            +  When the manager is the child of a shell and the shell hierar-
               chy receives focus for the first time

            +  When focus is inside the shell hierarchy, the manager is a
               composite tab group, and the user traverses to the manager via
               the keyboard

            Focus is then determined as follows:

            +  If XmNinitialFocus is a traversable non-tab-group widget, that
               widget receives focus.

            +  If XmNinitialFocus is a traversable tab group, that tab group
               receives focus.  If that tab group is a composite with descen-
               dant tab groups or traversable non-tab-group widgets, these
               procedures are used recursively to assign focus to a descen-
               dant of that tab group.

            +  If XmNinitialFocus is NULL, the first traversable non-tab-
               group widget that is not contained within a nested tab group
               receives focus.

            +  If XmNinitialFocus is NULL and no traversable non-tab-group
               widget exists, the first traversable tab group that is not
               contained within a nested tab group receives focus.  If that
               tab group is a composite with descendant tab groups or
               traversable non-tab-group widgets, these procedures are used
               recursively to assign focus to a descendant of that tab group.

            If a shell hierarchy regains focus after losing it, focus returns
            to the widget that had the focus at the time it left the hierar-
            chy.

            The use of XmNinitialFocus is undefined if the manager is a Menu-
            Bar, PulldownMenu, PopupMenu, or OptionMenu.

    XmNnavigationType
            Determines whether the widget is a tab group.

            +  XmNONE indicates that the widget is not a tab group.

            +  XmTABGROUP indicates that the widget is a tab group, unless
               another widget in the hierarchy has an XmNnavigationType of
               XmEXCLUSIVETABGROUP.

            +  XmSTICKYTABGROUP indicates that the widget is a tab group,
               even if another widget in the hierarchy has an XmNnavigation-
               Type of XmEXCLUSIVETABGROUP.

            +  XmEXCLUSIVETABGROUP indicates that the widget is a tab group
               and that widgets in the hierarchy whose XmNnavigationType is
               XmTABGROUP are not tab groups.

            When a parent widget has an XmNnavigationType of
            XmEXCLUSIVETABGROUP, traversal of non-tab-group widgets within
            the group is based on the order of those widgets in their
            parent's XmNchildren list.

            When any widget in a hierarchy has an XmNnavigationType of
            XmEXCLUSIVETABGROUP, traversal of tab groups in the hierarchy
            proceeds to widgets in the order in which their XmNnavigationType
            resources were specified as XmEXCLUSIVETABGROUP or XmSTICKY-
            TABGROUP, whether by creating the widgets with that value, by
            calling XtSetValues, or by calling XmAddTabGroup.

    XmNshadowThickness
            Specifies the thickness of the drawn border shadow.  XmBulletin-
            Board and its descendants set this value dynamically.  If the
            widget is a top level window, this value is set to 1.  If it is
            not a top level window, this value is set to 0.

    XmNstringDirection
            Specifies the initial direction to draw strings. The values are
            XmSTRINGDIRECTIONLTOR and XmSTRINGDIRECTIONRTOL.  The
            value of this resource is determined at creation time. If the
            widget's parent is a manager, this value is inherited from the
            widget's parent, otherwise it is set to XmSTRINGDIRECTION-
            LTOR.

    XmNtopShadowColor
            Specifies the color to use to draw the top and left sides of the
            border shadow.  This color is used if the XmNtopShadowPixmap
            resource is NULL.

    XmNtopShadowPixmap
            Specifies the pixmap to use to draw the top and left sides of the
            border shadow.

    XmNtraversalOn
            Specifies whether traversal is activated for this widget.

    XmNunitType
            Provides the basic support for resolution independence.  It
            defines the type of units a widget uses with sizing and position-
            ing resources.  If the widget's parent is a subclass of XmManager
            and if the XmNunitType resource is not explicitly set, it
            defaults to the unit type of the parent widget.  If the widget's
            parent is not a subclass of XmManager, the resource has a default
            unit type of XmPIXELS.

            XmNunitType can have the following values:

            +  XmPIXELS -- all values provided to the widget are treated as
               normal pixel values.

            +  Xm100THMILLIMETERS -- all values provided to the widget are
               treated as 1/100 millimeter.

            +  Xm1000THINCHES -- all values provided to the widget are
               treated as 1/1000 inch.

            +  Xm100THPOINTS -- all values provided to the widget are
               treated as 1/100 point. A point is a unit used in text pro-
               cessing applications and is defined as 1/72 inch.

            +  Xm100THFONTUNITS -- all values provided to the widget are
               treated as 1/100 of a font unit.  A font unit has horizontal
               and vertical components.  These are the values of the XmScreen
               resources XmNhorizontalFontUnit and XmNverticalFontUnit.

    XmNuserData
            Allows the application to attach any necessary specific data to
            the widget. This is an internally unused resource.

    Dynamic color defaults

    The foreground, background, top shadow, bottom shadow, and highlight
    color resources are dynamically defaulted.  If no color data is speci-
    fied, the colors are automatically generated. On a single-plane system, a
    black and white color scheme is generated. Otherwise, four colors are
    generated, which display the correct shading for the 3-D visuals.  If the
    background is the only color specified for a widget, the top shadow and
    bottom shadow colors are generated to give the 3-D appearance.  Fore-
    ground and highlight colors are generated to provide sufficient contrast
    with the background color.

    Colors are generated only at creation. Resetting the background through
    XtSetValues does not regenerate the other colors.  XmChangeColor can be
    used to recalculate all associated colors based on a new background
    color.

    Inherited resources

    Manager inherits the following resources from the named superclasses. For
    a complete description of each resource, refer to the man page for that
    superclass.

 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    XtAcceleratorsdynamic            CSG
 XmNancestorSensitiveXmCSensitive       Boolean       dynamic            G
 XmNbackground       XmCBackground      Pixel         dynamic            CSG
 XmNbackground-      XmCPixmap          Pixmap        XmUNSPEC-          CSG
 Pixmap                                               IFIED_PIXMAP
 XmNborderColor      XmCBorderColor     Pixel         XtDefaultForegroundCSG
 XmNborderPixmap     XmCPixmap          Pixmap        XmUNSPEC-          CSG
                                                      IFIED_PIXMAP
 XmNborderWidth      XmCBorderWidth     Dimension     0                  CSG
 XmNcolormap         XmCColormap        Colormap      dynamic            CG
 XmNdepth            XmCDepth           int           dynamic            CG
 XmNdestroyCallback  XmCCallback        XtCallbackListNULL               C
 XmNheight           XmCHeight          Dimension     dynamic            CSG
 XmNinitial-         XmCInitial-        Boolean       True               C
 ResourcesPersistent ResourcesPersistent
 XmNmappedWhen-      XmCMappedWhen-     Boolean       True               CSG
 Managed             Managed
 XmNscreen           XmCScreen          Screen *      dynamic            CG
 XmNsensitive        XmCSensitive       Boolean       True               CSG
 XmNtranslations     XmCTranslations    XtTranslationsdynamic            CSG
 XmNwidth            XmCWidth           Dimension     dynamic            CSG
 XmNx                XmCPosition        Position      0                  CSG
 XmNy                XmCPosition        Position      0                  CSG

    Callback information

    A pointer to the following structure is passed to each callback:

       typedef struct
       {
           int reason;
           XEvent      * event;
       } XmAnyCallbackStruct;


    reason  Indicates why the callback was invoked.  For this callback, rea-
            son is set to XmCRHELP.

    event   Points to the XEvent that triggered the callback.

    Translations

    The following set of translations are used by Manager widgets that have
    Gadget children. Since Gadgets cannot have translations associated with
    them, it is the responsibility of the Manager widget to intercept the
    events of interest and pass them to any Gadget child with focus.  These
    events are ignored if no Gadget child has the focus.  These translations
    may not directly correspond to a translation table.

       BAny Motion:        ManagerGadgetButtonMotion()
       BSelect Press:      ManagerGadgetArm()
       BSelect Click:      ManagerGadgetActivate()
       BSelect Release:    ManagerGadgetActivate()
       BSelect Press 2+:   ManagerGadgetMultiArm()
       BSelect Release 2+: ManagerGadgetMultiActivate()
       BDrag Press:        ManagerGadgetDrag()

       KSelect:            ManagerGadgetSelect()
       KActivate:          ManagerParentActivate()

       KCancel:            ManagerParentCancel()

       KPrevField:         ManagerGadgetPrevTabGroup()
       KNextField:         ManagerGadgetNextTabGroup()

       KUp:                ManagerGadgetTraverseUp()
       KDown:              ManagerGadgetTraverseDown()
       KLeft:              ManagerGadgetTraverseLeft()
       KRight:             ManagerGadgetTraverseRight()

       KBeginLine:         ManagerGadgetTraverseHome()

       KHelp:              ManagerGadgetHelp()

       KAny:               ManagerGadgetKeyInput()


    Action routines

    The XmManager action routines are described below:

    ManagerGadgetActivate():
            Causes the current gadget to be activated.

    ManagerGadgetArm():
            Causes the current gadget to be armed.

    ManagerGadgetButtonMotion():
            Causes the current gadget to process a mouse motion event.

    ManagerGadgetDrag():
            Drags the contents of a gadget label, identified by pressing
            BDrag. This action creates a DragContext object whose XmNexport-
            Targets resource is set to COMPOUNDTEXT for a label type of
            XmSTRING; otherwise, PIXMAP if the label type is XmPIXMAP. This
            action is undefined for gadgets used in a menu system.

    ManagerGadgetHelp():
            Calls the callbacks for the current gadget's 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.

    ManagerGadgetKeyInput():
            Causes the current gadget to process a keyboard event.

    ManagerGadgetMultiActivate():
            Causes the current gadget to process a multiple mouse click.

    ManagerGadgetMultiArm():
            Causes the current gadget to process a multiple mouse button
            press.

    ManagerGadgetNextTabGroup():
            Traverses to the first item in the next tab group. If the current
            tab group is the last entry in the tab group list, it wraps to
            the beginning of the tab group list.

    ManagerGadgetPrevTabGroup():
            Traverses to the first item in the previous tab group.  If the
            beginning of the tab group list is reached, it wraps to the end
            of the tab group list.

    ManagerGadgetSelect():
            Causes the current gadget to be armed and activated.

    ManagerGadgetTraverseDown():
            Traverses to the next item below the current gadget in the
            current tab group, wrapping if necessary.

    ManagerGadgetTraverseHome():
            Traverses to the first widget or gadget in the current tab group.

    ManagerGadgetTraverseLeft():
            Traverses to the next item to the left of the current gadget in
            the current tab group, wrapping if necessary.

    ManagerGadgetTraverseNext():
            Traverses to the next item in the current tab group, wrapping if
            necessary.

    ManagerGadgetTraversePrev():
            Traverses to the previous item in the current tab group, wrapping
            if necessary.

    ManagerGadgetTraverseRight():
            Traverses to the next item to the right of the current gadget in
            the current tab group, wrapping if necessary.

    ManagerGadgetTraverseUp():
            Traverses to the next item above the current gadget in the
            current tab group, wrapping if necessary.

    ManagerParentActivate():
            If the parent is a manager, passes the KActivate event received
            by the current widget/gadget to its parent.

    ManagerParentCancel():
            If the parent is a manager, passes the KCancel event received by
            the current widget/gadget to its parent.

    Additional behavior

    This widget has the additional behavior described below:

    <FocusIn>:
            If the shell's keyboard focus policy is XmEXPLICIT and the event
            occurs in a gadget, causes the gadget to be highlighted and to
            take the focus.

    <FocusOut>:
            If the shell's keyboard focus policy is XmEXPLICIT and the event
            occurs in a gadget, causes the gadget to be unhighlighted and to
            lose the focus.

    Virtual bindings

    The bindings for virtual keys are vendor specific.  For information about
    bindings for virtual buttons and keys, see VirtualBindings(Xm).

 See also

    Composite(Xm), Constraint(Xm), Core(Xm), XmChangeColor(Xm), XmGadget(Xm)
    and XmScreen(Xm).


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