Provided by: libmotif-dev_2.3.8-3.1build1_amd64
NAME
XmContainer — The Container widget class "XmContainer" "container" "Container"
SYNOPSIS
#include <Xm/Container.h>
DESCRIPTION
Container manages child widgets that have the ContainerItem trait. These child widgets can be viewed in several different layout formats, selected using different selection types and techniques, and directly manipulated by the user. Three different formats or views are supported by the Container. They are specified via the XmNentryViewType resource: • XmLARGE_ICON • XmSMALL_ICON • XmANY_ICON Three different layout types are supported by the Container. They are specified by the XmNlayoutType resource: • XmSPATIAL • XmOUTLINE • XmDETAIL In the XmSPATIAL layout type, several other resources (XmNspatialStyle, XmNspatialIncludeModel, XmNspatialSnapModel) control the positioning of the items within the Container; an application programmer can specify these resources so that the Container strictly enforces the position of each item or so that the Container positions items according to constraint resources specified for each item. The user, however, can alter the position of an item in the XmSPATIAL layout type within the Container by direct manipulation; for example, by pressing BTransfer over the item and then dragging and releasing BTransfer over some location within the Container. In the XmOUTLINE layout type, the Container controls the positioning of the items. Items within the Container can have parent-child relationships between them. Each item's XmNentryParent resource can specify another item in the same Container as its parent; items with a non-NULL value for XmNentryParent can only be displayed in the XmOUTLINE layout type. In the XmOUTLINE layout type, items are positioned in a tree configuration with connecting lines drawn to illustrate the relationships. Items are positioned top to bottom in the order specified by XmNpositionIndex within their parent. Container positions a PushButton next to each item that has a parent relationship to other items. The PushButton contains a pixmap to illustrate whether the child items are shown or not; the user can activate the PushButton to toggle between showing or hiding the child items. Direct manipulation to alter the position of the item is not supported in the XmOUTLINE layout type. Note that the XmNtraversalOn resource of the PushButtons created by Container are set to False. The XmDETAIL layout type is the same as XmOUTLINE, except that each item can also display additional information as rows in columns with column headers specified in the XmNdetailColumnHeading resources. In each item row, the item's detail information (see the reference page on XmIconGadget for a description of the XmNentryDetail resource) is displayed. Items are positioned top to bottom in the order specified by XmNpositionIndex within the parent. Selection When a child widget of the container is selected, the container specifies that the item should display the appropriate visual information to the user via the ContainerItem trait. The application program is notified of selection changes through XmNselectionCallback. The container uses four selection policies: • Single • Browse • Multiple • Extended In Single Select and Browse Select modes, only one item can be selected at a time. Pressing BSelect on an item selects it and deselects any other selected item. Pressing BSelect over an empty space in the Container deselects all items. In Browse Select, dragging BSelect moves the selection as the pointer is moved. In Multiple Select and Extended Select modes, any number of items can be selected at the same time. In Multiple Select, pressing and dragging BSelect or BExtend to specify an item, range of items, or group of discontiguous items causes the selection states of those items to be toggled. In Extended Select, pressing and dragging BSelect to indicate an item, range of items, or group of discontiguous items selects those items and deselects all others. Pressing and dragging BExtend in Extended Select to indicate an item, range of items, or discontiguous group of items causes the selection states of those items to be toggled. Several techniques are available to indicate an item, range of items, or group of discontiguous items in the Multiple Select and Extended Select modes. In the XmSPATIAL and XmOUTLINE layout types, the XmNselectionTechnique resource specifies the techniques to be used to indicate items. The default specification of XmTOUCH_OVER allows both the Random-Swipe and Marquee techniques to be used when XmNlayoutStyle is XmSPATIAL. The default specification of XmTOUCH_OVER allows the Range-Swipe, Range-Click, and Marquee techniques to be used when XmNlayoutStyle is XmOUTLINE. Discontiguous groups of items can be selected using the Random-Swipe technique. In the Random-Swipe technique, pressing BSelect (or BExtend) over an item and dragging BSelect over other items selects all of those items. Only those items that pointer passed over are selected. In the Range-Swipe technique, the user presses BSelect (or BExtend) over the first item and releases BSelect over the last item; all items within the range between the first and last item are selected whether the pointer actually passed over them or not. In the Range-Click technique, the user presses and releases BSelect (or BExtend) over the first item and then presses and releases BExtend over the last item. In the Marquee technique, pressing BSelect (or BExtend) over a blank space within the Container indicates the starting point of a Marquee rectangle. Dragging BSelect draws a Marquee rectangle (rubberband line) between the starting point and current pointer. All items completely within the Marquee rectangle are selected. Specifying XmTOUCH_ONLY for XmNselectionTechnique enforces the Random-Swipe technique even when BSelect (or BExtend) is pressed over a blank space. Similarly, specifying XmMARQUEE enforces the Marquee technique even when BSelect (or BExtend) is pressed over an item; since the item over which the press occurs is only partially included in the Marquee rectangle, it is not selected. XmMARQUEE_EXTEND_START and XmMARQUEE_EXTEND_BOTH enforce the Marquee technique and also cause the rectangle to extend automatically around the first item indicated and, for XmMARQUEE_EXTEND_BOTH, the last item. In the XmDETAIL layout type, the Range-Swipe and Range-Click techniques are available to indicate a range of items for selection. Container uses the XmQTcontainerItem, XmQTscrollFrame, and XmQTspecifyRenderTable traits and holds the XmQTcontainer and XmQTtransfer traits. Data Transfer Behavior Container supports dragging of selected items from the widget. Depending on the value of XmNprimaryOwnership, Container can also support primary selection. As a source of data, Container supports the following targets and associated conversions of data to these targets: locale If the locale target matches the widget's locale, the widget transfers the selected items in the encoding of the locale. The value for each item transferred, except the last, includes a trailing separator. Each item value is the XmNlabelString of the item. COMPOUND_TEXT The widget transfers the selected items as type COMPOUND_TEXT. The value for each item transferred, except the last, includes a trailing separator. Each item value is the XmNlabelString of the item. DELETE The widget deletes the selected items. PIXMAP The widget transfers a list of the pixmap IDs of the selected items as type DRAWABLE. STRING The widget transfers the selected items as type STRING. The value for each item transferred, except the last, includes a trailing separator. Each item value is the XmNlabelString of the item. TEXT If the selected items are fully convertible to the encoding of the locale, the widget transfers the selected items in the encoding of the locale. Otherwise, the widget transfers the selected items as type COMPOUND_TEXT. The value for each item transferred, except the last, includes a trailing separator. Each item value is the XmNlabelString of the item. _MOTIF_CLIPBOARD_TARGETS The widget transfers, as type ATOM, a list of the targets it supports for immediate transfer for the CLIPBOARD selection. These include _MOTIF_COMPOUND_STRING and PIXMAP. If the selected items are fully convertible to STRING, these also include STRING; otherwise, they also include COMPOUND_TEXT and UTF8_STRING. _MOTIF_COMPOUND_STRING The widget transfers the selected items as a compound string in Byte Stream format. The value for each item transferred, except the last, includes a trailing separator. Each item value is the XmNlabelString of the item. UTF8_STRING The widget transfers the selected items as type UTF8_STRING. The value for each item transferred, except the last, includes a trailing separator. Each item value is the XmNlabelString of the item. _MOTIF_DEFERRED_CLIPBOARD_TARGETS The widget transfers, as type ATOM, a list of the targets it supports for delayed transfer for the CLIPBOARD selection. This widget currently supplies no targets for _MOTIF_DEFERRED_CLIPBOARD_TARGETS. _MOTIF_DRAG_OFFSET The widget transfers a list of two 16-bit numbers, of type INTEGER, representing an x and y offset for an item being dragged. This offset is calculated so that, if the offset were added to the x and y coordinates at the drop site, and the dragged pixmap placed at that position, it would correspond to the position the user would expect the pixmap to placed at, based on the drag icon used at the drop site. _MOTIF_EXPORT_TARGETS The widget transfers, as type ATOM, a list of the targets to be used as the value of the DragContext's XmNexportTargets in a drag-and-drop transfer. These include _MOTIF_COMPOUND_STRING, PIXMAP, COMPOUND_TEXT, the encoding of the locale, STRING, TEXT, BACKGROUND, FOREGROUND, and UTF8_STRING. As a source of data, Container also supports the following standard Motif targets: BACKGROUND The widget transfers XmNbackground as type PIXEL. CLASS The widget finds the first shell in the widget hierarchy that has a WM_CLASS property and transfers the contents as text in the current locale. CLIENT_WINDOW The widget finds the first shell in the widget hierarchy and transfers its window as type WINDOW. COLORMAP The widget transfers XmNcolormap as type COLORMAP. FOREGROUND The widget transfers XmNforeground as type PIXEL. NAME The widget finds the first shell in the widget hierarchy that has a WM_NAME property and transfers the contents as text in the current locale. TARGETS The widget transfers, as type ATOM, a list of the targets it supports. These include the standard targets in this list. These also include _MOTIF_COMPOUND_STRING, PIXMAP, COMPOUND_TEXT, the encoding of the locale, STRING, TEXT, and UTF8_STRING. TIMESTAMP The widget transfers the timestamp used to acquire the selection as type INTEGER. _MOTIF_RENDER_TABLE The widget transfers XmNrenderTable if it exists, or else the default text render table, as type STRING. _MOTIF_ENCODING_REGISTRY The widget transfers its encoding registry as type STRING. The value is a list of NULL separated items in the form of tag encoding pairs. This target symbolizes the transfer target for the Motif Segment Encoding Registry. Widgets and applications can use this Registry to register text encoding formats for specified render table tags. Applications access this Registry by calling XmRegisterSegmentEncoding and XmMapSegmentEncoding. As a destination for data, Container supports only the dropping of items being dragged from the same widget. Subclasses and the XmNdestinationCallback procedures are responsible for any other data transfers to the widget. Classes Container inherits behavior, resources, and traits from the Core, Composite, Constraint, and XmManager classes. The class pointer is xmContainerWidgetClass. The class name is XmContainer. 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 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 whether 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). ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ --
RELATED
Composite(3), Constraint(3), Core(3), XmContainerCopy, XmContainerCopyLink, XmContainerCut, XmContainerGetItemChildren, XmContainerPaste, XmContainerPasteLink, XmContainerRelayout(3), XmContainerReorder(3), XmCreateContainer(3), XmCreateIconGadget(3), XmIconGadget(3), XmManager(3), XmVaCreateContainer(3), and XmVaCreateManagedContainer(3). XmContainer(3)