1XmNotebook(library call) XmNotebook(library call)
2
3
4
6 XmNotebook — The Notebook widget class
7
9 #include <Xm/Notebook.h>
10
12 Notebook is a manager widget that organizes its children into pages,
13 tabs, status areas, and page scrollers to simulate a real notebook. It
14 stacks its page children so that all page children occupy the same area
15 like real book pages. Notebook displays visuals that look like the
16 binding of a book and the edges of other pages around the page that is
17 shown. Tab children simulate notebook tabs. Major tabs divide Notebook
18 into several sections, and minor tabs subdivide these sections. Status
19 area children provide additional information about pages such as page
20 numbers. The page scroller child allows the user to move from page to
21 page. Notebook also provides tab scrollers for scrolling major and
22 minor tabs if it cannot display all tabs within its edges.
23
24 The application creates pages, tabs, status areas, and page scroller as
25 children of the Notebook widget. Notebook creates tab scrollers when
26 the Notebook is created.
27
28 The XmNnotebookChildType constraint resource of Notebook determines
29 whether a child widget is a page, tab, status area, or page scroller.
30 Any Motif widget can be a page of the Notebook. When the application
31 creates a child of the Notebook widget without setting the child type
32 constraint, the child becomes a page by default, unless it has the XmQ‐
33 Tactivatable, XmQTaccessTextual, or XmQTnavigator trait. Children with
34 the XmQTactivatable, XmQTaccessTextual, or XmQTnavigator trait become
35 major tabs, status areas, and page scrollers, respectively.
36
37 Notebook uses the XmQTaccessTextual, XmQTactivatable, XmQTjoinSide, and
38 XmQTnavigator traits, and installs the XmQTscrollFrame trait.
39
40 The application attaches a tab to a page by creating a tab child of the
41 Notebook and setting the XmNpageNumber constraint to the page number of
42 the targeted page. By the same method, a status area widget can be
43 attached to a page. The page scroller child, on the other hand, is
44 associated with the Notebook, not with a specific page. Therefore,
45 there is only one valid page scroller for each Notebook.
46
47 Pages
48 Only one child of type XmPAGE is displayed at a time by Notebook.
49 Other page children are hidden off-screen. When Notebook displays a
50 particular page, it positions the previously-displayed page off-screen
51 and puts the new page in its place. The page is resized to fit into the
52 dimensions that Notebook has allocated to display pages.
53
54 Page Numbers
55 Notebook uses the XmNcurrentPageNumber, XmNfirstPageNumber, and XmN‐
56 lastPageNumber resources to determine the current page and available
57 page number range. Only those pages whose page numbers are within the
58 range can be displayed. Other pages cannot be displayed until the range
59 between XmNfirstPageNumber and XmNlastPageNumber is changed to include
60 them or their page numbers are changed to a number within the range.
61
62 If XmNfirstPageNumber and XmNlastPageNumber are not set explicitly by
63 the application, they are set to 1 by default; Notebook sets XmNlastPa‐
64 geNumber to the largest page number assigned by the application there‐
65 after by default. However, once XmNlastPageNumber is set by the appli‐
66 cation, Notebook no longer changes it even when a page with a higher
67 page number is managed.
68
69 The XmNpageNumber constraint resource is used for specifying the page
70 number of a page widget. It can be set to any integer. For tab and sta‐
71 tus area children, the resource is used for linking the child widget to
72 a page. For the page scroller child, the resource has no meaning and
73 is ignored by the Notebook.
74
75 When a page without a page number is managed, Notebook assigns it the
76 smallest unallocated page number that is not less than the first page
77 number and greater than the last allocated page number. When a tab or a
78 status area without a page number is managed, the newly managed widget
79 is assigned the page number of the most recently managed page, unless
80 the page already has the same type of child. If the page does have the
81 same type of child, Notebook assigns the newly managed widget a page
82 number one greater than the most recently managed page; this new page
83 number is now occupied. Notebook may generate a default page number
84 greater than XmNlastPageNumber, making those pages inaccessible to the
85 user.
86
87 Duplicate and Empty Pages
88 Since an application can create or change page numbers, it is possible
89 to have duplicate page numbers and empty pages. When two pages with the
90 same page number are managed, only the more recently managed page can
91 be displayed. Inserting a page with an existing page number does not
92 cause a warning. The old page widget cannot be displayed until the new
93 page widget is removed from the Notebook or until the page number of
94 the old page widget is changed to some other number.
95
96 An empty page is a page slot where no page is inserted. Empty pages
97 occur when a tab or status area is associated with a page number that
98 has no matching page widget. Empty pages display the blank Notebook
99 background unless the application provides visual information to this
100 empty area while processing XmNpageChangedCallback.
101
102 Notebook Visuals
103 Notebook draws lines around two sides of the top page to simulate the
104 edges of other pages that are behind the top page. The XmNbackPage‐
105 Placement and XmNorientation resources determine which two sides have
106 the lines drawn around them. By default, they are drawn on the bottom
107 and right sides of the top page. The application can set resources to
108 control how many lines are drawn and how wide the area that they are
109 drawn in is. Applications can also choose from three styles of binding
110 visual that simulates the binding of a Notebook. Solid or spiral bind‐
111 ings can be drawn by Notebook, or the application can supply a pixmap
112 that is tiled into the binding.
113
114 Tabs
115 A major or minor tab is a Motif widget with the XmQTactivatable trait.
116 If a widget without the trait is created for a tab, Notebook does not
117 provide the page activation callback. As a result, even though the tab
118 is displayed, it cannot automatically move the associated page to the
119 top.
120
121 Major tabs divide the Notebook pages into sections. Minor tabs subdi‐
122 vide these sections. Only minor tabs associated with the current sec‐
123 tion are displayed, where a section consists of the group of pages
124 between the current major tab and the next major tab, including the
125 current major tab but not including the page containing the next major
126 tab. The exception to this is when there is no preceding major tab, in
127 which case the section starts from the XmNfirstPageNumber value. A
128 user in one major tab section does not see the minor tabs in other sec‐
129 tions. However, all tabs are used in computing the size of the Note‐
130 book.
131
132 Unlike regular notebook tabs, tabs in the Notebook are not attached to
133 a physical page (a widget). They are, instead, attached to a logical
134 page (a page number). Therefore, it is possible to have a tab with an
135 empty page. When a page with a tab is removed from the Notebook, the
136 tab is not removed because it is still bound to a logical page.
137 Destroying or unmanaging a page widget only erases the page and leaves
138 an empty page. It does not tear the page out of the Notebook. To
139 remove the tab, the application must explicitly destroy or unmanage it.
140
141 Notebook supports the XmQTjoinSide trait. A widget that has the
142 XmQTjoinSide trait can be added to the Notebook as a Major or Minor tab
143 and will appear to be attached to its associated page with no margins
144 or shadows between them.
145
146 Status Areas
147 A status area is any widget that is used for describing the associated
148 page. For example, the Label widget as a status area child can hold a
149 simple string or a pixmap that describes a page. A status area widget
150 is also attached to a page by the page number constraint resource.
151 Therefore, it is possible to have multiple status area widgets for one
152 page. Only the most recently managed status area widget for that page
153 can be displayed. All others for that page are not unmanaged, but their
154 sizes are used for computing the size of the Notebook. If no status
155 area widget is provided, the Notebook displays its blank background in
156 the status area's reserved space. Notebook does not create any default
157 status area widget.
158
159 Page Scrollers
160 The page scroller of the Notebook is any widget that the application
161 creates for scrolling pages. If the application does not create one
162 when the Notebook is realized, Notebook creates a SpinBox widget as the
163 default page scroller. If the application creates a new page scroller,
164 the default page scroller is destroyed. If the application creates mul‐
165 tiple page scrollers, only the most recently managed one can be dis‐
166 played and used. All others are unmanaged.
167
168 The default SpinBox page scroller grays out one of the arrow visuals if
169 the current page is a boundary page. If the current page is the first
170 page, the previous arrow of the SpinBox is grayed. If the current page
171 is the last page, the next arrow of the SpinBox is grayed.
172
173 Tab Scrollers
174 Tab scrollers are created by the Notebook for scrolling major tabs and
175 minor tabs. When Notebook is initialized, it creates four ArrowButton‐
176 Gadgets for scrolling to the next major tab, the previous major tab,
177 the next minor tab, and the previous minor tab. The application cannot
178 replace these tab scrollers. The application can change all resources
179 of these widgets except the position and the arrow direction. Tab
180 scrollers are only visible and enabled when there is not enough space
181 to display all the major or minor tabs appropriate to the page. Tab
182 scrollers are also grayed out when scrolling is inappropriate. The fol‐
183 lowing lists the tab scrollers that are created:
184
185 ┌─────────────────────────────────────────────────────────────────────────────┐
186 │ Child Wid│gets that XmNotebook Create│s │
187 │Child │ Name │ Widget Class │
188 ├────────────────────────────┼──────────────────────────┼─────────────────────┤
189 │Page Scroller │ PageScroller │ XmSpinBox │
190 ├────────────────────────────┼──────────────────────────┼─────────────────────┤
191 │Next Major Tab Scroller │ MajorTabScrollerNext │ XmArrowButtonGadget │
192 ├────────────────────────────┼──────────────────────────┼─────────────────────┤
193 │Previous Major Tab Scroller │ MajorTabScrollerPrevious │ XmArrowButtonGadget │
194 ├────────────────────────────┼──────────────────────────┼─────────────────────┤
195 │Next Minor Tab Scroller │ MinorTabScrollerNext │ XmArrowButtonGadget │
196 ├────────────────────────────┼──────────────────────────┼─────────────────────┤
197 │Previous Minor Tab Scroller │ MinorTabScrollerPrevious │ XmArrowButtonGadget │
198 ├────────────────────────────┼──────────────────────────┼─────────────────────┤
199 └────────────────────────────┴──────────────────────────┴─────────────────────┘
200 When the user selects the page scroller, a major tab, or a minor tab,
201 the value of XmNcurrentPageNumber is changed to the selected page num‐
202 ber and XmNpageChangedCallback is invoked. After the application
203 returns from the callback, the Notebook displays the last page child
204 whose page number is equal to the current page number. It also displays
205 the last matched status area child. All other pages and status areas
206 are automatically hidden. Major tabs and minor tabs that can fit into
207 the Notebook's edges are displayed and positioned appropriately. All
208 other tabs are also hidden. The application can also cause a page
209 change by calling XtSetValues on XmNcurrentPageNumber and then calling
210 XtCallCallbacks on XmNpageChangedCallback.
211
212 Orientation
213 The Notebook has eight different visual configurations, depending on
214 the value of XmNbackPagePlacement and XmNorientation. These two
215 resources determine the placement of back pages, the binding, major
216 tabs, minor tabs, the status area, and the page scroller. The location
217 of the binding is determined by XmNorientation. Major tabs are always
218 placed on the back page side opposite to the binding; Minor tabs are
219 placed on the back page display area that is visually connected to the
220 binding. Both Major and Minor tabs are ordered so that the page num‐
221 bers they access increase as they get closer to the corner where the
222 back pages meet. The status area and the page scroller are always
223 located on the bottom of the Notebook, inside the frame. The page
224 scroller is always placed adjacent to a back page side. The following
225 table shows the possible configurations and the locations of each Note‐
226 book component within the configuration. The default back page value
227 and the default orientation are based upon XmNlayoutDirection.
228
229 ┌─────────────────────────────────────────────────────────────────────────────┐
230 │ │ Notebook Con│figurations │ │ │
231 │XmNbackPagePlacement │ XmNorientation │ Major Tabs │ Status Area │ Binding │
232 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
233 │ │ │ Minor Tabs │ Page Scroller │ │
234 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
235 │XmBOTTOM_RIGHT │ XmHORIZONTAL │ RIGHT │ BOTTOM LEFT │ LEFT │
236 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
237 │ │ │ BOTTOM │ BOTTOM RIGHT │ │
238 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
239 │XmBOTTOM_RIGHT │ XmVERTICAL │ BOTTOM │ BOTTOM LEFT │ TOP │
240 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
241 │ │ │ RIGHT │ BOTTOM RIGHT │ │
242 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
243 │XmBOTTOM_LEFT │ XmHORIZONTAL │ LEFT │ BOTTOM RIGHT │ RIGHT │
244 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
245 │ │ │ BOTTOM │ BOTTOM LEFT │ │
246 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
247 │XmBOTTOM_LEFT │ XmVERTICAL │ BOTTOM │ BOTTOM RIGHT │ TOP │
248 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
249 │ │ │ LEFT │ BOTTOM LEFT │ │
250 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
251 │XmTOP_RIGHT │ XmHORIZONTAL │ RIGHT │ BOTTOM LEFT │ LEFT │
252 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
253 │ │ │ TOP │ BOTTOM RIGHT │ │
254 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
255 │XmTOP_RIGHT │ XmVERTICAL │ TOP │ BOTTOM LEFT │ BOTTOM │
256 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
257 │ │ │ RIGHT │ BOTTOM RIGHT │ │
258 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
259 │XmTOP_LEFT │ XmHORIZONTAL │ LEFT │ BOTTOM RIGHT │ RIGHT │
260 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
261 │ │ │ TOP │ BOTTOM LEFT │ │
262 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
263 │XmTOP_LEFT │ XmVERTICAL │ TOP │ BOTTOM RIGHT │ BOTTOM │
264 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
265 │ │ │ LEFT │ BOTTOM LEFT │ │
266 ├─────────────────────┼────────────────┼────────────┼───────────────┼─────────┤
267 └─────────────────────┴────────────────┴────────────┴───────────────┴─────────┘
268 There are three tab groups for tab group traversal inside the Notebook:
269 major tabs, minor tabs, and the page scroller. The application can
270 also create additional types of tab groups within the Notebook; for
271 example, each page added by the application is treated as a separate
272 tab group by the traversal actions.
273
274 Classes
275 Notebook inherits behavior, resources, and traits from Core, Composite,
276 Constraint, and XmManager classes.
277
278 The class pointer is xmNotebookWidgetClass.
279
280 The class name is XmNotebook.
281
282 New Resources
283 The following table defines a set of widget resources used by the pro‐
284 grammer to specify data. The programmer can also set the resource val‐
285 ues for the inherited classes to set attributes for this widget. To
286 reference a resource by name or by class in a .Xdefaults file, remove
287 the XmN or XmC prefix and use the remaining letters. To specify one of
288 the defined values for a resource in a .Xdefaults file, remove the Xm
289 prefix and use the remaining letters (in either lowercase or uppercase,
290 but include any underscores between words). The codes in the access
291 column indicate if the given resource can be set at creation time (C),
292 set by using XtSetValues (S), retrieved by using XtGetValues (G), or is
293 not applicable (N/A).
294
295 ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐
296 │ │ XmNotebook R│esource Set │ │ │
297 │Name │ Class │ Type │ Default │ Access │
298 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
299 │XmNbackPageBackground │ XmCBackPageBackground │ Pixel │ dynamic │ CSG │
300 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
301 │XmNbackPageForeground │ XmCBackPageForeground │ Pixel │ dynamic │ CSG │
302 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
303 │XmNbackPageNumber │ XmCBackPageNumber │ Cardinal │ 2 │ CSG │
304 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
305 │XmNbackPagePlacement │ XmCBackPagePlacement │ unsigned char │ dynamic │ CSG │
306 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
307 │XmNbackPageSize │ XmCBackPageSize │ Dimension │ 8 │ CSG │
308 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
309 │XmNbindingPixmap │ XmCBindingPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
310 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
311 │XmNbindingType │ XmCBindingType │ unsigned char │ XmSPIRAL │ CSG │
312 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
313 │XmNbindingWidth │ XmCBindingWidth │ Dimension │ 25 │ CSG │
314 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
315 │XmNcurrentPageNumber │ XmCCurrentPageNumber │ int │ dynamic │ CSG │
316 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
317 │XmNfirstPageNumber │ XmCFirstPageNumber │ int │ 1 │ CSG │
318 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
319 │XmNframeBackground │ XmCFrameBackground │ Pixel │ dynamic │ CSG │
320 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
321 │XmNframeShadowThickness │ XmCShadowThickness │ Dimension │ 0 │ CSG │
322 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
323 │XmNinnerMarginHeight │ XmCInnerMarginHeight │ Dimension │ 0 │ CSG │
324 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
325 │XmNinnerMarginWidth │ XmCInnerMarginWidth │ Dimension │ 0 │ CSG │
326 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
327 │XmNlastPageNumber │ XmCLastPageNumber │ int │ dynamic │ CSG │
328 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
329 │XmNminorTabSpacing │ XmCMinorTabSpacing │ Dimension │ 3 │ CSG │
330 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
331 │XmNmajorTabSpacing │ XmCMajorTabSpacing │ Dimension │ 3 │ CSG │
332 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
333 │XmNorientation │ XmCOrientation │ unsigned char │ XmHORIZONTAL │ CSG │
334 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
335 │XmNpageChangedCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
336 ├────────────────────────┼───────────────────────┼────────────────┼──────────────────────┼────────┤
337 └────────────────────────┴───────────────────────┴────────────────┴──────────────────────┴────────┘
338 XmNbackPageBackground
339 Specifies the background color for drawing back pages. The
340 default is a lower-intensity version of XmNframeBackground.
341
342 XmNbackPageForeground
343 Specifies the forground color for drawing back pages. The
344 default is taken from the application's default foreground
345 color.
346
347 XmNbackPageNumber
348 Specifies the number of lines to draw for back pages. The
349 minimum value is 1, and the maximum value is (XmNbackPageSize
350 / 2).
351
352 XmNbackPagePlacement
353 Specifies where to place the back pages. The default is
354 dependent on the XmNlayoutDirection resource of the Note‐
355 book's instance parents. It can have one of the following
356 values:
357
358 XmBOTTOM_RIGHT
359 Displays back pages on the Notebook's bottom and
360 right sides.
361
362 XmBOTTOM_LEFT
363 Displays back pages on the Notebook's bottom and
364 left sides.
365
366 XmTOP_RIGHT
367 Displays back pages on the Notebook's top and right
368 sides.
369
370 XmTOP_LEFT
371 Displays back pages on the Notebook's top and left
372 sides.
373
374 XmNbackPageSize
375 Specifies the thickness of the back page rendering.
376
377 XmNbindingPixmap
378 Specifies the pixmap or bitmap for stippling or tiling the
379 binding when XmNbindingType is XmPIXMAP or XmPIXMAP_OVER‐
380 LAP_ONLY.
381
382 XmNbindingType
383 Specifies the binding type. It can have one of the following
384 values:
385
386 XmNONE Displays no binding.
387
388 XmSOLID Displays a solid binding in the foreground color of
389 the Notebook within the binding area specified by
390 XmNbindingWidth.
391
392 XmSPIRAL Displays a spiral binding in the foreground color
393 of the Notebook within the area specified by XmN‐
394 bindingWidth and within the area outside of the
395 frame equal to the area specified by XmNbinding‐
396 Width.
397
398 XmPIXMAP Displays the binding with the pixmap or bitmap
399 specified by XmNbindingPixmap as a stipple or tile.
400 It uses the foreground color of the Notebook for
401 stippling. The binding width is decided by the
402 larger value of XmNbindingWidth and the width of
403 the pixmap or bitmap.
404
405 XmPIXMAP_OVERLAP_ONLY
406 Displays the binding with the pixmap or bitmap
407 specified by XmNbindingPixmap as a stipple or tile.
408 It uses the foreground color of the Notebook for
409 stippling. The binding is displayed only within the
410 binding area specified by XmNbindingWidth.
411
412 XmNbindingWidth
413 Specifies the width of the Notebook binding. If XmNbinding‐
414 Type is XmPIXMAP and the width of the pixmap specified in
415 XmNbindingPixmap is greater than XmNbindingWidth, then this
416 resource is ignored and the width of the pixmap is used as
417 the width of the Notebook binding instead.
418
419 XmNcurrentPageNumber
420 Specifies the page number of the currently displayed page.
421 Initially, it is set to XmNfirstPageNumber. If it is set to
422 less than XmNfirstPageNumber, then it is set to XmNfirstPa‐
423 geNumber. If it is set to XmNlastPageNumber, then it is set
424 to XmNlastPageNumber.
425
426 XmNfirstPageNumber
427 Specifies the page number for the first page of the Notebook.
428 The Notebook does not scroll to any page numbers below this
429 value.
430
431 XmNframeBackground
432 Specifies the background color for drawing the Notebook's
433 frame.
434
435 XmNframeShadowThickness
436 Specifies the shadow thickness around the Notebook's frame.
437
438 XmNinnerMarginHeight
439 Specifies the margin on the top and bottom sides of the page,
440 status area, and page scroller widgets.
441
442 XmNinnerMarginWidth
443 Specifies the margin on the left and right sides of the page,
444 status area, and page scroller widgets.
445
446 XmNlastPageNumber
447 Specifies the page number for the last page of the Notebook.
448 The Notebook does not scroll to any page numbers above this
449 value. The default page number is the largest page number of
450 managed page, major tab, or minor tab widgets. If this is
451 set to a value that is less than XmNfirstPageNumber, the
452 behavior of the Notebook is undefined.
453
454 XmNmajorTabSpacing
455 Specifies the spacing distance between major tabs. If XmN‐
456 frameShadowThickness is greater than XmNmajorTabSpacing, then
457 this resource is ignored and the size of XmNframeShadowThick‐
458 ness is used as the spacing distance between major tabs.
459
460 XmNminorTabSpacing
461 Specifies the spacing distance between minor tabs. If XmN‐
462 frameShadowThickness is greater than XmNminorTabSpacing, then
463 this resource is ignored and the size of XmNframeShadowThick‐
464 ness is used as the spacing distance between minor tabs.
465
466 XmNorientation
467 Specifies the orientation of the Notebook. It can have one of
468 the following values:
469
470 XmHORIZONTAL
471 Places the binding beside the pages, in the left or
472 right side of the frame.
473
474 XmVERTICAL
475 Places the binding above or below the pages, in the
476 top or the bottom of the frame.
477
478 XmNpageChangedCallback
479 Specifies the list of callbacks to call whenever the XmNcur‐
480 rentPageNumber, representing the current page number, is
481 changed. This includes the point when the widget is realized
482 and the page number is initialized. The callback structure
483 is XmNotebookCallbackStruct. The reason is XmCR_MAJOR_TAB,
484 XmCR_MINOR_TAB, XmCR_PAGE_SCROLLER_INCREMENT,
485 XmCR_PAGE_SCROLLER_DECREMENT, or XmCR_NONE, depending upon
486 what action caused the Notebook to display a new page.
487
488 ┌───────────────────────────────────────────────────────────────────────────────┐
489 │ │XmNotebook Constraint │Resource Set │ │ │
490 │Name │ Class │ Type │ Default │ Access │
491 ├─────────────────────┼──────────────────────┼───────────────┼─────────┼────────┤
492 │XmNnotebookChildType │ XmCNotebookChildType │ unsigned char │ dynamic │ CG │
493 ├─────────────────────┼──────────────────────┼───────────────┼─────────┼────────┤
494 │XmNpageNumber │ XmCPageNumber │ int │ dynamic │ CSG │
495 ├─────────────────────┼──────────────────────┼───────────────┼─────────┼────────┤
496 │XmNresizable │ XmCResizable │ Boolean │ True │ CSG │
497 ├─────────────────────┼──────────────────────┼───────────────┼─────────┼────────┤
498 └─────────────────────┴──────────────────────┴───────────────┴─────────┴────────┘
499 XmNnotebookChildType
500 Specifies the child type of the Notebook. It can be one of
501 the following types:
502
503 XmPAGE The child is a page of the Notebook. This is the
504 default when the child does not have the XmQTacti‐
505 vatable, XmQTaccessTextual, or XmQTnavigator trait.
506
507 XmMAJOR_TAB
508 The child is a major tab. This is the default when
509 the child has the XmQTactivatable trait.
510
511 XmMINOR_TAB
512 The child is a minor tab.
513
514 XmSTATUS_AREA
515 The child is a status area. This is the default
516 when the child has the XmQTaccessTextual trait and
517 does not have the XmQTactivatable trait.
518
519 XmPAGE_SCROLLER
520 The child is the page scroller. The default page
521 scroller is destroyed, if it exists. Any previously
522 created page scrollers are unmanaged. This is the
523 default when the child has the XmQTnavigator trait
524 and does have the XmQTactivatable trait or the XmQ‐
525 TaccessTextual trait.
526
527 XmNpageNumber
528 Specifies the page number associated with the widget. If the
529 widget is a page, the number specifies the page number of the
530 widget. If the widget is not a page, the number specifies
531 the page number of the associated page. If none is supplied
532 by the application, Notebook generates the smallest unallo‐
533 cated page number when the child is managed. This resource
534 is ignored for the page scroller.
535
536 XmNresizable
537 Specifies whether this child can request a resize.
538
539 Inherited Resources
540 Notebook inherits behavior and resources from the superclasses
541 described in the following tables. For a complete description of each
542 resource, refer to the reference page for that superclass.
543
544 ┌────────────────────────────────────────────────────────────────────────────────────────────────────┐
545 │ │ XmManager │Resource Set │ │ │
546 │Name │ Class │ Type │ Default │ Access │
547 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
548 │XmNbottomShadowColor │ XmCBottomShadowColor │ Pixel │ dynamic │ CSG │
549 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
550 │XmNbottomShadowPixmap │ XmCBottomShadowPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
551 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
552 │XmNforeground │ XmCForeground │ Pixel │ dynamic │ CSG │
553 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
554 │XmNhelpCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
555 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
556 │XmNhighlightColor │ XmCHighlightColor │ Pixel │ dynamic │ CSG │
557 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
558 │XmNhighlightPixmap │ XmCHighlightPixmap │ Pixmap │ dynamic │ CSG │
559 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
560 │XmNinitialFocus │ XmCInitialFocus │ Widget │ NULL │ CSG │
561 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
562 │XmNlayoutDirection │ XmCLayoutDirection │ XmDirection │ dynamic │ CG │
563 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
564 │XmNnavigationType │ XmCNavigationType │ XmNavigationType │ XmTAB_GROUP │ CSG │
565 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
566 │XmNpopupHandlerCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
567 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
568 │XmNshadowThickness │ XmCShadowThickness │ Dimension │ 0 │ CSG │
569 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
570 │XmNstringDirection │ XmCStringDirection │ XmStringDirection │ dynamic │ CG │
571 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
572 │XmNtopShadowColor │ XmCTopShadowColor │ Pixel │ dynamic │ CSG │
573 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
574 │XmNtopShadowPixmap │ XmCTopShadowPixmap │ Pixmap │ dynamic │ CSG │
575 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
576 │XmNtraversalOn │ XmCTraversalOn │ Boolean │ True │ CSG │
577 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
578 │XmNunitType │ XmCUnitType │ unsigned char │ dynamic │ CSG │
579 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
580 │XmNuserData │ XmCUserData │ XtPointer │ NULL │ CSG │
581 ├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
582 └────────────────────────┴───────────────────────┴───────────────────┴──────────────────────┴────────┘
583 ┌───────────────────────────────────────────────────────────────────────┐
584 │ │ Composite Reso│urce Set │ │ │
585 │Name │ Class │ Type │ Default │ Access │
586 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
587 │XmNchildren │ XmCReadOnly │ WidgetList │ NULL │ G │
588 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
589 │XmNinsertPosition │ XmCInsertPosition │ XtOrderProc │ NULL │ CSG │
590 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
591 │XmNnumChildren │ XmCReadOnly │ Cardinal │ 0 │ G │
592 ├──────────────────┼───────────────────┼─────────────┼─────────┼────────┤
593 └──────────────────┴───────────────────┴─────────────┴─────────┴────────┘
594 ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
595 │ │ Core Resource Se│t │ │ │
596 │Name │ Class │ Type │ Default │ Access │
597 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
598 │XmNaccelerators │ XmCAccelerators │ XtAccelerators │ dynamic │ CSG │
599 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
600 │XmNancestorSensitive │ XmCSensitive │ Boolean │ dynamic │ G │
601 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
602 │XmNbackground │ XmCBackground │ Pixel │ dynamic │ CSG │
603 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
604 │XmNbackgroundPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
605 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
606 │XmNborderColor │ XmCBorderColor │ Pixel │ XtDefaultForeground │ CSG │
607 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
608 │XmNborderPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
609 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
610 │XmNborderWidth │ XmCBorderWidth │ Dimension │ 0 │ CSG │
611 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
612 │XmNcolormap │ XmCColormap │ Colormap │ dynamic │ CG │
613 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
614 │XmNdepth │ XmCDepth │ int │ dynamic │ CG │
615 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
616 │XmNdestroyCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
617 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
618 │XmNheight │ XmCHeight │ Dimension │ dynamic │ CSG │
619 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
620 │XmNinitialResourcesPersistent │ XmCInitialResourcesPersistent │ Boolean │ True │ C │
621 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
622 │XmNmappedWhenManaged │ XmCMappedWhenManaged │ Boolean │ True │ CSG │
623 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
624 │XmNscreen │ XmCScreen │ Screen * │ dynamic │ CG │
625 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
626 │XmNsensitive │ XmCSensitive │ Boolean │ True │ CSG │
627 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
628 │XmNtranslations │ XmCTranslations │ XtTranslations │ dynamic │ CSG │
629 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
630 │XmNwidth │ XmCWidth │ Dimension │ dynamic │ CSG │
631 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
632 │XmNx │ XmCPosition │ Position │ 0 │ CSG │
633 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
634 │XmNy │ XmCPosition │ Position │ 0 │ CSG │
635 ├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
636 └──────────────────────────────┴───────────────────────────────┴────────────────┴──────────────────────┴────────┘
637 Callback
638 A pointer to the following structure is passed to callbacks for XmN‐
639 pageChangedCallback.
640
641 typedef struct
642 {
643 int reason;
644 XEvent *event;
645 int page_number;
646 Widget page_widget;
647 int prev_page_number;
648 Widget prev_page_widget;
649 } XmNotebookCallbackStruct;
650
651 reason Specifies the reason for the callback.
652
653 event Points to the XEvent that triggered the callback. It can be
654 NULL.
655
656 page_number
657 Indicates the page number to be displayed.
658
659 page_widget
660 Indicates the page widget that has the new page number. It
661 is NULL if no page widget with the page number is found.
662
663 prev_page_number
664 Indicates the page number of the currently displayed page. If
665 the callback procedure is being called at widget initializa‐
666 tion, this page number will be returned as XmUNSPECI‐
667 FIED_PAGE_NUMBER.
668
669 prev_page_widget
670 Indicates the currently displayed page widget. If the call‐
671 back procedure is being called at widget initialization, NULL
672 will be returned.
673
674 Translations
675 Notebook inherits translations from Manager.
676
677 Accelerators
678 Notebook accelerators are added to all major tab and minor tab children
679 of XmNotebook. Notebook accelerators are listed below. These acceler‐
680 ators might not directly correspond to a translation table.
681
682 <osfBeginLine>:
683 TraverseTab(Home)
684
685 <osfEndLine>:
686 TraverseTab(End)
687
688 <osfLeft>:
689 TraverseTab(Previous)
690
691 <osfRight>:
692 TraverseTab(Next)
693
694 <osfUp>: TraverseTab(Previous)
695
696 <osfDown>:
697 TraverseTab(Next)
698
699 Action Routines
700 Notebook action routines are described below:
701
702 TraverseTab(Home|End|Next|Previous)
703 Moves the focus on major or minor tabs.
704
705 Additional Behavior
706 The Notebook widget has the additional behavior described below:
707
708 <Tab> Notebook intercepts tab group traversal when traversal is
709 entering or leaving major or minor tabs. It does this to sup‐
710 port major tabs and minor tabs as two separate tab groups
711 when they are actually treated as one by traversal. If a
712 minor tab has keyboard focus and a user or program action
713 specifies XmTRAVERSE_PREV_TAB_GROUP, keyboard focus will go
714 to a major tab. If a major tab has keyboard focus and a user
715 or program action specifies XmTRAVERSE_NEXT_TAB_GROUP, key‐
716 board focus will go to a minor tab.
717
718 Virtual Bindings
719 The bindings for virtual keys are vendor specific. For information
720 about bindings for virtual buttons and keys, see VirtualBindings(3).
721
723 Composite(3), Constraint(3), Core(3), XmCreateNotebook(3), XmMan‐
724 ager(3), XmNotebookGetPageInfo(3), XmVaCreateNotebook(3), and XmVaCre‐
725 ateManagedNotebook(3).
726
727
728
729 XmNotebook(library call)