Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmLabGadg(Xm) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 XmLabelGadget(Xm)              6 January 1993              XmLabelGadget(Xm)


 Name

    XmLabelGadget - the LabelGadget widget class

 Syntax


    #include <Xm/LabelG.h>


 Description

    LabelGadget is an instantiable widget and is also used as a superclass
    for other button gadgets, such as PushButtonGadget and ToggleBut-
    tonGadget.

    LabelGadget can contain either text or a pixmap. LabelGadget text is a
    compound string.  Refer to the OSF/Motif Programmer's Guide for more in-
    formation on compound strings.  The text can be multilingual, multiline,
    and/or multifont. When a LabelGadget is insensitive, its text is stip-
    pled, or the user-supplied insensitive pixmap is displayed.

    LabelGadget supports both accelerators and mnemonics primarily for use in
    LabelGadget subclass widgets that are contained in menus. Mnemonics are
    available in a menu system when the button is visible. Accelerators in a
    menu system are accessible even when the button is not visible.  The
    LabelGadget displays the mnemonic by underlining the first matching char-
    acter in the text string. The accelerator is displayed as a text string
    adjacent to the label text or pixmap.

    LabelGadget consists of many margin fields surrounding the text or pix-
    map.  These margin fields are resources that may be set by the user, but
    LabelGadget subclasses and Manager parents also modify some of these
    fields. They tend to modify the XmNmarginLeft, XmNmarginRight, XmNmargin-
    Top, and XmNmarginBottom resources and leave the XmNmarginWidth and
    XmNmarginHeight resources as set by the application.

    LabelGadget takes into account XmNshadowThickness in determining its lay-
    out but does not draw the shadow.  That is, if XmNshadowThickness is
    greater than 0, LabelGadget leaves space for the shadow, but the shadow
    does not appear.

    In a LabelGadget XmNtraversalOn and XmNhighlightOnEnter are forced to
    False inside Popup MenuPanes, Pulldown MenuPanes, and OptionMenus.  Oth-
    erwise these resources default to False.

    Classes

    LabelGadget inherits behavior and resources from Object, RectObj and
    XmGadget classes.

    The class pointer is xmLabelGadgetClass.

    The class name is XmLabelGadget.

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

 XmLabelGadget resource set

 ____________________________________________________________________________
 Name              Class              Type             Default         Access
 ____________________________________________________________________________
 XmNaccelerator    XmCAccelerator     String           NULL            CSG
 XmNacceleratorTextXmCAcceleratorText XmString         NULL            CSG
 XmNalignment      XmCAlignment       unsigned char    dynamic         CSG
 XmNfontList       XmCFontList        XmFontList       dynamic         CSG
 XmNlabel-         XmCLabel-          Pixmap           XmUNSPECIFIED_- CSG
 InsensitivePixmap InsensitivePixmap                   PIXMAP
 XmNlabelPixmap    XmCLabelPixmap     Pixmap           XmUNSPECIFIED_- CSG
                                                       PIXMAP
 XmNlabelString    XmCXmString        XmString         dynamic         CSG
 XmNlabelType      XmCLabelType       unsigned char    XmSTRING        CSG
 XmNmarginBottom   XmCMarginBottom    Dimension        0               CSG
 XmNmarginHeight   XmCMarginHeight    Dimension        2               CSG
 XmNmarginLeft     XmCMarginLeft      Dimension        0               CSG
 XmNmarginRight    XmCMarginRight     Dimension        0               CSG
 XmNmarginTop      XmCMarginTop       Dimension        0               CSG
 XmNmarginWidth    XmCMarginWidth     Dimension        2               CSG
 XmNmnemonic       XmCMnemonic        KeySym           NULL            CSG
 XmNmnemonicCharSetXmCMnemonicCharSet String           dynamic         CSG
 XmNrecomputeSize  XmCRecomputeSize   Boolean          True            CSG
 XmNstringDirectionXmCStringDirection XmStringDirectiondynamic         CSG


    XmNaccelerator
            Sets the accelerator on a button widget in a menu, which
            activates a visible or invisible, but managed, button from the
            keyboard.  This resource is a string that describes a set of
            modifiers and the key that may be used to select the button.  The
            format of this string is identical to that used by the transla-
            tions manager, with the exception that only a single event may be
            specified and only KeyPress events are allowed.

            Accelerators for buttons are supported only for PushButtonGadgets
            and ToggleButtonGadgets in Pulldown and Popup menus.

    XmNacceleratorText
            Specifies the text displayed for the accelerator.  The text is
            displayed adjacent to the label string or pixmap.  Accelerator
            text for buttons is displayed only for PushButtonGadgets and
            ToggleButtonGadgets in Pulldown and Popup Menus.

    XmNalignment
            Specifies the label alignment for text or pixmap.

            +  XmALIGNMENTBEGINNING (left alignment) -- causes the left
               sides of the lines of text to be vertically aligned with the
               left edge of the gadget. For a pixmap, its left side is verti-
               cally aligned with the left edge of the gadget.

            +  XmALIGNMENTCENTER (center alignment) -- causes the centers of
               the lines of text to be vertically aligned in the center of
               the gadget. For a pixmap, its center is vertically aligned
               with the center of the gadget.

            +  XmALIGNMENTEND (right alignment) -- causes the right sides of
               the lines of text to be vertically aligned with the right edge
               of the gadget. For a pixmap, its right side is vertically
               aligned with the right edge of the gadget.

            The above descriptions for text are correct when XmNstringDirec-
            tion is XmSTRINGDIRECTIONLTOR; the descriptions for
            XmALIGNMENTBEGINNING and XmALIGNMENTEND are switched when the
            resource is XmSTRINGDIRECTIONRTOL.

            If the parent is a RowColumn whose XmNisAligned resource is True,
            XmNalignment is forced to the same value as the RowColumn's
            XmNentryAlignment if the RowColumn's XmNrowColumnType is
            XmWORKAREA or if the gadget is a subclass of XmLabelGadget.
            Otherwise, the default is XmALIGNMENTCENTER.

    XmNfontList
            Specifies the font of the text used in the gadget. If this value
            is NULL at initialization, the font list is initialized by look-
            ing up the parent hierarchy of the widget for an ancestor that is
            a subclass of the XmBulletinBoard, VendorShell, or XmMenuShell
            widget class. If such an ancestor is found, the font list is ini-
            tialized to the XmNbuttonFontList (for button gadget subclasses)
            or XmNlabelFontList of the ancestor widget. If no such ancestor
            is found, the default is implementation dependent. Refer to
            XmFontList(Xm) for more information on the creation and structure
            of a font list.

    XmNlabelInsensitivePixmap
            Specifies a pixmap used as the button face if XmNlabelType is
            XmPIXMAP and the button is insensitive.  The default value,
            XmUNSPECIFIEDPIXMAP, displays an empty label.

    XmNlabelPixmap
            Specifies the pixmap when XmNlabelType is XmPIXMAP.  The default
            value, XmUNSPECIFIEDPIXMAP, displays an empty label.

    XmNlabelString
            Specifies the compound string when XmNlabelType is XmSTRING.  If
            this value is NULL, it is initialized by converting the name of
            the gadget to a compound string.  Refer to XmString(Xm) for more
            information on the creation and the structure of compound
            strings.

    XmNlabelType
            Specifies the label type.

            +  XmSTRING -- text displays XmNlabelString

            +  XmPIXMAP -- icon data in pixmap displays XmNlabelPixmap or
               XmNlabelInsensitivePixmap

    XmNmarginBottom
            Specifies the amount of spacing between the bottom of the label
            text and the top of the bottom margin specified by XmNmargin-
            Height.  This may be modified by LabelGadget's subclasses.  For
            example, CascadeButtonGadget may increase this field to make room
            for the cascade pixmap.

    XmNmarginHeight
            Specifies an equal amount of spacing above the margin defined by
            XmNmarginTop and below the margin defined by XmNmarginBottom.
            XmNmarginHeight specifies the amount of spacing between the top
            edge of the margin set by XmNmarginTop and the bottom edge of the
            top shadow, and the amount of spacing between the bottom edge of
            the margin specified by XmNmarginBottom and the top edge of the
            bottom shadow.

    XmNmarginLeft
            Specifies the amount of spacing between the left edge of the
            label text and the right side of the left margin (specified by
            XmNmarginWidth).  This may be modified by LabelGadget's subc-
            lasses.  For example, ToggleButtonGadget may increase this field
            to make room for the toggle indicator and for spacing between the
            indicator and label.  Whether this actually applies to the left
            or right side of the label may depend on the value of XmNstring-
            Direction.

    XmNmarginRight
            Specifies the amount of spacing between the right edge of the
            label text and the left side of the right margin (specified by
            XmNmarginWidth).  This may be modified by LabelGadget's subc-
            lasses.  For example, CascadeButtonGadget may increase this field
            to make room for the cascade pixmap.  Whether this actually
            applies to the left or right side of the label may depend on the
            value of XmNstringDirection.

    XmNmarginTop
            Specifies the amount of spacing between the top of the label text
            and the bottom of the top margin specified by XmNmarginHeight.
            This may be modified by LabelGadget's subclasses.  For example,
            CascadeButtonGadget may increase this field to make room for the
            cascade pixmap.

    XmNmarginWidth
            Specifies an equal amount of spacing to the left of the margin
            defined by XmNmarginLeft and to the right of the margin defined
            by XmNmarginRight. XmNmarginWidth specifies the amount of spacing
            between the left edge of the margin set by XmNmarginLeft and the
            right edge of the left shadow, and the amount of spacing between
            the right edge of the margin specified by XmNmarginRight and the
            left edge of the right shadow.

    XmNmnemonic
            Provides the user with an alternate means of activating a button.
            A button in a MenuBar, a Popup MenuPane, or a Pulldown MenuPane
            can have a mnemonic.

            This resource contains a keysym as listed in the X11 keysym
            table.  The first character in the label string that exactly
            matches the mnemonic in the character set specified in
            XmNmnemonicCharSet is underlined when the button is displayed.

            When a mnemonic has been specified, the user activates the button
            by pressing the mnemonic key while the button is visible.  If the
            button is a CascadeButtonGadget in a MenuBar and the MenuBar does
            not have the focus, the user must use the MAlt modifier while
            pressing the mnemonic.  The user can activate the button by
            pressing either the shifted or the unshifted mnemonic key.

    XmNmnemonicCharSet
            Specifies the character set of the mnemonic for the label.  The
            default is XmFONTLISTDEFAULTTAG.

    XmNrecomputeSize
            Specifies a Boolean value that indicates whether the gadget
            shrinks or expands to accommodate its contents (label string or
            pixmap) as a result of an XtSetValues resource value that would
            change the size of the gadget. If True, the gadget shrinks or
            expands to exactly fit the label string or pixmap.  If False, the
            gadget never attempts to change size on its own.

    XmNstringDirection
            Specifies the direction in which the string is to be drawn. The
            following are the values:

            +  XmSTRINGDIRECTIONLTOR -- left to right

            +  XmSTRINGDIRECTIONRTOL -- right to left

            The default for this resource is determined at creation time.  If
            no value is specified for this resource and the widget's parent
            is a manager, the value is inherited from the parent; otherwise,
            it defaults to XmSTRINGDIRECTIONLTOR.

    Inherited resources

    LabelGadget inherits behavior and resources from the following superc-
    lasses. For a complete description of each resource, refer to the man
    page for that superclass.

 XmGadget resource set

 ____________________________________________________________________________
 Name                 Class               Type              Default    Access
 ____________________________________________________________________________
 XmNbottom-           XmCBottomShadow-    Pixel             dynamic    G
 ShadowColor          Color
 XmNhelpCallback      XmCCallback         XtCallbackList    NULL       C
 XmNhighlightColor    XmCHighlightColor   Pixel             dynamic    G
 XmNhighlightOnEnter  XmCHighlightOnEnter Boolean           False      CSG
 XmNhighlight-        XmCHighlight-       Dimension         0          CSG
 Thickness            Thickness
 XmNnavigationType    XmCNavigationType   XmNavigationType  XmNONE     CSG
 XmNshadowThickness   XmCShadowThickness  Dimension         0          CSG
 XmNtopShadowColor    XmCTopShadowColor   Pixel             dynamic    G
 XmNtraversalOn       XmCTraversalOn      Boolean           False      CSG
 XmNunitType          XmCUnitType         unsigned char     dynamic    CSG
 XmNuserData          XmCUserData         XtPointer         NULL       CSG


 RectObj resource set

 ____________________________________________________________________________
 Name                    Class               Type         Default      Access
 ____________________________________________________________________________
 XmNancestorSensitive    XmCSensitive        Boolean      dynamic      G
 XmNborderWidth          XmCBorderWidth      Dimension    0            CSG
 XmNheight               XmCHeight           Dimension    dynamic      CSG
 XmNsensitive            XmCSensitive        Boolean      True         CSG
 XmNwidth                XmCWidth            Dimension    dynamic      CSG
 XmNx                    XmCPosition         Position     0            CSG
 XmNy                    XmCPosition         Position     0            CSG


 Object resource set

 ____________________________________________________________________________
 Name                 Class               Type             Default     Access
 ____________________________________________________________________________
 XmNdestroyCallback   XmCCallback         XtCallbackList   NULL        C


    Behavior

    XmLabelGadget includes behavior from XmGadget.  Additional XmLabelGadget
    behavior is described below:

    BDrag Press:
            Drags the contents of a LabelGadget, 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 LabelGadgets used in a menu system.

    KHelp:  In a Popup or Pulldown MenuPane, unposts all menus in the menu
            hierarchy and, when the shell's keyboard focus policy is XmEXPLI-
            CIT, restores keyboard focus to the widget that had the focus
            before the menu system was entered.  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.

    MAny KCancel:
            In a MenuBar, disarms the CascadeButton and the menu and, when
            the shell's keyboard focus policy is XmEXPLICIT, restores key-
            board focus to the widget that had the focus before the menu was
            entered.

            In a toplevel Pulldown MenuPane from a MenuBar, unposts the menu,
            disarms the MenuBar CascadeButton and the MenuBar, and, when the
            shell's keyboard focus policy is XmEXPLICIT, restores keyboard
            focus to the widget that had the focus before the MenuBar was
            entered.  In other Pulldown MenuPanes, unposts the menu.

            In a Popup MenuPane, unposts the menu and, when the shell's key-
            board focus policy is XmEXPLICIT, restores keyboard focus to the
            widget from which the menu was posted.

    KDown:  If the current menu item has a submenu and is in a MenuBar, then
            this action posts the submenu, disarms the current menu item, and
            arms the submenu's first traversable menu item.

            If the current menu item is in a MenuPane, then this action
            disarms the current menu item and arms the item below it. This
            action wraps within the MenuPane. When the current menu item is
            at the MenuPane's bottom edge, then this action wraps to the top-
            most menu item in the column to the right, if one exists. When
            the current menu item is at the bottom, rightmost corner of the
            MenuPane, then this action wraps to the tear-off control, if
            present, or to the top, leftmost menu item.

    KLeft:  When the current menu item is in a MenuBar, then this action
            disarms the current item and arms the MenuBar item to the left.
            This action wraps within the MenuBar.

            In MenuPanes, if the current menu item is not at the left edge of
            a MenuPane, this action disarms the current item and arms the
            item to its left.  If the current menu item is at the left edge
            of a submenu attached to a MenuBar item, then this action unposts
            the submenu and traverses to the MenuBar item to the left, wrap-
            ping if necessary. If that MenuBar item has a submenu, it posts
            the submenu and arms the first traversable item in the submenu.
            If the current menu item is at the left edge of a submenu not
            directly attached to a MenuBar item, then this action unposts the
            current submenu only.

            In Popup or Torn-off MenuPanes, when the current menu item is at
            the left edge, this action wraps within the MenuPane. If the
            current menu item is at the left edge of the MenuPane and not in
            the top row, this action wraps to the rightmost menu item in the
            row above. If the current menu item is in the upper, leftmost
            corner, this action wraps to the tear-off control, if present, or
            else it wraps to the bottom, rightmost menu item in the MenuPane.

    KRight: If the current menu item is in a MenuBar, then this action
            disarms the current item and arms the MenuBar item to the right.
            This action wraps within the MenuBar.

            In MenuPanes, if the current menu item is a CascadeButton, then
            this action posts its associated submenu.  If the current menu
            item is not a CascadeButton and is not at the right edge of a
            MenuPane, this action disarms the current item and arms the item
            to its right, wrapping if necessary.  If the current menu item is
            not a CascadeButton and is at the right edge of a submenu that is
            a descendent of a MenuBar, then this action unposts all submenus
            and traverses to the MenuBar item to the right.  If that MenuBar
            item has a submenu, it posts the submenu and arms the submenu's
            first traversable item.

            In Popup or Torn-off menus, if the current menu item is not a
            CascadeButton and is at the right edge of a row (except the bot-
            tom row), this action wraps to the leftmost menu item in the row
            below. If the current menu item is not a CascadeButton and is in
            the bottom, rightmost corner of a Popup or Pulldown MenuPane,
            this action wraps to the tear-off control, if present, or else it
            wraps to the top, leftmost menu item of the MenuPane.

    KUp:    When the current menu item is in a MenuPane, then this action
            disarms the current menu item and arms the item above it. This
            action wraps within the MenuPane. When the current menu item is
            at the MenuPane's top edge, then this action wraps to the bottom-
            most menu item in the column to the left, if one exists. When the
            current menu item is at the top, leftmost corner of the MenuPane,
            then this action wraps to the tear-off control, if present, or to
            the bottom, rightmost menu item.

    Virtual bindings

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

 See also

    Object(Xm), RectObj(Xm), XmCreateLabelGadget(Xm),
    XmFontListCreate(Xm), XmStringCreate(Xm), XmStringCreateLtoR(Xm) and
    XmGadget(Xm).


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