XmDisplay(3X)

XmDisplay - The Display widget class

As shipped in IRIX 6.5.30. Added in IRIX 6.5.19.

     NAME
          XmDisplay - The Display widget class

     SYNOPSIS
          #include <Xm/Display.h>

     DESCRIPTION
          The XmDisplay object is used by the Motif widgets to store
          information that is specific to a display.  It also allows
          the toolkit to access certain information on widget
          hierarchies that would otherwise be unavailable.  Each
          client has one XmDisplay object for each display it
          accesses.

          An XmDisplay object is automatically created when the
          application creates the first shell on a display (usually
          accomplished by a call to XtAppInitialize or
          XtAppCreateShell).  It is not necessary to create an
          XmDisplay object by any other means.  An application can use
          the function XmGetXmDisplay to obtain the widget ID of the
          XmDisplay object for a given display.

          An application cannot supply initial values for XmDisplay
          resources as arguments to a call to any function that
          creates widgets.  The application or user can supply initial
          values in a resource file.  After creating the first shell
          on the display, the application can use XmGetXmDisplay to
          obtain the widget ID of the XmDisplay object and then call
          XtSetValues to set the XmDisplay resources.

          XmDisplay resources specify the drag protocol style for a
          client participating in drag and drop transactions.  There
          are two basic protocol types, preregister and dynamic.  When
          a preregister protocol is used, the toolkit handles any
          communication between the initiator and receiver clients,
          and displays the appropriate drag-over and drag-under visual
          effects.  A client registers its drop sites in advance and
          this information is stored in a property for each top-level
          window.  When the drag pointer enters a top level window,
          the drop site information is read by the initiator.  A
          dynamic protocol allows the source and destination clients
          to dynamically communicate drag and drop state information
          between each other, and to update their respective visuals
          accordingly.  The toolkit provides drop site information as
          the pointer passes over any given drop site.  In this mode,
          a receiver can supply a procedure to generate its own drag-
          under effects.

        Classes
          Display inherits behavior and resources from Core,
          Composite, Shell, WMShell, VendorShell, TopLevelShell, and
          ApplicationShell classes.
          The class pointer is xmDisplayClass.

          The class name is XmDisplay.

        New Resources
          The following table defines a set of widget resources used
          by the programmer 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 an .Xdefaults file, remove the XmN or XmC
          prefix and use the remaining letters.  To specify one of the
          defined values for a resource in an .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).

                                                   XmDisplay Resource Set
     Name                            Class                           Type            Default                     Access
     __________________________________________________________________________________________________________________
     XmNdefaultVirtualBindings       DefaultVirtualBindings          String          dynamic                     CG
     XmNdragInitiatorProtocolStyle   XmCDragInitiatorProtocolStyle   unsigned char   XmDRAG_PREFER_RECEIVER      CG
     XmNdragReceiverProtocolStyle    XmCDragReceiverProtocolStyle    unsigned char   XmDRAG_PREFER_PREREGISTER   CG
     defaultButtonEmphasis           DefaultButtonEmphasis           XtEnum          "external_highlight"        CG
     enableBtn1Transfer              EnableBtn1Transfer              Boolean         False                       CG
     enableButtonTab                 EnableButtonTab                 Boolean         False                       CG
     enableDragIcon                  EnableDragIcon                  Boolean         False                       CG
     enableEtchedInMenu              EnableEtchedInMenu              Boolean         False                       CG
     enableMultiKeyBindings          EnableMultiKeyBindings          Boolean         False                       CG
     enableToggleColor               EnableToggleColor               Boolean         False                       CG
     enableToggleVisual              EnableToggleVisual              Boolean         False                       CG
     enableUnselectableDrag          EnableUnselectableDrag          Boolean         True                        CG


          XmNdefaultVirtualBindings
               Specifies the default virtual bindings for the display.
               Following is an example of a specification for the
               defaultVirtualBindings resource in a resource file:
               *defaultVirtualBindings: \
                    osfBackSpace   :    <Key>BackSpace\n\
                    osfInsert      :    <Key>InsertChar\n\
               ...
                    osfDelete      :    <Key>DeleteChar

          XmNdragInitiatorProtocolStyle
               Specifies the drag and drop protocol requirements or
               preference when the client is an initiator.  The
               possible values are

          XmDRAG_PREREGISTER
               As an initiator, this client does not use the dynamic
               protocol and can only arrange visual effects with
               receivers who provide preregistered information.

          XmDRAG_DYNAMIC
               As an initiator, this client does not make use of any
               preregistered drop site information made available by
               other clients, and can only arrange visual effects with
               receivers who use the dynamic protocol.

          XmDRAG_NONE
               Specifies that drag and drop is disabled for this
               client.

          XmDRAG_DROP_ONLY
               As an initiator, this client does not use either the
               preregistered drop site information or the dynamic
               protocol.  It supports dragging, and any time the
               cursor is over a client that supports drag and drop,
               valid feedback is provided.  There are no other visual
               effects.

          XmDRAG_PREFER_DYNAMIC
               As an initiator, this client can support both the
               preregister and dynamic protocols, but prefers to use
               dynamic protocols whenever possible in order to provide
               high-quality drag-under feedback.

          XmDRAG_PREFER_PREREGISTER
               As an initiator, this client can support both the
               preregister and dynamic protocols, but prefers to use
               the preregister protocol whenever possible in order to
               accommodate performance needs or to provide consistent
               drag-over feedback.

          XmDRAG_PREFER_RECEIVER
               Indicates that this client can support both preregister
               and dynamic protocols, but will defer to the preference
               of the receiver client.  This value is valid only for
               the XmNdragInitiatorProtocolStyle resource, and is its
               default value.  Specifies the drag and drop protocol
               requirements or preference when this client is a
               receiver.  The values are

          XmDRAG_PREREGISTER
               As a receiver, this client preregisters drop site
               information and does not use the dynamic protocol.  It
               can only arrange visual effects with initiators who
               make use of the preregistered information.

          XmDRAG_DYNAMIC
               As a receiver, this client uses the dynamic protocol
               and does not preregister drop site information.  It can
               only arrange visual effects with initiators who use the
               dynamic protocol.

          XmDRAG_NONE
               Specifies that drag and drop is disabled for this
               client.

          XmDRAG_DROP_ONLY
               As a receiver, this client neither uses the dynamic
               protocol nor preregisters drop site information.  It
               supports dropping, and when dragging over this client,
               valid feedback is always provided, but there are no
               other visual effects.

          XmDRAG_PREFER_DYNAMIC
               As a receiver, this client can support both the
               preregister and dynamic protocols, but prefers to use
               dynamic protocol whenever possible in order to provide
               high-quality drag-under feedback.

          XmDRAG_PREFER_PREREGISTER
               As a receiver, this client can support both the
               preregister and dynamic protocols, but prefers to use
               the preregister protocol whenever possible in order to
               accommodate performance needs.

               The actual protocol used between an initiator and a
               receiver is based on the protocol style of the receiver
               and initiator.  The decision matrix is as follows:

     ____________________________________________________________________________________
     |  Drag Initiator   |                 Drag Receiver Protocol Style                  |
     |  Protocol Style   |_______________________________________________________________|
     |                   | Preregister | Prefer Preregister | Prefer Dynamic | Dynamic   |
     |___________________|_____________|____________________|________________|___________|
     |       Preregister | Preregister | Preregister        | Preregister    | Drop Only |
     |___________________|_____________|____________________|________________|___________|
     |Prefer Preregister | Preregister | Preregister        | Preregister    | Dynamic   |
     |___________________|_____________|____________________|________________|___________|
     |   Prefer Receiver | Preregister | Preregister        | Dynamic        | Dynamic   |
     |___________________|_____________|____________________|________________|___________|
     |    Prefer Dynamic | Preregister | Dynamic            | Dynamic        | Dynamic   |
     |___________________|_____________|____________________|________________|___________|
     |           Dynamic | Drop Only   | Dynamic            | Dynamic        | Dynamic   |
     |___________________|_____________|____________________|________________|___________|


               The value XmDRAG_NONE does not appear in the above
               matrix.  When specified for either the initiator or
               receiver side, XmDRAG_NONE implies that drag and drop
               transactions are not supported.  A value of
               XmDRAG_DROP_ONLY (Drop Only) results when an initiator
               and receiver cannot compromise protocol styles, that
               is, one client requires dynamic mode while the other
               can only support preregister mode, or if either
               explicitly has specified XmDRAG_DROP_ONLY.

          defaultButtonEmphasis
               This resource specifies whether to change the look of
               the PushButton widget and gadget that have the
               XmNshowAsDefault resource set.  When the control is the
               default, the PushButton has an etched out button which
               is enclosed with another etched in border.  When this
               resource is "internal_highlight", the location cursor
               appears in between the two etched borders to minimize
               the space required.  When this resource is
               "external_highlight", the default PushButton draws the
               location cursor outside the second border.

          enableBtn1Transfer
               When this resource is True, it specifies that the
               actions for selection and transfer are integrated on
               the Button1, and the extend selection actions are
               activated from Button2.  This resource impacts the
               actions of the XmText, XmTextField, and XmList widgets.

          enableButtonTab
               When this resource is True, it specifies whether to
               modify the action for the TAB key (KNextField and
               KPrevField) to move as an arrow key until the boundary
               of a tab group is reached.  When at the boundary of the
               tab group, the KNextField and KPrevField actions will
               move to the next or previous tab group, respectively.
               This resource affects the actions of XmPushButtons,
               XmArrowButtons, and XmDrawnButtons.

          enableDragIcon
               Specifies which set of icons be used for the system
               default cursors during drag and drop operations.  When
               this resource is False, the standard Motif icons are
               used.  When this resource is True, an alternate set of
               icons that human interface experts designed are used.
               This resource affects both the 16x16 icons and the
               32x32 icons that are the system defaults for each of
               the XmScreen objects associated with this display.

          enableEtchedInMenu
               Specifies the shadowing of the button widgets and
               gadgets in menus when the control is activated.  When
               enableEtchedInMenu is True, the selected menu control
               is drawn with the shadow etched in; this shadow style
               is consistent with the selected appearance of other
               button widgets outside of menus.  When
               enableEtchedInMenu is False, the selected menu control
               is drawn with the shadow etched out.  This resource
               impacts the appearance of PushButtons, ToggleButtons,
               and CascadeButtons when they are children of an XmMenu.

          enableMultiKeyBindings
               Specifies whether to modify the widget and gadget
               translations to support some MS-Windows common key
               bindings.  When this resource is False, the default,
               the translations are not modified.  When this resource
               is True, the following XtNbaseTranslations resources
               are merged into the resource database.  When an
               application has specified a XtNbaseTranslations
               resource, it will have precedence over these
               definitions.
                                  *XmArrowButton.baseTranslations: #override
                                                <Key>F1 : Help()
                                                c<Key>s : PrimitiveParentCancel()
                                                <Key>Escape : PrimitiveParentCancel()
                                  *XmBulletinBoard.baseTranslations: #override
                                                <Key>F1:ManagerGadgetHelp()
                                                c<Key>s : ManagerParentCancel()
                                                <Key>Escape : ManagerParentCancel()
                                  *XmCascadeButton.baseTranslations: #override
                                                <Key>F1:Help()
                                                c<Key>s : CleanupMenuBar()
                                                <Key>Escape : CleanupMenuBar()
                                  *XmDragContext.baseTranslations : #override
                                                <Key>F1:HelpDrag()
                                                c<Key>s : CancelDrag()
                                                <Key>Escape : CancelDrag()
                                  *XmDrawingArea.baseTranslations: #override
                                                <Key>F1 : DrawingAreaInput() ManagerGadgetHelp()
                                                c<Key>s : DrawingAreaInput() ManagerParentCancel()
                                                <Key>Escape : DrawingAreaInput() ManagerParentCancel()
                                  *XmDrawnButton.baseTranslations: #override
                                                <Key>F1:Help()
                                                c<Key>s : PrimitiveParentCancel()
                                                <Key>Escape : PrimitiveParentCancel()
                                                *XmFrame.baseTranslations: #override
                                                c<Key>s : ManagerParentCancel()
                                                <Key>Escape : ManagerParentCancel()
                                  *XmLabel.baseTranslations: #override
                                                <Key>F1:Help()
                                                c<Key>s : PrimitiveParentCancel()
                                                <Key>Escape : PrimitiveParentCancel()
                                                <Btn2Down>:
                                  *XmList.baseTranslations: #override
                                                <Key>F1:PrimitiveHelp()
                                                c<Key>s : ListKbdCancel()
                                                <Key>Escape : ListKbdCancel()
                                  *XmManager.baseTranslations: #override
                                                <Key>F1:ManagerGadgetHelp()
                                                c<Key>s : ManagerParentCancel()
                                                <Key>Escape : ManagerParentCancel()
                                  *XmPrimitive.baseTranslations: #override
                                                <Key>F1:PrimitiveHelp()
                                                c<Key>s : PrimitiveParentCancel()
                                                <Key>Escape : PrimitiveParentCancel()
                                  *XmPushButton.baseTranslations: #override
                                                <Key>F1:Help()
                                                c<Key>s : PrimitiveParentCancel()
                                                <Key>Escape : PrimitiveParentCancel()
                                                <Btn2Down>:
                                  *XmRowColumn.baseTranslations: #override
                                                <Key>F1:MenuHelp()
                                                c<Key>s : ManagerParentCancel()
                                                <Key>Escape : ManagerParentCancel()
                                  *XmSash.baseTranslations: #override
                                                <Key>F1:Help()
                                                c<Key>s : PrimitiveParentCancel()
                                                <Key>Escape : PrimitiveParentCancel()
                                  *XmScrollBar.baseTranslations: #override
                                                <Key>F1:PrimitiveHelp()
                                                c<Key>s : CancelDrag()
                                                <Key>Escape : CancelDrag()
                                  *XmScrolledWindow.baseTranslations: #override
                                                <Key>F1:ManagerGadgetHelp()
                                                c<Key>s : ManagerParentCancel()
                                                <Key>Escape : ManagerParentCancel()
                                  *XmTextField.baseTranslations: #override
                                                <Key>F1: Help()
                                                c<Key>s : process-cancel()
                                                <Key>Escape : process-cancel()
                                                c<Key>x : cut-clipboard()
                                                c<Key>c : copy-clipboard()
                                                c<Key>v : paste-clipboard()
                                                s<Key>Delete : cut-clipboard()
                                                c<Key>Insert : copy-clipboard()
                                                s<Key>Insert : paste-clipboard()
                                  *XmText.baseTranslations: #override
                                                <Key>F1: Help()
                                                c<Key>s : process-cancel()
                                                <Key>Escape : process-cancel()
                                                c<Key>x : cut-clipboard()
                                                c<Key>c : copy-clipboard()
                                                c<Key>v : paste-clipboard()
                                                s<Key>Delete : cut-clipboard()
                                                c<Key>Insert : copy-clipboard()
                                                s<Key>Insert : paste-clipboard()
                                  *XmToggleButton.baseTranslations: #override
                                                <Key>F1: Help()
                                                c<Key>s : PrimitiveParentCancel()
                                                <Key>Escape : PrimitiveParentCancel()
                                                <Btn2Down>:

               From the user's perspective, setting the
               enableMultiKeyBindings resource to True has the
               following affect:

          o    use of F1 function key for accessing help

          o    use both <Ctrl>s and Escape for canceling an operation

          o    disable drag from labels in XmLabel, XmPushButton,
               XmToggleButton, and XmScale widgets and gadgets

          o    use both <Ctrl>x and <Shift>Delete to cut text

          o    use both <Ctrl>c and <Ctrl>Insert to copy text

          o    use both <Ctrl>v and <Shift>Insert to paste text

          enableToggleColor
               Specifies whether the fill color of the ToggleButton
               widget and gadget uses the background or the highlight
               color.  When enableToggleColor is True, the fill color
               uses the highlight color.  The highlight color makes it
               more obvious to the end user that the Toggle has been
               set.  When enableToggleColor is False, the fill color
               uses the background color.  This resource affects the
               appearance of all ToggleButton widgets and gadgets.

          enableToggleVisual
               Specifies the visual appearance of the ToggleButton
               widget and gadgets.  When this resource is True, the
               look specified by the ToggleButton's XmNindicatorType
               resource is as follows:

          o    XmONE_OF_MANY - a shadowed circle

          o    XmN_OF_MANY - a shadowed square with a check mark when
               set

               When this resource is False, the look specified by the
               ToggleButton's XmNindicatorType resource is as follows:

          o    XmONE_OF_MANY - a shadowed diamond

          o    XmN_OF_MANY - a shadowed square

               This resource affects the appearance of all
               ToggleButton widgets and gadgets.

          enableUnselectableDrag
               Specifies whether the user can drag text that is not
               selectable such as the labels on buttons.  The default
               is True so that the use can drag all text.  When this
               resource is set to False, the text on Buttons, Labels,
               and Scales cannot be the source of a drag operation.

        Inherited Resources
          All of the superclass resources inherited by XmDisplay are
          designated N/A (not applicable).

     RELATED INFORMATION
          ApplicationShell(3X), Composite(3X), Core(3X),
          TopLevelShell(3X), VendorShell(3X), WMShell(3X),
          XmGetXmDisplay(3X), and XmScreen(3X).