1XmContainer(library call) XmContainer(library call)
2
3
4
6 XmContainer — The Container widget class
7
9 #include <Xm/Container.h>
10
12 Container manages child widgets that have the ContainerItem trait.
13 These child widgets can be viewed in several different layout formats,
14 selected using different selection types and techniques, and directly
15 manipulated by the user.
16
17 Three different formats or views are supported by the Container. They
18 are specified via the XmNentryViewType resource:
19
20 · XmLARGE_ICON
21
22 · XmSMALL_ICON
23
24 · XmANY_ICON
25
26 Three different layout types are supported by the Container. They are
27 specified by the XmNlayoutType resource:
28
29 · XmSPATIAL
30
31 · XmOUTLINE
32
33 · XmDETAIL
34
35 In the XmSPATIAL layout type, several other resources (XmNspatialStyle,
36 XmNspatialIncludeModel, XmNspatialSnapModel) control the positioning of
37 the items within the Container; an application programmer can specify
38 these resources so that the Container strictly enforces the position of
39 each item or so that the Container positions items according to con‐
40 straint resources specified for each item. The user, however, can
41 alter the position of an item in the XmSPATIAL layout type within the
42 Container by direct manipulation; for example, by pressing BTransfer
43 over the item and then dragging and releasing BTransfer over some loca‐
44 tion within the Container.
45
46 In the XmOUTLINE layout type, the Container controls the positioning of
47 the items. Items within the Container can have parent-child relation‐
48 ships between them. Each item's XmNentryParent resource can specify
49 another item in the same Container as its parent; items with a non-NULL
50 value for XmNentryParent can only be displayed in the XmOUTLINE layout
51 type. In the XmOUTLINE layout type, items are positioned in a tree con‐
52 figuration with connecting lines drawn to illustrate the relationships.
53 Items are positioned top to bottom in the order specified by XmNposi‐
54 tionIndex within their parent. Container positions a PushButton next
55 to each item that has a parent relationship to other items. The Push‐
56 Button contains a pixmap to illustrate whether the child items are
57 shown or not; the user can activate the PushButton to toggle between
58 showing or hiding the child items. Direct manipulation to alter the
59 position of the item is not supported in the XmOUTLINE layout type.
60 Note that the XmNtraversalOn resource of the PushButtons created by
61 Container are set to False.
62
63 The XmDETAIL layout type is the same as XmOUTLINE, except that each
64 item can also display additional information as rows in columns with
65 column headers specified in the XmNdetailColumnHeading resources. In
66 each item row, the item's detail information (see the reference page on
67 XmIconGadget for a description of the XmNentryDetail resource) is dis‐
68 played. Items are positioned top to bottom in the order specified by
69 XmNpositionIndex within the parent.
70
71 Selection
72 When a child widget of the container is selected, the container speci‐
73 fies that the item should display the appropriate visual information to
74 the user via the ContainerItem trait. The application program is noti‐
75 fied of selection changes through XmNselectionCallback.
76
77 The container uses four selection policies:
78
79 · Single
80
81 · Browse
82
83 · Multiple
84
85 · Extended
86
87 In Single Select and Browse Select modes, only one item can be selected
88 at a time. Pressing BSelect on an item selects it and deselects any
89 other selected item. Pressing BSelect over an empty space in the Con‐
90 tainer deselects all items. In Browse Select, dragging BSelect moves
91 the selection as the pointer is moved.
92
93 In Multiple Select and Extended Select modes, any number of items can
94 be selected at the same time. In Multiple Select, pressing and drag‐
95 ging BSelect or BExtend to specify an item, range of items, or group of
96 discontiguous items causes the selection states of those items to be
97 toggled. In Extended Select, pressing and dragging BSelect to indicate
98 an item, range of items, or group of discontiguous items selects those
99 items and deselects all others. Pressing and dragging BExtend in
100 Extended Select to indicate an item, range of items, or discontiguous
101 group of items causes the selection states of those items to be tog‐
102 gled.
103
104 Several techniques are available to indicate an item, range of items,
105 or group of discontiguous items in the Multiple Select and Extended
106 Select modes.
107
108 In the XmSPATIAL and XmOUTLINE layout types, the XmNselectionTechnique
109 resource specifies the techniques to be used to indicate items. The
110 default specification of XmTOUCH_OVER allows both the Random-Swipe and
111 Marquee techniques to be used when XmNlayoutStyle is XmSPATIAL. The
112 default specification of XmTOUCH_OVER allows the Range-Swipe, Range-
113 Click, and Marquee techniques to be used when XmNlayoutStyle is XmOUT‐
114 LINE.
115
116 Discontiguous groups of items can be selected using the Random-Swipe
117 technique. In the Random-Swipe technique, pressing BSelect (or BEx‐
118 tend) over an item and dragging BSelect over other items selects all of
119 those items. Only those items that pointer passed over are selected.
120
121 In the Range-Swipe technique, the user presses BSelect (or BExtend)
122 over the first item and releases BSelect over the last item; all items
123 within the range between the first and last item are selected whether
124 the pointer actually passed over them or not. In the Range-Click tech‐
125 nique, the user presses and releases BSelect (or BExtend) over the
126 first item and then presses and releases BExtend over the last item.
127
128 In the Marquee technique, pressing BSelect (or BExtend) over a blank
129 space within the Container indicates the starting point of a Marquee
130 rectangle. Dragging BSelect draws a Marquee rectangle (rubberband line)
131 between the starting point and current pointer. All items completely
132 within the Marquee rectangle are selected.
133
134 Specifying XmTOUCH_ONLY for XmNselectionTechnique enforces the Random-
135 Swipe technique even when BSelect (or BExtend) is pressed over a blank
136 space. Similarly, specifying XmMARQUEE enforces the Marquee technique
137 even when BSelect (or BExtend) is pressed over an item; since the item
138 over which the press occurs is only partially included in the Marquee
139 rectangle, it is not selected. XmMARQUEE_EXTEND_START and XmMAR‐
140 QUEE_EXTEND_BOTH enforce the Marquee technique and also cause the rec‐
141 tangle to extend automatically around the first item indicated and, for
142 XmMARQUEE_EXTEND_BOTH, the last item.
143
144 In the XmDETAIL layout type, the Range-Swipe and Range-Click techniques
145 are available to indicate a range of items for selection.
146
147 Container uses the XmQTcontainerItem, XmQTscrollFrame, and XmQTspeci‐
148 fyRenderTable traits and holds the XmQTcontainer and XmQTtransfer
149 traits.
150
151 Data Transfer Behavior
152 Container supports dragging of selected items from the widget. Depend‐
153 ing on the value of XmNprimaryOwnership, Container can also support
154 primary selection.
155
156 As a source of data, Container supports the following targets and asso‐
157 ciated conversions of data to these targets:
158
159 locale If the locale target matches the widget's locale, the widget
160 transfers the selected items in the encoding of the locale.
161 The value for each item transferred, except the last,
162 includes a trailing separator. Each item value is the XmNla‐
163 belString of the item.
164
165 COMPOUND_TEXT
166 The widget transfers the selected items as type COM‐
167 POUND_TEXT. The value for each item transferred, except the
168 last, includes a trailing separator. Each item value is the
169 XmNlabelString of the item.
170
171 DELETE The widget deletes the selected items.
172
173 PIXMAP The widget transfers a list of the pixmap IDs of the selected
174 items as type DRAWABLE.
175
176 STRING The widget transfers the selected items as type STRING. The
177 value for each item transferred, except the last, includes a
178 trailing separator. Each item value is the XmNlabelString of
179 the item.
180
181 TEXT If the selected items are fully convertible to the encoding
182 of the locale, the widget transfers the selected items in the
183 encoding of the locale. Otherwise, the widget transfers the
184 selected items as type COMPOUND_TEXT. The value for each
185 item transferred, except the last, includes a trailing sepa‐
186 rator. Each item value is the XmNlabelString of the item.
187
188 _MOTIF_CLIPBOARD_TARGETS
189 The widget transfers, as type ATOM, a list of the targets it
190 supports for immediate transfer for the CLIPBOARD selection.
191 These include _MOTIF_COMPOUND_STRING and PIXMAP. If the
192 selected items are fully convertible to STRING, these also
193 include STRING; otherwise, they also include COMPOUND_TEXT
194 and UTF8_STRING.
195
196 _MOTIF_COMPOUND_STRING
197 The widget transfers the selected items as a compound string
198 in Byte Stream format. The value for each item transferred,
199 except the last, includes a trailing separator. Each item
200 value is the XmNlabelString of the item.
201
202 UTF8_STRING
203 The widget transfers the selected items as type UTF8_STRING.
204 The value for each item transferred, except the last,
205 includes a trailing separator. Each item value is the XmNla‐
206 belString of the item.
207
208 _MOTIF_DEFERRED_CLIPBOARD_TARGETS
209 The widget transfers, as type ATOM, a list of the targets it
210 supports for delayed transfer for the CLIPBOARD selection.
211 This widget currently supplies no targets for
212 _MOTIF_DEFERRED_CLIPBOARD_TARGETS.
213
214 _MOTIF_DRAG_OFFSET
215 The widget transfers a list of two 16-bit numbers, of type
216 INTEGER, representing an x and y offset for an item being
217 dragged. This offset is calculated so that, if the offset
218 were added to the x and y coordinates at the drop site, and
219 the dragged pixmap placed at that position, it would corre‐
220 spond to the position the user would expect the pixmap to
221 placed at, based on the drag icon used at the drop site.
222
223 _MOTIF_EXPORT_TARGETS
224 The widget transfers, as type ATOM, a list of the targets to
225 be used as the value of the DragContext's XmNexportTargets in
226 a drag-and-drop transfer. These include _MOTIF_COM‐
227 POUND_STRING, PIXMAP, COMPOUND_TEXT, the encoding of the
228 locale, STRING, TEXT, BACKGROUND, FOREGROUND, and
229 UTF8_STRING.
230
231 As a source of data, Container also supports the following standard
232 Motif targets:
233
234 BACKGROUND
235 The widget transfers XmNbackground as type PIXEL.
236
237 CLASS The widget finds the first shell in the widget hierarchy that
238 has a WM_CLASS property and transfers the contents as text in
239 the current locale.
240
241 CLIENT_WINDOW
242 The widget finds the first shell in the widget hierarchy and
243 transfers its window as type WINDOW.
244
245 COLORMAP The widget transfers XmNcolormap as type COLORMAP.
246
247 FOREGROUND
248 The widget transfers XmNforeground as type PIXEL.
249
250 NAME The widget finds the first shell in the widget hierarchy that
251 has a WM_NAME property and transfers the contents as text in
252 the current locale.
253
254 TARGETS The widget transfers, as type ATOM, a list of the targets it
255 supports. These include the standard targets in this list.
256 These also include _MOTIF_COMPOUND_STRING, PIXMAP, COM‐
257 POUND_TEXT, the encoding of the locale, STRING, TEXT, and
258 UTF8_STRING.
259
260 TIMESTAMP The widget transfers the timestamp used to acquire the selec‐
261 tion as type INTEGER.
262
263 _MOTIF_RENDER_TABLE
264 The widget transfers XmNrenderTable if it exists, or else the
265 default text render table, as type STRING.
266
267 _MOTIF_ENCODING_REGISTRY
268 The widget transfers its encoding registry as type STRING.
269 The value is a list of NULL separated items in the form of
270 tag encoding pairs. This target symbolizes the transfer tar‐
271 get for the Motif Segment Encoding Registry. Widgets and
272 applications can use this Registry to register text encoding
273 formats for specified render table tags. Applications access
274 this Registry by calling XmRegisterSegmentEncoding and
275 XmMapSegmentEncoding.
276
277 As a destination for data, Container supports only the dropping of
278 items being dragged from the same widget. Subclasses and the XmNdesti‐
279 nationCallback procedures are responsible for any other data transfers
280 to the widget.
281
282 Classes
283 Container inherits behavior, resources, and traits from the Core, Com‐
284 posite, Constraint, and XmManager classes.
285
286 The class pointer is xmContainerWidgetClass.
287
288 The class name is XmContainer.
289
290 New Resources
291 The following table defines a set of widget resources used by the pro‐
292 grammer to specify data. The programmer can also set the resource val‐
293 ues for the inherited classes to set attributes for this widget. To
294 reference a resource by name or by class in a .Xdefaults file, remove
295 the XmN or XmC prefix and use the remaining letters. To specify one of
296 the defined values for a resource in a .Xdefaults file, remove the Xm
297 prefix and use the remaining letters (in either lowercase or uppercase,
298 but include any underscores between words). The codes in the access
299 column indicate whether the given resource can be set at creation time
300 (C), set by using XtSetValues (S), retrieved by using XtGetValues (G),
301 or is not applicable (N/A).
302
303 ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
304 │ │ XmContainer Res│ource Set │ │ │
305 │Name │ Class │ Type │ Default │ Access │
306 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
307 │XmNautomaticSelection │ XmCAutomaticSelection │ unsigned char │ XmAUTO_SELECT │ CSG │
308 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
309 │XmNcollapsedStatePixmap │ XmCCollapsedStatePixmap │ Pixmap │ dynamic │ CSG │
310 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
311 │XmNconvertCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
312 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
313 │XmNdefaultActionCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
314 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
315 │XmNdestinationCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
316 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
317 │XmNdetailColumnHeading │ XmCDetailColumnHeading │ XmStringTable │ NULL │ CSG │
318 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
319 │XmNdetailColumnHeadingCount │ XmCDetailColumnHeadingCount │ Cardinal │ 0 │ CSG │
320 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
321 │XmNdetailOrder │ XmCDetailOrder │ Cardinal * │ NULL │ CSG │
322 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
323 │XmNdetailOrderCount │ XmCDetailOrderCount │ Cardinal │ dynamic │ CSG │
324 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
325 │XmNdetailTabList │ XmCDetailTabList │ XmTabList │ NULL │ CSG │
326 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
327 │XmNentryViewType │ XmCEntryViewType │ unsigned char │ XmANY_ICON │ CSG │
328 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
329 │XmNexpandedStatePixmap │ XmCExpandedStatePixmap │ Pixmap │ dynamic │ CSG │
330 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
331 │XmNfontList │ XmCFontList │ XmFontList │ NULL │ CSG │
332 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
333 │XmNlargeCellHeight │ XmCCellHeight │ Dimension │ dynamic │ CSG │
334 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
335 │XmNlargeCellWidth │ XmCCellWidth │ Dimension │ dynamic │ CSG │
336 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
337 │XmNlayoutType │ XmCLayoutType │ unsigned char │ XmSPATIAL │ CSG │
338 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
339 │XmNmarginHeight │ XmCMarginHeight │ Dimension │ 0 │ CSG │
340 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
341 │XmNmarginWidth │ XmCMarginWidth │ Dimension │ 0 │ CSG │
342 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
343 │XmNoutlineButtonPolicy │ XmCOutlineButtonPolicy │ unsigned char │ XmOUTLINE_BUTTON_PRESENT │ CSG │
344 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
345 │XmNoutlineChangedCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
346 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
347 │XmNoutlineColumnWidth │ XmCOutlineColumnWidth │ Dimension │ dynamic │ CSG │
348 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
349 │XmNoutlineIndentation │ XmCOutlineIndentation │ Dimension │ 40 │ CSG │
350 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
351 │XmNoutlineLineStyle │ XmCLineStyle │ unsigned char │ XmSINGLE │ CSG │
352 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
353 │XmNprimaryOwnership │ XmCprimaryOwnership │ unsigned char │ XmOWN_POSSIBLE_MULTIPLE │ CSG │
354 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
355 │XmNrenderTable │ XmCRenderTable │ XmRenderTable │ dynamic │ CSG │
356 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
357 │XmNselectColor │ XmCSelectColor │ Pixel │ dynamic │ CSG │
358 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
359 │XmNselectedObjects │ XmCSelectedObjects │ WidgetList │ NULL │ SG │
360 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
361 │XmNselectedObjectCount │ XmCSelectedObjectCount │ unsigned int │ 0 │ SG │
362 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
363 │XmNselectionCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
364 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
365 │XmNselectionPolicy │ XmCSelectionPolicy │ unsigned char │ XmEXTENDED_SELECT │ CSG │
366 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
367 │XmNselectionTechnique │ XmCSelectionTechnique │ unsigned char │ XmTOUCH_OVER │ CSG │
368 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
369 │XmNsmallCellHeight │ XmCCellHeight │ Dimension │ dynamic │ CSG │
370 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
371 │XmNsmallCellWidth │ XmCCellWidth │ Dimension │ dynamic │ CSG │
372 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
373 │XmNspatialIncludeModel │ XmCSpatialIncludeModel │ unsigned char │ XmAPPEND │ CSG │
374 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
375 │XmNspatialResizeModel │ XmCSpatialResizeModel │ unsigned char │ XmGROW_MINOR │ CSG │
376 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
377 │XmNspatialSnapModel │ XmCSpatialSnapModel │ unsigned char │ XmNONE │ CSG │
378 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
379 │XmNspatialStyle │ XmCSpatialStyle │ unsigned char │ XmGRID │ CSG │
380 ├────────────────────────────┼─────────────────────────────┼────────────────┼──────────────────────────┼────────┤
381 └────────────────────────────┴─────────────────────────────┴────────────────┴──────────────────────────┴────────┘
382 XmNautomaticSelection
383 Indicates whether the Container invokes selection callbacks
384 when each item is selected (or toggled) or whether selection
385 callbacks are not invoked until the user has completed selec‐
386 tion actions (for example, the user has released the mouse
387 button). It can have one of the following values:
388
389 XmAUTO_SELECT
390 Makes selection callbacks automatically when each
391 item is selected or toggled. This may also be the
392 value TRUE.
393
394 XmNO_AUTO_SELECT
395 Delays selection callbacks until the user has fin‐
396 ished selection actions. This may also be the value
397 FALSE.
398
399 XmNcollapsedStatePixmap
400 Specifies the pixmap to display on a PushButton next to a
401 Container item with child items, when XmNoutlineButtonPolicy
402 is XmOUTLINE_BUTTON_PRESENT. XmNcollapsedStatePixmap indi‐
403 cates that the child items are not displayed. If set to
404 XmUNSPECIFIED_PIXMAP, a default pixmap showing an arrow
405 pointing up is used.
406
407 XmNconvertCallback
408 Specifies a list of callbacks called when the Container is
409 asked to convert a selection. The type of the structure
410 whose address is passed to these callbacks is XmConvertCall‐
411 backStruct. The reason is XmCR_OK.
412
413 XmNdefaultActionCallback
414 Specifies a list of callbacks to call when the user double-
415 clicks an item or presses <Enter> or <Return> over an item.
416 The callback structure is XmContainerSelectCallbackStruct.
417 The reason is XmCR_DEFAULT_ACTION.
418
419 XmNdestinationCallback
420 Specifies a list of callbacks called when the Container is
421 the destination of a transfer operation. The type of the
422 structure whose address is passed to these callbacks is
423 XmDestinationCallbackStruct. The reason is XmCR_OK.
424
425 XmNdetailColumnHeading
426 Specifies a table of XmStrings to display as the headings to
427 columns. If NULL, or if XmNlayoutType is not XmDETAIL, no
428 heading is displayed.
429
430 XmNdetailColumnHeadingCount
431 Specifies a count of XmStrings in the table specified for
432 XmNdetailColumnHeading.
433
434 XmNdetailOrder
435 Specifies an array of Cardinals that indicate which column
436 detail information, and in which order, each Container child
437 will display its detail information. This resource is
438 ignored if XmNlayoutType is not XmDETAIL. If NULL, the the
439 default behavior is determined by XmNdetailOrderCount.
440
441 XmNdetailOrderCount
442 Specifies a count of Cardinals in the array specified for
443 XmNdetailOrder. If XmNdetailOrder is NULL and XmNdetai‐
444 lOrderCount is not 0, then each Container child displays its
445 detail information in order from column 1 to the XmNdetai‐
446 lOrderCount column number. If XmNdetailOrderCount is 0, then
447 a default is calculated from the detail order count informa‐
448 tion of each item accessed via the ContainerItem trait.
449
450 XmNdetailTabList
451 Indicates an XmTabList specifying the start of each column in
452 the XmDETAIL layout. If this resource is set to NULL, then
453 Container calculates an XmTabList. This resource is ignored
454 if XmNlayoutType is not XmDETAIL.
455
456 XmNentryViewType
457 Specifies the view type for all Container children. The view
458 type is specified for each item via the ContainerItem trait.
459 It can have one of the following values:
460
461 XmANY_ICON
462 No specification is made for Container children.
463 Children use their own default specifications.
464
465 XmLARGE_ICON
466 The view type for all children is XmLARGE_ICON.
467
468 XmSMALL_ICON
469 The view type for all children is XmSMALL_ICON.
470
471 XmNexpandedStatePixmap
472 Specifies the pixmap to display on a PushButton next to a
473 Container item with child items, when XmNoutlineButtonPolicy
474 is XmOUTLINE_BUTTON_PRESENT. XmNexpandedStatePixmap indi‐
475 cates that the child items are displayed. If set to XmUN‐
476 SPECIFIED_PIXMAP, a default pixmap showing an arrow pointing
477 down is used.
478
479 XmNfontList
480 Specifies the fontlist associated with XmContainer. The
481 fontlist is an obsolete construct and has been superseded by
482 the render table. It is included for compatibility with ear‐
483 lier versions of Motif, and for applications that do not eas‐
484 ily support render tables. The default fontlist is derived
485 from the default render table; and if both a fontlist and a
486 render table are specified, the render table takes prece‐
487 dence.
488
489 XmNlargeCellHeight
490 Specifies the height of a cell for XmGRID or XmCELLS spatial
491 style when XmNentryViewType is XmLARGE_ICON or XmANY_ICON.
492
493 XmNlargeCellWidth
494 Specifies the width of a cell for XmGRID or XmCELLS spatial
495 style when XmNentryViewType is XmLARGE_ICON or XmANY_ICON.
496
497 XmNlayoutType
498 Specifies the policy for laying out child widgets within the
499 Container. It can have one of the following values:
500
501 XmDETAIL Displays items in the same manner as when the
502 resource is XmOUTLINE, except that each item dis‐
503 plays detail information next to it.
504
505 XmOUTLINE Displays items in a tree configuration, in XmNposi‐
506 tionIndex within XmNentryParent order, with con‐
507 necting lines drawn to show their parent-child
508 relationships.
509
510 XmSPATIAL Displays items according to XmNspatialStyle. Items
511 with XmNentryParent values are not displayed.
512
513 XmNmarginHeight
514 Specifies the margin spacing at the top and bottom of the
515 Container.
516
517 XmNmarginWidth
518 Specifies the margin spacing at the left and right sides of
519 the Container.
520
521 XmNoutlineButtonPolicy
522 Specifies whether or not to display buttons for users to
523 expand and collapse the display of items. It can have one of
524 the following values:
525
526 XmOUTLINE_BUTTON_ABSENT
527 Do not display the outline buttons.
528
529 XmOUTLINE_BUTTON_PRESENT
530 Display the outline buttons.
531
532 XmNoutlineChangedCallback
533 Specifies a list of callbacks to call when an item's XmNout‐
534 lineState is changed. The callback structure is XmContainer‐
535 OutlineCallbackStruct. The reason is XmCR_COLLAPSED or
536 XmCR_EXPANDED, depending on the new value of XmNoutlineState.
537
538 XmNoutlineColumnWidth
539 Specifies the width of the first column displayed when XmN‐
540 layoutType is XmDETAIL. Specifies the preferred width of the
541 Container (without the margins) when XmNlayoutType is XmOUT‐
542 LINE. If not specified, Container will determine a default
543 value equal to the widest space necessary to display an
544 item's pixmap and XmNoutlineIndentation.
545
546 XmNoutlineIndentation
547 Specifies the distance to indent for the display of child
548 items when XmNlayoutType is XmOUTLINE or XmDETAIL.
549
550 XmNoutlineLineStyle
551 Specifies whether to draw lines between items with parent-
552 child relationships when XmNlayoutType is XmOUTLINE or XmDE‐
553 TAIL. It can have one of the following values:
554
555 XmNO_LINE Draws no line.
556
557 XmSINGLE Draws a line one pixel wide.
558
559 XmNprimaryOwnership
560 Specifies whether Container takes ownership of the primary
561 selection when a selection is made inside it. This resource
562 can take the following values:
563
564 XmOWN_NEVER
565 Never takes ownership.
566
567 XmOWN_ALWAYS
568 Always takes ownership.
569
570 XmOWN_MULTIPLE
571 Only takes ownership if more than one element has
572 been selected.
573
574 XmOWN_POSSIBLE_MULTIPLE
575 Only takes ownership if more than one element can
576 be selected at a time.
577
578 XmNrenderTable
579 Specifies the XmRenderTable that is inherited by all children
580 of the Container. The default is implementation dependent.
581 If both a render table and a fontlist are specified, the ren‐
582 der table will take precedence.
583
584 XmNselectColor
585 Specifies a Pixel that can be accessed by children of the
586 Container and used to indicate that the child is in a
587 selected state. In addition to a Pixel value, the following
588 symbolic values can be specified:
589
590 XmDEFAULT_SELECT_COLOR
591 Specifies a color between the background and the
592 bottom shadow color.
593
594 XmREVERSED_GROUND_COLORS
595 Forces the select color to the foreground color and
596 causes the default color of any text rendered over
597 the select color to be the background color.
598
599 HIGHLIGHT_COLOR
600 Forces the fill color to use the highlight color.
601
602 XmNselectedObjectCount
603 Specifies the number of widgets in the selected items list.
604 The value must be the number of items in XmNselectedObjects.
605
606 XmNselectedObjects
607 An array of widgets that represents the Container items that
608 are currently selected, either by the user or by the applica‐
609 tion.
610
611 If the application sets XmNselectedObjects to an array of
612 widgets, those array elements that are valid Container items
613 are selected.
614
615 XmNselectionCallback
616 Specifies a list of callbacks to call when an item is
617 selected. The callback structure is XmContainerSelectCall‐
618 backStruct. The reason is XmCR_SINGLE_SELECT,
619 XmCR_BROWSE_SELECT, XmCR_MULTIPLE_SELECT, or
620 XmCR_EXTENDED_MULTIPLE, depending on XmNselectionPolicy.
621
622 XmNselectionPolicy
623 Defines the interpretation of the selection action. This can
624 be one of the following values:
625
626 XmSINGLE_SELECT
627 Allows only single selections.
628
629 XmBROWSE_SELECT
630 Allows "drag and browse" selections.
631
632 XmMULTIPLE_SELECT
633 Allows multiple selections.
634
635 XmEXTENDED_SELECT
636 Allows extended selections.
637
638 XmNselectionTechnique
639 Specifies the selection technique to use when the Container
640 displays items in a 2-dimensional layout (XmNentryViewType is
641 XmLARGE_ICON or XmSMALL_ICON). In the XmDETAIL layout, the
642 XmNselectionTechnique resource is treated as XmTOUCH_ONLY. In
643 either case, it can have one of the following values:
644
645 XmMARQUEE Uses the Marquee technique only.
646
647 XmMARQUEE_EXTEND_START
648 Uses the Marquee technique only and extends the
649 Marquee rectangle around any item under the Marquee
650 start point.
651
652 XmMARQUEE_EXTEND_BOTH
653 Uses the Marquee technique only and extends the
654 Marquee rectangle around any items under the Mar‐
655 quee start and end points.
656
657 XmTOUCH_ONLY
658 Uses the Random-Swipe technique only if XmNlayout‐
659 Type is XmSPATIAL. Otherwise, uses the Range-Swipe
660 and Range-Click techniques.
661
662 XmTOUCH_OVER
663 If the selection action begins over an item and
664 XmNlayoutType is XmSPATIAL, uses the Random-Swipe
665 technique. If the selection action begins over an
666 item and XmNlayoutType is XmOUTLINE or XmDETAIL,
667 uses the Range-Swipe and Range-Click techniques.
668 Uses the Marquee technique if the select action
669 begins over an unoccupied area in the Container.
670
671 XmNsmallCellHeight
672 Specifies the height of a cell for XmGRID or XmCELLS spatial
673 style when XmNentryViewType is XmSMALL_ICON.
674
675 XmNsmallCellWidth
676 Specifies the width of a cell for XmGRID or XmCELLS spatial
677 style when XmNentryViewType is XmSMALL_ICON.
678
679 XmNspatialIncludeModel
680 Specifies the layout of an item when the item is managed in
681 the Container when XmNlayoutType is XmSPATIAL and XmNspatial‐
682 Style is XmGRID or XmCELLS. It can have one of the following
683 values:
684
685 XmAPPEND Places the item after the last occupied cell
686 according to XmNlayoutDirection.
687
688 XmCLOSEST Places the item in the free cell closest to the
689 position specified by XmNx and XmNy.
690
691 XmFIRST_FIT
692 Places the item in the first free cell according to
693 XmNlayoutDirection.
694
695 XmNspatialResizeModel
696 Specifies how Container will attempt to grow its dimensions
697 when XmNlayoutType is XmSPATIAL and XmNspatialStyle is XmGRID
698 or XmCELLS and there are not enough cells to contain a new
699 Container item. It can have one of the following values:
700
701 XmGROW_BALANCED
702 Container will request both width and height growth
703 from its parent.
704
705 XmGROW_MAJOR
706 Container will request growth in its major dimen‐
707 sion from its parent. Container's major dimension
708 is width when the precedence of XmNlayoutDirection
709 is horizontal, and height when vertical.
710
711 XmGROW_MINOR
712 Container will request growth in its minor dimen‐
713 sion from its parent. Container's minor dimension
714 is height when the precedence of XmNlayoutDirection
715 is horizontal, and width when vertical.
716
717 XmNspatialSnapModel
718 Specifies how Container will position an item within the cell
719 layout when XmNlayoutType is XmSPATIAL and XmNspatialStyle is
720 XmGRID or XmCELLS. It can have one of the following values:
721
722 XmCENTER Center the items as follows, depending on the value
723 of XmNentryViewType:
724
725 XmLARGE_ICON
726 The child is centered in the cell hori‐
727 zontally and baseline-aligned vertically.
728
729 XmSMALL_ICON
730 The child is centered in the cell verti‐
731 cally on its baseline and aligned with
732 the left or right of the cell horizon‐
733 tally, depending on the value of XmNlay‐
734 outDirection.
735
736 XmSNAP_TO_GRID
737 Position the item at the upper-left or upper-right
738 corner of the cell(s), depending on the value of
739 XmNlayoutDirection.
740
741 XmNONE Position the item according to the position speci‐
742 fied by XmNx and XmNy. If the position is not
743 within the coordinates of the cell(s), then posi‐
744 tion the item at the upper-left or upper-right cor‐
745 ner of the cell(s), depending on the value of XmN‐
746 layoutDirection.
747
748 XmNspatialStyle
749 Specifies the layout of Container items when XmNlayoutType is
750 XmSPATIAL. It can have one of the following values:
751
752 XmCELLS Lays out items within a grid of same-size cells.
753 Each item occupies as many cells as required to
754 contain the item dimensions.
755
756 XmGRID Lays out items within a grid of same-size cells.
757 Each item occupies only one cell. Items that are
758 larger than the cell size may overlap other items.
759
760 XmNONE Lays out items according to XmNx and XmNy.
761
762 ┌───────────────────────────────────────────────────────────────────────────┐
763 │ │ XmContainer Const│raint Resource S│et │ │
764 │Name │ Class │ Type │ Default │ Access │
765 ├─────────────────┼──────────────────┼───────────────┼─────────────┼────────┤
766 │XmNentryParent │ XmCWidget │ Widget │ NULL │ CSG │
767 ├─────────────────┼──────────────────┼───────────────┼─────────────┼────────┤
768 │XmNoutlineState │ XmCOutlineState │ unsigned char │ XmCOLLAPSED │ CSG │
769 ├─────────────────┼──────────────────┼───────────────┼─────────────┼────────┤
770 │XmNpositionIndex │ XmCPositionIndex │ int │ dynamic │ CSG │
771 ├─────────────────┼──────────────────┼───────────────┼─────────────┼────────┤
772 └─────────────────┴──────────────────┴───────────────┴─────────────┴────────┘
773 XmNentryParent
774 Specifies the widget that is this item's logical parent. A
775 value of NULL indicates that this is a root-level item. Par‐
776 ent-child information is displayed only when the XmNlayout‐
777 Policy is XmOUTLINE or XmDETAIL.
778
779 XmNoutlineState
780 Specifies whether to display child items when XmNlayoutPolicy
781 is XmOUTLINE or XmDETAIL. It can have one of the following
782 values:
783
784 XmCOLLAPSED
785 Does not display child items.
786
787 XmEXPANDED
788 Displays child items.
789
790 XmNpositionIndex
791 Specifies the order of items in the Container for display.
792 When XmNlayoutType is XmOUTLINE or XmDETAIL, items are dis‐
793 played in XmNpositionIndex order within XmNentryParent.
794 Items that have an XmNentryParent resource are ignored when
795 XmNlayoutType is XmSPATIAL. If XmNpositionIndex is not spec‐
796 ified, it defaults to the XmNpositionIndex value plus 1 of
797 the item with the highest XmNpositionIndex that has the same
798 XmNentryParent if such an item exists; otherwise, it defaults
799 to 0.
800
801 Inherited Resources
802 Container inherits behavior and resources from the superclasses
803 described in the following tables. For a complete description of each
804 resource, refer to the reference page for that superclass.
805
806 ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐
807 │ │ XmManager │Resource Set │ │ │
808 │Name │ Class │ Type │ Default │ Access │
809 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
810 │XmNbottomShadowColor │ XmCBottomShadowColor │ Pixel │ dynamic │ CSG │
811 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
812 │XmNbottomShadowPixmap │ XmCBottomShadowPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
813 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
814 │XmNforeground │ XmCForeground │ Pixel │ dynamic │ CSG │
815 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
816 │XmNhelpCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
817 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
818 │XmNhighlightColor │ XmCHighlightColor │ Pixel │ dynamic │ CSG │
819 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
820 │XmNhighlightPixmap │ XmCHighlightPixmap │ Pixmap │ dynamic │ CSG │
821 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
822 │XmNinitialFocus │ XmCInitialFocus │ Widget │ NULL │ CSG │
823 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
824 │XmNlayoutDirection │ XmCLayoutDirection │ XmDirection │ dynamic │ CG │
825 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
826 │XmNnavigationType │ XmCNavigationType │ XmNavigationType │ XmTAB_GROUP │ CSG │
827 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
828 │XmNpopupHandlerCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
829 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
830 │XmNshadowThickness │ XmCShadowThickness │ Dimension │ 0 │ CSG │
831 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
832 │XmNstringDirection │ XmCStringDirection │ XmStringDirection │ dynamic │ CG │
833 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
834 │XmNtopShadowColor │ XmCTopShadowColor │ Pixel │ dynamic │ CSG │
835 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
836 │XmNtopShadowPixmap │ XmCTopShadowPixmap │ Pixmap │ dynamic │ CSG │
837 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
838 │XmNtraversalOn │ XmCTraversalOn │ Boolean │ True │ CSG │
839 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
840 │XmNunitType │ XmCUnitType │ unsigned char │ dynamic │ CSG │
841 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
842 │XmNuserData │ XmCUserData │ XtPointer │ NULL │ CSG │
843 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
844 └────────────────────────┴───────────────────────┴───────────────────┴──────────────────────┴────────┘
845 ┌───────────────────────────────────────────────────────────────────────┐
846 │ │ Composite Reso│urce Set │ │ │
847 │Name │ Class │ Type │ Default │ Access │
848 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
849 │XmNchildren │ XmCReadOnly │ WidgetList │ NULL │ G │
850 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
851 │XmNinsertPosition │ XmCInsertPosition │ XtOrderProc │ NULL │ CSG │
852 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
853 │XmNnumChildren │ XmCReadOnly │ Cardinal │ 0 │ G │
854 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
855 └──────────────────┴───────────────────┴─────────────┴─────────┴────────┘
856 ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
857 │ │ Core Resource Se│t │ │ │
858 │Name │ Class │ Type │ Default │ Access │
859 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
860 │XmNaccelerators │ XmCAccelerators │ XtAccelerators │ dynamic │ CSG │
861 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
862 │XmNancestorSensitive │ XmCSensitive │ Boolean │ dynamic │ G │
863 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
864 │XmNbackground │ XmCBackground │ Pixel │ dynamic │ CSG │
865 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
866 │XmNbackgroundPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
867 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
868 │XmNborderColor │ XmCBorderColor │ Pixel │ XtDefaultForeground │ CSG │
869 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
870 │XmNborderPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
871 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
872 │XmNborderWidth │ XmCBorderWidth │ Dimension │ 0 │ CSG │
873 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
874 │XmNcolormap │ XmCColormap │ Colormap │ dynamic │ CG │
875 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
876 │XmNdepth │ XmCDepth │ int │ dynamic │ CG │
877 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
878 │XmNdestroyCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
879 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
880 │XmNheight │ XmCHeight │ Dimension │ dynamic │ CSG │
881 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
882 │XmNinitialResourcesPersistent │ XmCInitialResourcesPersistent │ Boolean │ True │ C │
883 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
884 │XmNmappedWhenManaged │ XmCMappedWhenManaged │ Boolean │ True │ CSG │
885 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
886 │XmNscreen │ XmCScreen │ Screen * │ dynamic │ CG │
887 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
888 │XmNsensitive │ XmCSensitive │ Boolean │ True │ CSG │
889 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
890 │XmNtranslations │ XmCTranslations │ XtTranslations │ dynamic │ CSG │
891 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
892 │XmNwidth │ XmCWidth │ Dimension │ dynamic │ CSG │
893 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
894 │XmNx │ XmCPosition │ Position │ 0 │ CSG │
895 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
896 │XmNy │ XmCPosition │ Position │ 0 │ CSG │
897 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
898 └──────────────────────────────┴───────────────────────────────┴────────────────┴──────────────────────┴────────┘
899 Callback Information
900 A pointer to the following structure is passed to callbacks for XmNout‐
901 lineChangedCallback.
902
903 typedef struct
904 {
905 int reason;
906 XEvent * event;
907 Widget item;
908 unsigned char new_outline_state;
909 } XmContainerOutlineCallbackStruct;
910
911 reason Specifies the reason for the callback.
912
913 event Points to the XEvent that triggered the callback. It can be
914 NULL.
915
916 item Specifies the container item affected by the event.
917
918 new_outline_state
919 Specifies the next XmNoutlineState for item. The user can
920 change this value in the callback.
921
922 A pointer to the following structure is passed to callbacks for XmNde‐
923 faultActionCallback and XmNselectionCallback.
924
925 typedef struct
926 {
927 int reason;
928 XEvent * event;
929 WidgetList selected_items;
930 int selected_item_count;
931 unsigned char auto_selection_type;
932 } XmContainerSelectCallbackStruct;
933
934 reason Specifies the reason for the callback. It corresponds to the
935 XmNselectionPolicy at the time the selection was made, or
936 indicates that the default action should be taken.
937
938 event Points to the XEvent that triggered the callback. It can be
939 NULL.
940
941 selected_items
942 Specifies a list of items selected at the time of the event
943 that caused the callback. The selected_items field points to
944 a temporary storage space that is reused after the callback
945 is finished. Therefore, if an application needs to save the
946 selected list, it should copy the list into its own data
947 space.
948
949 selected_item_count
950 Specifies the number of items in the selected_items list.
951 This number must be positive or 0 (zero).
952
953 auto_selection_type
954 Indicates the cause of the selection when XmNautomaticSelec‐
955 tion is XmAUTO_SELECT. Valid values are the following:
956
957 XmAUTO_UNSET
958 Returned when XmNautomaticSelection is
959 XmNO_AUTO_SELECT.
960
961 XmAUTO_BEGIN
962 Indicates the beginning of automatic selection.
963
964 XmAUTO_MOTION
965 Indicates that there is a button drag selection.
966
967 XmAUTO_CANCEL
968 Indicates that the new selection is canceled.
969
970 XmAUTO_NO_CHANGE
971 Indicates that the currently selected item matches
972 the initial item.
973
974 XmAUTO_CHANGE
975 Indicates that the currently selected item does not
976 match the initial item.
977
978 A pointer to the following structure is passed to the XmNconvertCall‐
979 back procedures:
980
981 typedef struct
982 {
983 int reason;
984 XEvent *event;
985 Atom selection;
986 Atom target;
987 XtPointer source_data;
988 XtPointer location_data;
989 int flags;
990 XtPointer parm;
991 int parm_format;
992 unsigned long parm_length;
993 int status;
994 XtPointer value;
995 Atom type;
996 int format;
997 unsigned long length;
998 } XmConvertCallbackStruct;
999
1000 reason Indicates why the callback was invoked.
1001
1002 event Points to the XEvent that triggered the callback. It can be
1003 NULL.
1004
1005 selection Indicates the selection for which conversion is being
1006 requested. Possible values are CLIPBOARD, PRIMARY, SEC‐
1007 ONDARY, and _MOTIF_DROP.
1008
1009 target Indicates the conversion target.
1010
1011 source_data
1012 Contains information about the selection source. When the
1013 selection is _MOTIF_DROP, source_data is the DragContext.
1014 Otherwise, it is NULL.
1015
1016 location_data
1017 Contains information about the location of data to be con‐
1018 verted. If the value is NULL, the data to be transferred
1019 consists of the widget's current selection. Otherwise, it is
1020 the widget ID of the item being transferred, or the widget ID
1021 of the Container if all items are being transferred.
1022
1023 flags Indicates the status of the conversion. Following are the
1024 possible values:
1025
1026 XmCONVERTING_NONE
1027 This flag is currently unused.
1028
1029 XmCONVERTING_PARTIAL
1030 The target widget was able to be converted, but
1031 some data was lost.
1032
1033 XmCONVERTING_SAME
1034 The conversion target is the source of the data to
1035 be transferred.
1036
1037 XmCONVERTING_TRANSACT
1038 This flag is currently unused.
1039
1040 parm Contains parameter data for this target. If no parameter
1041 data exists, the value is NULL.
1042
1043 When selection is CLIPBOARD and target is _MOTIF_CLIP‐
1044 BOARD_TARGETS or _MOTIF_DEFERRED_CLIPBOARD_TARGETS, the value
1045 is the requested operation (XmCOPY, XmMOVE, or XmLINK).
1046
1047 parm_format
1048 Specifies whether the data in parm should be viewed as a list
1049 of char, short, or long quantities. Possible values are 0
1050 (when parm is NULL), 8 (when the data in parm should be
1051 viewed as a list of chars), 16 (when the data in parm should
1052 be viewed as a list of shorts), or 32 (when the data in parm
1053 should be viewed as a list of longs). Note that parm_format
1054 symbolizes a data type, not the number of bits in each list
1055 element. For example, on some machines, a parm_format of 32
1056 means that the data in parm should be viewed as a list of
1057 64-bit quantities, not 32-bit quantities.
1058
1059 parm_length
1060 Specifies the number of elements of data in parm, where each
1061 element has the size specified by parm_format. When parm is
1062 NULL, the value is 0.
1063
1064 status An IN/OUT member that specifies the status of the conversion.
1065 The initial value is XmCONVERT_DEFAULT. The callback proce‐
1066 dure can set this member to one of the following values:
1067
1068 XmCONVERT_DEFAULT
1069 The widget class conversion procedure, if any, is
1070 called after the callback procedures return. If
1071 the widget class conversion procedure produces any
1072 data, it overwrites the data provided by the call‐
1073 back procedures in the value member.
1074
1075 XmCONVERT_MERGE
1076 The widget class conversion procedure, if any, is
1077 called after the callback procedures return. If
1078 the widget class conversion procedure produces any
1079 data, it appends its data to the data provided by
1080 the callback procedures in the value member. This
1081 value is intended for use with targets that result
1082 in lists of data, such as TARGETS.
1083
1084 XmCONVERT_DONE
1085 The callback procedure has successfully finished
1086 the conversion. The widget class conversion proce‐
1087 dure, if any, is not called after the callback pro‐
1088 cedures return.
1089
1090 XmCONVERT_REFUSE
1091 The callback procedure has terminated the conver‐
1092 sion process without completing the requested con‐
1093 version. The widget class conversion procedure, if
1094 any, is not called after the callback procedures
1095 return.
1096
1097 value An IN/OUT parameter that contains any data that the callback
1098 procedure produces as a result of the conversion. The ini‐
1099 tial value is NULL. If the callback procedure sets this mem‐
1100 ber, it must ensure that the type, format, and length members
1101 correspond to the data in value. The callback procedure is
1102 responsible for allocating, but not for freeing, memory when
1103 it sets this member.
1104
1105 type An IN/OUT parameter that indicates the type of the data in
1106 the value member. The initial value is INTEGER.
1107
1108 format An IN/OUT parameter that specifies whether the data in value
1109 should be viewed as a list of char, short, or long quanti‐
1110 ties. The initial value is 8. The callback procedure can
1111 set this member to 8 (for a list of char), 16 (for a list of
1112 short), or 32 (for a list of long).
1113
1114 length An IN/OUT member that specifies the number of elements of
1115 data in value, where each element has the size symbolized by
1116 format. The initial value is 0 (zero).
1117
1118 A pointer to the following callback structure is passed to the XmNdes‐
1119 tinationCallback procedures:
1120
1121 typedef struct
1122 {
1123 int reason;
1124 XEvent *event;
1125 Atom selection;
1126 XtEnum operation;
1127 int flags;
1128 XtPointer transfer_id;
1129 XtPointer destination_data;
1130 XtPointer location_data;
1131 Time time;
1132 } XmDestinationCallbackStruct;
1133
1134 reason Indicates why the callback was invoked.
1135
1136 event Points to the XEvent that triggered the callback. It can be
1137 NULL.
1138
1139 selection Indicates the selection for which data transfer is being
1140 requested. Possible values are CLIPBOARD, PRIMARY, SEC‐
1141 ONDARY, and _MOTIF_DROP.
1142
1143 operation Indicates the type of transfer operation requested.
1144
1145 · When the selection is PRIMARY, possible values are
1146 XmMOVE, XmCOPY, and XmLINK.
1147
1148 · When the selection is SECONDARY or CLIPBOARD, possible
1149 values are XmCOPY and XmLINK.
1150
1151 · When the selection is _MOTIF_DROP, possible values are
1152 XmMOVE, XmCOPY, XmLINK, and XmOTHER. A value of
1153 XmOTHER means that the callback procedure must get fur‐
1154 ther information from the XmDropProcCallbackStruct in
1155 the destination_data member.
1156
1157 flags Indicates whether or not the destination widget is also the
1158 source of the data to be transferred. Following are the pos‐
1159 sible values:
1160
1161 XmCONVERTING_NONE
1162 The destination widget is not the source of the
1163 data to be transferred.
1164
1165 XmCONVERTING_SAME
1166 The destination widget is the source of the data to
1167 be transferred.
1168
1169 transfer_id
1170 Serves as a unique ID to identify the transfer transaction.
1171
1172 destination_data
1173 Contains information about the destination. When the selec‐
1174 tion is _MOTIF_DROP, the callback procedures are called by
1175 the drop site's XmNdropProc, and destination_data is a
1176 pointer to the XmDropProcCallbackStruct passed to the XmN‐
1177 dropProc procedure. When the selection is SECONDARY, desti‐
1178 nation_data is an Atom representing a target recommmended by
1179 the selection owner for use in converting the selection.
1180 Otherwise, destination_data is NULL.
1181
1182 location_data
1183 Contains information about the location where data is to be
1184 transferred. The value is always NULL when the selection is
1185 SECONDARY or CLIPBOARD. If the value is NULL, the data is to
1186 be inserted at the widget's cursor position. Otherwise, the
1187 value is a pointer to an XPoint structure containing the x
1188 and y coordinates at the location where the data is to be
1189 transferred. Once XmTransferDone procedures start to be
1190 called, location_data will no longer be stable.
1191
1192 time Indicates the time when the transfer operation began.
1193
1194 Translations
1195 The XmContainer translations are listed below.
1196
1197 The following key names are listed in the X standard key event transla‐
1198 tion table syntax. This format is the one used by Motif to specify the
1199 widget actions corresponding to a given key. A brief overview of the
1200 format is provided under VirtualBindings(3). For a complete descrip‐
1201 tion of the format, please refer to the X Toolkit Instrinsics Documen‐
1202 tation.
1203
1204 ∼c ∼s ∼m ∼a <Btn1Down>:
1205 ContainerBeginSelect()
1206
1207 <Btn1Motion>:
1208 ContainerButtonMotion()
1209
1210 ∼c ∼s ∼m ∼a <Btn1Up>:
1211 ContainerEndSelect()
1212
1213 c ∼s ∼m ∼a <Btn1Down>:
1214 ContainerBeginToggle()
1215
1216 c ∼s ∼m ∼a <Btn1Up>:
1217 ContainerEndToggle()
1218
1219 ∼c s ∼m ∼a <Btn1Down>:
1220 ContainerBeginExtend()
1221
1222 ∼c s ∼m ∼a <Btn1Up>:
1223 ContainerEndExtend()
1224
1225 c s ∼m ∼a <Btn1Down>:
1226 ContainerBeginExtend()
1227
1228 c s ∼m ∼a <Btn1Up>:
1229 ContainerEndExtend()
1230
1231 ∼c ∼s ∼m ∼a <Btn2Down>:
1232 ContainerStartTransfer(Copy)
1233
1234 c s ∼m ∼a <Btn2Down>:
1235 ContainerStartTransfer(Link)
1236
1237 ∼c s ∼m ∼a <Btn2Down>:
1238 ContainerStartTransfer(Move)
1239
1240 ∼m ∼a <Btn2Up>:
1241 ContainerEndTransfer()
1242
1243 :c s a <Key><osfInsert>:
1244 ContainerPrimaryLink()
1245
1246 :c s m <Key><osfInsert>:
1247 ContainerPrimaryLink()
1248
1249 :a <Key><osfInsert>:
1250 ContainerPrimaryCopy()
1251
1252 :m <Key><osfInsert>:
1253 ContainerPrimaryCopy()
1254
1255 :s a <Key><osfDelete>:
1256 ContainerPrimaryMove()
1257
1258 :s m <Key><osfDelete>:
1259 ContainerPrimaryMove()
1260
1261 :<Key><osfCancel>:
1262 ContainerCancel()
1263
1264 :s <Key><osfSelect>:
1265 ContainerExtend()
1266
1267 :<Key><osfSelect>:
1268 ContainerSelect()
1269
1270 :<Key><osfSelectAll>:
1271 ContainerSelectAll()
1272
1273 :<Key><osfDeselectAll>:
1274 ContainerDeselectAll()
1275
1276 :<Key><osfAddMode>:
1277 ContainerToggleMode()
1278
1279 :<Key><osfActivate>:
1280 ContainerActivate()
1281
1282 s ∼c ∼m ∼a <Key>space:
1283 ContainerExtend()
1284
1285 ∼s ∼c ∼m ∼a <Key>space:
1286 ContainerSelect()
1287
1288 ∼s ∼c ∼m ∼a <Key>Return:
1289 ContainerActivate()
1290
1291 ∼s c ∼m ∼a <Key>slash:
1292 ContainerSelectAll()
1293
1294 ∼s c ∼m ∼a <Key>backslash:
1295 ContainerDeselectAll()
1296
1297 :c s <Key><osfBeginLine>:
1298 ContainerExtendCursor(First)
1299
1300 :c s <Key><osfEndLine>:
1301 ContainerExtendCursor(Last)
1302
1303 :c <Key><osfBeginLine>:
1304 ContainerMoveCursor(First)
1305
1306 :c <Key><osfEndLine>:
1307 ContainerMoveCursor(Last)
1308
1309 :c <Key><osfLeft>:
1310 ContainerExpandOrCollapse(Left)
1311
1312 :c <Key><osfRight>:
1313 ContainerExpandOrCollapse(Right)
1314
1315 :s <Key><osfUp>:
1316 ContainerExtendCursor(Up)
1317
1318 :s <Key><osfDown>:
1319 ContainerExtendCursor(Down)
1320
1321 :s <Key><osfLeft>:
1322 ContainerExtendCursor(Left)
1323
1324 :s <Key><osfRight>:
1325 ContainerExtendCursor(Right)
1326
1327 :<Key><osfUp>:
1328 ContainerMoveCursor(Up)
1329
1330 :<Key><osfDown>:
1331 ContainerMoveCursor(Down)
1332
1333 :<Key><osfLeft>:
1334 ContainerMoveCursor(Left)
1335
1336 :<Key><osfRight>:
1337 ContainerMoveCursor(Right)
1338
1339 s ∼m ∼a <Key>Tab:
1340 ManagerGadgetPrevTabGroup()
1341
1342 ∼s ∼m ∼a <Key>Tab:
1343 ManagerGadgetNextTabGroup()
1344
1345 The Container button event translations are modified when Display's
1346 XmNenableBtn1Transfer resource does not have a value of XmOFF (in other
1347 words, it is either XmBUTTON2_TRANSFER or XmBUTTON2_ADJUST). This
1348 option allows the actions for selection and transfer to be integrated
1349 on <Btn1>, and the actions for extending the selection can be bound to
1350 <Btn2>. The actions for <Btn1> that are defined in the preceding list
1351 still apply when the <Btn1> event occurs over text that is not
1352 selected. The following actions apply when the <Btn1> event occurs over
1353 text that is selected:
1354
1355 ~c ~s ~m ~a <Btn1Down>:
1356 ContainerHandleBtn1Down(ContainerBeginSelect,Copy)
1357
1358 c ~s ~m ~a <Btn1Down>:
1359 ContainerHandleBtn1Down(ContainerBeginToggle,Copy)
1360
1361 c s ~m ~a <Btn1Down>:
1362 ContainerHandleBtn1Down(ContainerNoop,Link)
1363
1364 ~c s ~m ~a <Btn1Down>:
1365 ContainerHandleBtn1Down(ContainerBeginExtend,Move)
1366
1367 <Btn1Motion>:
1368 ContainerHandleBtn1Motion(ContainerButtonMotion)
1369
1370 ~c ~s ~m ~a <Btn1Up>:
1371 ContainerHandleBtn1Up(ContainerEndSelect)
1372
1373 c ~s ~m ~a <Btn1Up>:
1374 ContainerHandleBtn1Up(ContainerEndToggle)
1375
1376 ~c s ~m ~a <Btn1Up>:
1377 ContainerHandleBtn1Up(ContainerEndExtend)
1378
1379 c s ~m ~a <Btn1Down>:
1380 ContainerHandleBtn1Down(ContainerBeginExtend)
1381
1382 c s ~m ~a <Btn1Up>:
1383 ContainerHandleBtn1Up(ContainerEndExtend)
1384
1385 When Display's XmNenableBtn1Transfer resource has a value of XmBUT‐
1386 TON2_ADJUST, the following actions apply:
1387
1388 ~c ~s ~m ~a <Btn2Down>:
1389 ContainerHandleBtn2Down(ContainerStartTransfer,Copy)
1390
1391 c s ~m ~a <Btn2Down>:
1392 ContainerHandleBtn2Down(ContainerStartTransfer,Link)
1393
1394 ~c s ~m ~a <Btn2Down>:
1395 ContainerHandleBtn2Down(ContainerStartTransfer,Move)
1396
1397 <Btn2Motion>:
1398 ContainerHandleBtn2Motion(ContainerButtonMotion)
1399
1400 ~m ~a <Btn2Up>:
1401 ContainerHandleBtn2Up(ContainerEndTransfer)
1402
1403 Action Routines
1404 The Container action routines are described below. The current selec‐
1405 tions are always shown with the background color specified by the XmNs‐
1406 electColor resource.
1407
1408 ContainerActivate():
1409 This action calls XmNdefaultActionCallback with reason
1410 XmCR_DEFAULT_ACTION.
1411
1412 ContainerBeginExtend():
1413 Simply returns if XmNselectionPolicy is XmSINGLE_SELECT or
1414 XmBROWSE_SELECT. Simply returns if XmNlayoutType is XmSPA‐
1415 TIAL.
1416
1417 Otherwise, this action sets the selection state of all items
1418 between the anchor item and the item under the pointer to the
1419 selection state of the anchor item. The location cursor is
1420 moved to the item under the pointer. If XmNautomaticSelec‐
1421 tion is XmAUTO_SELECT, the XmNselectionCallback(s) is called
1422 with either XmCR_MULTIPLE_SELECT or XmCR_EXTENDED_SELECT as
1423 the reason depending on XmNselectionPolicy, and with
1424 auto_selection_type XmAUTO_CHANGE.
1425
1426 ContainerBeginSelect():
1427 If this is a second ContainerBeginSelect() action that has
1428 occurred within the time specified by the display's mul‐
1429 ticlick time, this action calls XmNdefaultActionCallback with
1430 reason XmCR_DEFAULT_ACTION and returns.
1431
1432 Otherwise, processing depends on the value of XmNselection‐
1433 Policy as follows:
1434
1435 XmSINGLE_SELECT
1436 This action deselects all items and toggles the
1437 item (if any) under the pointer.
1438
1439 XmBROWSE_SELECT
1440 This action deselects all items and toggles the
1441 item (if any) under the pointer. This item is now
1442 the anchor item for further selection. If XmNauto‐
1443 maticSelection is XmAUTO_SELECT and a change in any
1444 item's selection state is made, the XmNselection‐
1445 Callback(s) is called with reason
1446 XmCR_BROWSE_SELECT and auto_selection_type
1447 XmAUTO_BEGIN.
1448
1449 XmMULTIPLE_SELECT
1450 If the pointer is over an item and XmNselection‐
1451 Technique is not XmMARQUEE, this action toggles the
1452 selection state of that item. The item becomes the
1453 anchor item for further selection. If XmNselec‐
1454 tionTechnique is XmMARQUEE, XmMARQUEE_EXTEND_START,
1455 or XmMARQUEE_EXTEND_BOTH, this action sets the
1456 start point for the Marquee rectangle. If XmNse‐
1457 lectionTechnique is XmMARQUEE_EXTEND_START or
1458 XmMARQUEE_EXTEND_BOTH and the pointer is over an
1459 item, this action draws the Marquee rectangle
1460 around the item. If XmNautomaticSelection is
1461 XmAUTO_SELECT, the XmNselectionCallback(s) is
1462 called with reason XmCR_MULTIPLE_SELECT and
1463 auto_selection_type XmAUTO_BEGIN.
1464
1465 XmEXTENDED_SELECT
1466 All items are first deselected. Processing is then
1467 identical to the case where XmNselectionPolicy is
1468 XmMULTIPLE_SELECT, except that XmCR_EXTENDED_SELECT
1469 is the callback reason given if XmNselectionCall‐
1470 back is called.
1471
1472 ContainerBeginToggle():
1473 Simply returns if XmNselectionPolicy is XmSINGLE_SELECT or
1474 XmBROWSE_SELECT.
1475
1476 Otherwise, if the pointer is over an item and XmNselection‐
1477 Technique is not XmMARQUEE, this action toggles the selection
1478 state of that item. The item becomes the anchor item for
1479 further selection. If XmNselectionTechnique is XmMARQUEE,
1480 XmMARQUEE_EXTEND_START, or XmMARQUEE_EXTEND_BOTH this action
1481 sets the start point for the Marquee rectangle. If XmNselec‐
1482 tionTechnique is XmMARQUEE_EXTEND_START or XmMAR‐
1483 QUEE_EXTEND_BOTH and the pointer is over an item, this action
1484 draws the Marquee rectangle around the item. If XmNautomat‐
1485 icSelection is XmAUTO_SELECT, the XmNselectionCallback(s) is
1486 called with either XmCR_MULTIPLE_SELECT or
1487 XmCR_EXTENDED_SELECT as the reason, depending on XmNselec‐
1488 tionPolicy, and with auto_selection_type XmAUTO_BEGIN.
1489
1490 ContainerButtonMotion():
1491 Processing depends on the value of XmNselectionPolicy, as
1492 follows:
1493
1494 XmSINGLE_SELECT
1495 This action simply returns to the caller.
1496
1497 XmBROWSE_SELECT
1498 Simply returns if this action follows a Container‐
1499 BeginExtend() action or ContainerBeginToggle()
1500 action.
1501
1502 If the pointer is no longer over the current anchor
1503 item, this action toggles the current anchor item
1504 and then toggles the item under the pointer (if
1505 any) and makes it the new anchor item for further
1506 processing. If XmNautomaticSelection is
1507 XmAUTO_SELECT and a change in any item's selection
1508 state is made, the XmNselectionCallback(s) is
1509 called with reason XmCR_BROWSE_SELECT and
1510 auto_selection_type XmAUTO_MOTION.
1511
1512 XmMULTIPLE_SELECT
1513 If a previous action has set a Marquee rectangle
1514 start point, this action draws the Marquee rectan‐
1515 gle between the current pointer position and the
1516 Marquee start point. If the XmNselectionTechnique
1517 is XmMARQUEE_EXTEND_BOTH and the pointer is over an
1518 item, the end point of the Marquee rectangle is
1519 extended to include the item. The selection states
1520 of all items within the Marquee rectangle are tog‐
1521 gled to match the state of the anchor item.
1522
1523 If no Marquee rectangle start point is set and the
1524 pointer is over an item, processing depends on the
1525 XmNlayoutType resource. The anchor item from the
1526 previous action is used. If XmNlayoutType is XmSPA‐
1527 TIAL, the selection state of the item under the
1528 pointer is toggled to match the selection state of
1529 the anchor item. If XmNlayoutType is XmOUTLINE or
1530 XmDETAIL, the selection state of all items between
1531 the anchor item and the item under the pointer are
1532 toggled to match the selection state of the anchor
1533 item.
1534
1535 If XmNautomaticSelection is XmAUTO_SELECT and a
1536 change in any item's selection state is made, the
1537 XmNselectionCallback(s) is called with reason
1538 XmCR_MULTIPLE_SELECT and auto_selection_type
1539 XmAUTO_MOTION.
1540
1541 XmEXTENDED_SELECT
1542 Processing is identical to the case where XmNselec‐
1543 tionPolicy is XmMULTIPLE_SELECT, except that
1544 XmCR_EXTENDED_SELECT is the callback reason given
1545 if XmNselectionCallback is called.
1546
1547 ContainerCancel():
1548 If a selection is in progress, this action restores selection
1549 states of all items to their state before the selection
1550 began. If XmNautomaticSelection is True and a change in any
1551 item's selection state is made, the XmNselectionCallback is
1552 called with reason XmCR_BROWSE_SELECT, XmMULTIPLE_SELECT, or
1553 XmCR_EXTENDED_SELECT depending on the XmNselectionPolicy
1554 resource and auto_selection_type XmAUTO_CANCEL.
1555
1556 ContainerDeselectAll():
1557 This action deselects all items and calls XmNselectionCall‐
1558 back with reason depending on XmNselectionPolicy.
1559
1560 ContainerEndExtend():
1561 Simply returns if XmNselectionPolicy is XmSINGLE_SELECT or
1562 XmBROWSE_SELECT. Simply returns if XmNlayoutType is XmSPA‐
1563 TIAL.
1564
1565 Otherwise, if XmNautomaticSelection is XmNO_AUTO_SELECT,
1566 XmNselectionCallback(s) is called with either XmCR_MULTI‐
1567 PLE_SELECT or XmCR_EXTENDED_SELECT as the reason depending on
1568 XmNselectionPolicy. If XmNautomaticSelection is
1569 XmAUTO_SELECT and no change is made in any item's selection
1570 state by this action, XmNselectionCallback(s) is called with
1571 either XmCR_MULTIPLE_SELECT or XmCR_EXTENDED_SELECT as the
1572 reason depending on XmNselectionPolicy and auto_selec‐
1573 tion_type XmAUTO_CHANGE. If XmNautomaticSelection is
1574 XmAUTO_SELECT and this action makes no change in any item's
1575 selection state, XmNselectionCallback(s) is called with
1576 either XmCR_MULTIPLE_SELECT or XmCR_EXTENDED_SELECT as the
1577 reason depending on XmNselectionPolicy and auto_selec‐
1578 tion_type XmAUTO_NO_CHANGE.
1579
1580 ContainerEndSelect():
1581 Processing depends on the value of XmNselectionPolicy, as
1582 follows:
1583
1584 XmSINGLE_SELECT
1585 This action calls XmNselectionCallback with reason
1586 XmCR_SINGLE_SELECT.
1587
1588 XmBROWSE_SELECT
1589 If the pointer is no longer over the current anchor
1590 item, this action toggles the current anchor item
1591 and then toggles the item under the pointer (if
1592 any). If XmNautomaticSelection is XmNO_AUTO_SELECT,
1593 the XmNselectionCallback(s) is called with reason
1594 XmCR_BROWSE_SELECT. If XmNautomaticSelection is
1595 XmAUTO_SELECT and a change in any item's selection
1596 state is made, XmNselectionCallback(s) is called
1597 with reason XmCR_BROWSE_SELECT and auto_selec‐
1598 tion_type XmAUTO_CHANGE. If XmNautomaticSelection
1599 is XmAUTO_SELECT and no change is made in any
1600 item's selection state by this action, XmNselec‐
1601 tionCallback(s) is called with reason
1602 XmCR_BROWSE_SELECT and auto_selection_type
1603 XmAUTO_NO_CHANGE.
1604
1605 XmMULTIPLE_SELECT
1606 This action first performs the same processing as
1607 the ContainerButtonMotion() action, except that
1608 XmNselectionCallback is not called. If XmNautomat‐
1609 icSelection is XmNO_AUTO_SELECT, the XmNselection‐
1610 Callback(s) is called with reason XmCR_MULTI‐
1611 PLE_SELECT. If XmNautomaticSelection is
1612 XmAUTO_SELECT and a change in any item's selection
1613 state is made, the XmNselectionCallback(s) is
1614 called with reason XmCR_MULTIPLE_SELECT and
1615 auto_selection_type XmAUTO_CHANGE. If XmNautomat‐
1616 icSelection is XmAUTO_SELECT and this action makes
1617 no change in any item's selection state, XmNselec‐
1618 tionCallback(s) is called with reason XmCR_MULTI‐
1619 PLE_SELECT and auto_selection_type
1620 XmAUTO_NO_CHANGE.
1621
1622 XmEXTENDED_SELECT
1623 This action first performs the same processing as
1624 the ContainerButtonMotion() action, except that
1625 XmNselectionCallback is not called. If XmNautomat‐
1626 icSelection is XmNO_AUTO_SELECT, the XmNselection‐
1627 Callback(s) is called with reason
1628 XmCR_EXTENDED_SELECT. If XmNautomaticSelection is
1629 XmAUTO_SELECT and a change in any item's selection
1630 state is made, XmNselectionCallback(s) is called
1631 with reason XmCR_EXTENDED_SELECT and auto_selec‐
1632 tion_type XmAUTO_CHANGE. If XmNautomaticSelection
1633 is XmAUTO_SELECT and this action makes no change in
1634 any item's selection state, XmNselectionCallback(s)
1635 is called with reason XmCR_EXTENDED_SELECT and
1636 auto_selection_type XmAUTO_NO_CHANGE.
1637
1638 ContainerEndToggle():
1639 Simply returns if XmNselectionPolicy is XmSINGLE_SELECT or
1640 XmBROWSE_SELECT. If XmNselectionPolicy is XmMULTIPLE_SELECT
1641 or XmEXTENDED_SELECT, this action performs the same process‐
1642 ing as the ContainerEndSelect() action.
1643
1644 ContainerEndTransfer()::
1645 If the elapsed time since a ContainerStartTransfer() action
1646 has occurred exceeds the time span specified by the display's
1647 multiclick time, this action returns.
1648
1649 Otherwise, the ContainerPrimaryCopy(), ContainerPrima‐
1650 ryLink(), or ContainerPrimaryMove() action is invoked,
1651 depending on the value of the operation parameter saved by
1652 ContainerStartTransfer().
1653
1654 ContainerExpandOrCollapse(Left|Right|Collapse|Expand):
1655 This action changes the value of the XmNoutlineState of the
1656 current focus widget. If the argument value is Collapse or
1657 Left, the XmNoutlineState resource value is set to XmCOL‐
1658 LAPSED. If the argument value is Expand or Right, the XmNout‐
1659 lineState resource value is set to XmEXPANDED.
1660
1661 If the argument is Left or Right and the layout is right to
1662 left, then the setting of the XmNoutlineState value is
1663 reversed from that described in the preceding paragraph.
1664
1665 Simply returns if XmNlayoutType is XmSPATIAL.
1666
1667 ContainerExtend():
1668 Processing depends on the value of XmNselectionPolicy, as
1669 follows:
1670
1671 If the selection policy is XmSINGLE_SELECT or
1672 XmBROWSE_SELECT, this action returns. If XmNlayoutType is
1673 XmSPATIAL, this action returns.
1674
1675 If the selection policy is XmMULTIPLE_SELECT, this action
1676 sets the selection state of all items between the anchor item
1677 and the location cursor to the selection state of the anchor
1678 item.
1679
1680 If the selection policy is XmEXTENDED_SELECT and the Con‐
1681 tainer is in Normal Mode, this action deselects all items and
1682 selects all items between the anchor item and the location
1683 cursor. If the selection policy is XmEXTENDED_SELECT and the
1684 Container is in Add Mode, this action sets the selection
1685 state of all items between the anchor item and the location
1686 cursor to the selection state of the anchor item.
1687
1688 XmNselectionCallback is called with reason XmCR_MULTI‐
1689 PLE_SELECT or XmCR_EXTENDED_SELECT depending on XmNselection‐
1690 Policy.
1691
1692 ContainerExtendCursor(Left|Right|Up|Down):
1693 Processing depends on the value of XmNselectionPolicy, as
1694 follows:
1695
1696 If the selection policy is XmSINGLE_SELECT or
1697 XmBROWSE_SELECT, this action returns. If XmNlayoutType is
1698 XmSPATIAL, this action returns.
1699
1700 This action moves the location cursor one item in the indi‐
1701 cated direction, if possible. If the value of the argument
1702 string is First or Last, this action moves the location cur‐
1703 sor to the indicated item. For other values of the argument
1704 string, the location cursor is not affected.
1705
1706 If the selection policy is XmMULTIPLE_SELECT, this action
1707 sets the selection state of all items between the anchor item
1708 and the location cursor to the selection state of the anchor
1709 item.
1710
1711 If the selection policy is XmEXTENDED_SELECT and the Con‐
1712 tainer is in Normal Mode, this action deselects all items and
1713 selects all items between the anchor item and the location
1714 cursor. If the selection policy is XmEXTENDED_SELECT and the
1715 Container is in Add Mode, this action sets the selection
1716 state of all items between the anchor item and the location
1717 cursor to the selection state of the anchor item.
1718
1719 XmNselectionCallback is called with reason XmCR_MULTI‐
1720 PLE_SELECT or XmCR_EXTENDED_SELECT depending on XmNselection‐
1721 Policy.
1722
1723 ContainerHandleBtn1Down(string)
1724 When Display's XmNenableBtn1Transfer resource is not XmOFF,
1725 the actions for selection and transfer are integrated on
1726 <Btn1>. If the pointer is over an unselected item or back‐
1727 ground, the item is first selected before the transfer is
1728 started. Otherwise, if the item is already selected, the
1729 transfer is started. The value of string can be one of the
1730 following actions:
1731
1732 · ContainerBeginSelect,Copy
1733
1734 · ContainerBeginToggle,Copy
1735
1736 · ContainerNoop,Link
1737
1738 · ContainerBeginExtend,Move
1739
1740 ContainerHandleBtn1Motion(string)
1741 When Display's XmNenableBtn1Transfer resource is not XmOFF,
1742 the actions for selection and transfer are integrated on
1743 <Btn1>. When this action is invoked, and a selection is in
1744 progress, a drag is performed. Otherwise, the default action
1745 as specified in string is performed. The value of string can
1746 be ContainerButtonMotion.
1747
1748 ContainerHandleBtn1Up(string)
1749 If a Button 1 transfer was in progress, then when this action
1750 is invoked, that transfer is cancelled. Otherwise, the
1751 default action as specified in string is performed. The value
1752 of string can be one of the following actions:
1753
1754 · ContainerEndSelect
1755
1756 · ContainerEndToggle
1757
1758 · ContainerEndExtend
1759
1760 ContainerHandleBtn2Down(string)
1761 When Display's XmNenableBtn1Transfer resource has a value of
1762 XmBUTTON2_ADJUST, the actions for extending selection are
1763 bound on <Btn2>. Otherwise, the action that is performed
1764 depends on the value of string, which can be one of the fol‐
1765 lowing actions:
1766
1767 · ContainerStartTransfer,Copy
1768
1769 · ContainerStartTransfer,Link
1770
1771 · ContainerStartTransfer,Move
1772
1773 ContainerHandleBtn2Motion(string)
1774 When Display's XmNenableBtn1Transfer resource is not XmBUT‐
1775 TON2_ADJUST, and a selection is in progress, a drag is per‐
1776 formed. Otherwise, the default action that is performed
1777 depends on the value of string, which can be ContainerButton‐
1778 Motion.
1779
1780 ContainerHandleBtn2Up(string)
1781 When Display's XmNenableBtn1Transfer resource has a value of
1782 XmBUTTON2_ADJUST, this action ends an extend. Otherwise, the
1783 action that is performed depends on the value of string,
1784 which can be ContainerEndTransfer.
1785
1786 ContainerMoveCursor(Left|Right|Up|Down|First|Last):
1787 If the argument is Left, Right, Up, or Down, this action
1788 moves the location cursor one item in the indicated direc‐
1789 tion, if possible. If the value of the argument string is
1790 First or Last, this action moves the location cursor to the
1791 indicated item. Any other arguments are ignored.
1792
1793 If XmNselectionPolicy is XmBROWSE_SELECT, or if XmNselection‐
1794 Policy is XmEXTENDED_SELECT and the Container is in Normal
1795 Mode, this action deselects all items, selects the item at
1796 the location cursor, and calls XmNselectionCallback with the
1797 reason depending on XmNselectionPolicy.
1798
1799 ContainerPrimaryCopy():
1800 This action requests that primary selection data be copied to
1801 the Container. This action calls the XmNdestinationCallback
1802 procedures for the PRIMARY selection and the XmCOPY opera‐
1803 tion. By default, the Container does not do any transfer,
1804 and copying the selection is the responsibility of the XmN‐
1805 destinationCallback procedures.
1806
1807 ContainerPrimaryLink():
1808 This action requests that primary selection data be linked to
1809 the Container. This action calls the XmNdestinationCallback
1810 procedures for the PRIMARY selection and the XmLINK opera‐
1811 tion. By default, the Container does not do any transfer,
1812 and linking the selection is the responsibility of the XmN‐
1813 destinationCallback procedures.
1814
1815 ContainerPrimaryMove():
1816 This action requests that primary selection data be copied to
1817 the Container and deleted from the primary source. This
1818 action calls the XmNdestinationCallback procedures for the
1819 PRIMARY selection and the XmMOVE operation. By default, the
1820 Container does not do any transfer, and moving the selection
1821 is the responsibility of the XmNdestinationCallback proce‐
1822 dures. If the transfer is successful, this action then calls
1823 the selection owner's XmNconvertCallback procedures for the
1824 PRIMARY selection and the DELETE target.
1825
1826 ContainerSelect():
1827 Processing depends on the value of XmNselectionPolicy, as
1828 follows:
1829
1830 If the selection policy is XmSINGLE_SELECT or
1831 XmBROWSE_SELECT, this action deselects all items and selects
1832 the item at the location cursor.
1833
1834 If the selection policy is XmMULTIPLE_SELECT, this action
1835 toggles the selection state of the item at the location cur‐
1836 sor. This item becomes the anchor item for further selec‐
1837 tions.
1838
1839 If the selection policy is XmEXTENDED_SELECT and the Con‐
1840 tainer is in Normal Mode, this action deselects all items and
1841 selects the item at the location cursor. If the selection
1842 policy is XmEXTENDED_SELECT and the Container is in Add Mode,
1843 this action toggles the selection state of the item at the
1844 location cursor. The selected/toggled item becomes the
1845 anchor item for further selections.
1846
1847 XmNselectionCallback is called with the reason depending on
1848 XmNselectionPolicy.
1849
1850 ContainerSelectAll():
1851 If XmNselectionPolicy is XmSINGLE_SELECT or XmBROWSE_SELECT,
1852 this action deselects all items and selects the item at the
1853 location cursor position.
1854
1855 If XmNselectionPolicy is XmMULTIPLE_SELECT or XmEX‐
1856 TENDED_SELECT, this action selects all items.
1857
1858 XmNselectionCallback is called with the reason depending on
1859 the value of XmNselectionCallback.
1860
1861 ContainerStartTransfer(Copy|Move|Link):
1862 This action saves the event and the operation specified in
1863 the argument string for use by subsequent actions. If no
1864 ContainerEndTransfer() actions occur within the time span
1865 specified by the display's multiclick time and if XmNlayout‐
1866 Type is XmSPATIAL, this action creates a DragContext and
1867 starts a drag transfer by using string to specify the trans‐
1868 fer operation. If no argument string is specified, Copy is
1869 the default value.
1870
1871 Unless default drag and drop behavior has been overridden by
1872 a XmNconvertCallback procedure, if the drop operation occurs
1873 within the Container, then the item(s) being dragged are
1874 relocated at the position of the drop operation. If the item
1875 targeted by the Drag operation is not in the selected state,
1876 then only that item is moved. If the item is in the selected
1877 state, however, all items in the selected state are moved.
1878
1879 ContainerToggleMode():
1880 If XmNselectionPolicy is XmEXTENDED_SELECT, this action tog‐
1881 gles the Container between Normal Mode and Add Mode.
1882
1883 Additional Behavior
1884 The Container widget has the following additional behavior:
1885
1886 <Btn1Down>(2+)
1887 If a button click is followed by another button click within
1888 the time span specified by the display's multiclick time, the
1889 Container interprets that as a double-click and calls the
1890 XmNdefaultActionCallback callbacks.
1891
1892 <FocusIn>:
1893 If the focus policy is explicit, sets the focus and draws the
1894 location cursor.
1895
1896 <FocusOut>:
1897 If the focus policy is explicit, removes the focus and erases
1898 the location cursor.
1899
1900 Virtual Bindings
1901 The bindings for virtual keys are vendor specific. For information
1902 about bindings for virtual buttons and keys, see VirtualBindings(3).
1903
1905 Composite(3), Constraint(3), Core(3), XmContainerCopy, XmContainerCopy‐
1906 Link, XmContainerCut, XmContainerGetItemChildren, XmContainerPaste,
1907 XmContainerPasteLink, XmContainerRelayout(3), XmContainerReorder(3),
1908 XmCreateContainer(3), XmCreateIconGadget(3), XmIconGadget(3), XmMan‐
1909 ager(3), XmVaCreateContainer(3), and XmVaCreateManagedContainer(3).
1910
1911
1912
1913 XmContainer(library call)