XmNotebook(library call) XmNotebook(library call)
NAME
XmNotebook -- The Notebook widget class
SYNOPSIS
#include <Xm/Notebook.h>
DESCRIPTION
Notebook is a manager widget that organizes its children into pages,
tabs, status areas, and page scrollers to simulate a real notebook.
It stacks its page children so that all page children occupy the same
area like real book pages. Notebook displays visuals that look like
the binding of a book and the edges of other pages around the page
that is shown. Tab children simulate notebook tabs. Major tabs
divide Notebook into several sections, and minor tabs subdivide these
sections. Status area children provide additional information about
pages such as page numbers. The page scroller child allows the user
to move from page to page. Notebook also provides tab scrollers for
scrolling major and minor tabs if it cannot display all tabs within
its edges.
The application creates pages, tabs, status areas, and page scroller
as children of the Notebook widget. Notebook creates tab scrollers
when the Notebook is created.
The
XmNnotebookChildType constraint resource of Notebook determines
whether a child widget is a page, tab, status area, or page scroller.
Any Motif widget can be a page of the Notebook. When the application
creates a child of the Notebook widget without setting the child type
constraint, the child becomes a page by default, unless it has the
XmQTactivatable,
XmQTaccessTextual, or
XmQTnavigator trait. Children
with the
XmQTactivatable,
XmQTaccessTextual, or
XmQTnavigator trait
become major tabs, status areas, and page scrollers, respectively.
Notebook uses the
XmQTaccessTextual,
XmQTactivatable,
XmQTjoinSide,
and
XmQTnavigator traits, and installs the
XmQTscrollFrame trait.
The application attaches a tab to a page by creating a tab child of
the Notebook and setting the
XmNpageNumber constraint to the page
number of the targeted page. By the same method, a status area widget
can be attached to a page. The page scroller child, on the other
hand, is associated with the Notebook, not with a specific page.
Therefore, there is only one valid page scroller for each Notebook.
Pages
Only one child of type
XmPAGE is displayed at a time by Notebook.
Other page children are hidden off-screen. When Notebook displays a
particular page, it positions the previously-displayed page off-
screen and puts the new page in its place. The page is resized to fit
into the dimensions that Notebook has allocated to display pages.
Page Numbers
Notebook uses the
XmNcurrentPageNumber,
XmNfirstPageNumber, and
XmNlastPageNumber resources to determine the current page and
available page number range. Only those pages whose page numbers are
within the range can be displayed. Other pages cannot be displayed
until the range between
XmNfirstPageNumber and
XmNlastPageNumber is
changed to include them or their page numbers are changed to a number
within the range.
If
XmNfirstPageNumber and
XmNlastPageNumber are not set explicitly by
the application, they are set to 1 by default; Notebook sets
XmNlastPageNumber to the largest page number assigned by the
application thereafter by default. However, once
XmNlastPageNumber is
set by the application, Notebook no longer changes it even when a
page with a higher page number is managed.
The
XmNpageNumber constraint resource is used for specifying the page
number of a page widget. It can be set to any integer. For tab and
status area children, the resource is used for linking the child
widget to a page. For the page scroller child, the resource has no
meaning and is ignored by the Notebook.
When a page without a page number is managed, Notebook assigns it the
smallest unallocated page number that is not less than the first page
number and greater than the last allocated page number. When a tab or
a status area without a page number is managed, the newly managed
widget is assigned the page number of the most recently managed page,
unless the page already has the same type of child. If the page does
have the same type of child, Notebook assigns the newly managed
widget a page number one greater than the most recently managed page;
this new page number is now occupied. Notebook may generate a
default page number greater than
XmNlastPageNumber, making those
pages inaccessible to the user.
Duplicate and Empty Pages
Since an application can create or change page numbers, it is
possible to have duplicate page numbers and empty pages. When two
pages with the same page number are managed, only the more recently
managed page can be displayed. Inserting a page with an existing page
number does not cause a warning. The old page widget cannot be
displayed until the new page widget is removed from the Notebook or
until the page number of the old page widget is changed to some other
number.
An empty page is a page slot where no page is inserted. Empty pages
occur when a tab or status area is associated with a page number that
has no matching page widget. Empty pages display the blank Notebook
background unless the application provides visual information to this
empty area while processing
XmNpageChangedCallback.
Notebook Visuals
Notebook draws lines around two sides of the top page to simulate the
edges of other pages that are behind the top page. The
XmNbackPagePlacement and
XmNorientation resources determine which two
sides have the lines drawn around them. By default, they are drawn on
the bottom and right sides of the top page. The application can set
resources to control how many lines are drawn and how wide the area
that they are drawn in is. Applications can also choose from three
styles of binding visual that simulates the binding of a Notebook.
Solid or spiral bindings can be drawn by Notebook, or the application
can supply a pixmap that is tiled into the binding.
Tabs
A major or minor tab is a Motif widget with the
XmQTactivatable trait. If a widget without the trait is created for a tab, Notebook
does not provide the page activation callback. As a result, even
though the tab is displayed, it cannot automatically move the
associated page to the top.
Major tabs divide the Notebook pages into sections. Minor tabs
subdivide these sections. Only minor tabs associated with the
current section are displayed, where a section consists of the group
of pages between the current major tab and the next major tab,
including the current major tab but not including the page containing
the next major tab. The exception to this is when there is no
preceding major tab, in which case the section starts from the
XmNfirstPageNumber value. A user in one major tab section does not
see the minor tabs in other sections. However, all tabs are used in
computing the size of the Notebook.
Unlike regular notebook tabs, tabs in the Notebook are not attached
to a physical page (a widget). They are, instead, attached to a
logical page (a page number). Therefore, it is possible to have a tab
with an empty page. When a page with a tab is removed from the
Notebook, the tab is not removed because it is still bound to a
logical page. Destroying or unmanaging a page widget only erases the
page and leaves an empty page. It does not tear the page out of the
Notebook. To remove the tab, the application must explicitly destroy
or unmanage it.
Notebook supports the
XmQTjoinSide trait. A widget that has the
XmQTjoinSide trait can be added to the Notebook as a Major or Minor
tab and will appear to be attached to its associated page with no
margins or shadows between them.
Status Areas
A status area is any widget that is used for describing the
associated page. For example, the Label widget as a status area child
can hold a simple string or a pixmap that describes a page. A status
area widget is also attached to a page by the page number constraint
resource. Therefore, it is possible to have multiple status area
widgets for one page. Only the most recently managed status area
widget for that page can be displayed. All others for that page are
not unmanaged, but their sizes are used for computing the size of the
Notebook. If no status area widget is provided, the Notebook displays
its blank background in the status area's reserved space. Notebook
does not create any default status area widget.
Page Scrollers
The page scroller of the Notebook is any widget that the application
creates for scrolling pages. If the application does not create one
when the Notebook is realized, Notebook creates a SpinBox widget as
the default page scroller. If the application creates a new page
scroller, the default page scroller is destroyed. If the application
creates multiple page scrollers, only the most recently managed one
can be displayed and used. All others are unmanaged.
The default SpinBox page scroller grays out one of the arrow visuals
if the current page is a boundary page. If the current page is the
first page, the previous arrow of the SpinBox is grayed. If the
current page is the last page, the next arrow of the SpinBox is
grayed.
Tab Scrollers
Tab scrollers are created by the Notebook for scrolling major tabs
and minor tabs. When Notebook is initialized, it creates four
ArrowButtonGadgets for scrolling to the next major tab, the previous
major tab, the next minor tab, and the previous minor tab. The
application cannot replace these tab scrollers. The application can
change all resources of these widgets except the position and the
arrow direction. Tab scrollers are only visible and enabled when
there is not enough space to display all the major or minor tabs
appropriate to the page. Tab scrollers are also grayed out when
scrolling is inappropriate. The following lists the tab scrollers
that are created:
+-----------------------------------------------------------------------------+
|
Child Widgets that XmNotebook Creates |
|
Child |
Name |
Widget Class |
+----------------------------+--------------------------+---------------------+
|Page Scroller | PageScroller | XmSpinBox |
+----------------------------+--------------------------+---------------------+
|Next Major Tab Scroller | MajorTabScrollerNext | XmArrowButtonGadget |
+----------------------------+--------------------------+---------------------+
|Previous Major Tab Scroller | MajorTabScrollerPrevious | XmArrowButtonGadget |
+----------------------------+--------------------------+---------------------+
|Next Minor Tab Scroller | MinorTabScrollerNext | XmArrowButtonGadget |
+----------------------------+--------------------------+---------------------+
|Previous Minor Tab Scroller | MinorTabScrollerPrevious | XmArrowButtonGadget |
+----------------------------+--------------------------+---------------------+
+----------------------------+--------------------------+---------------------+
When the user selects the page scroller, a major tab, or a minor tab,
the value of
XmNcurrentPageNumber is changed to the selected page
number and
XmNpageChangedCallback is invoked. After the application
returns from the callback, the Notebook displays the last page child
whose page number is equal to the current page number. It also
displays the last matched status area child. All other pages and
status areas are automatically hidden. Major tabs and minor tabs that
can fit into the Notebook's edges are displayed and positioned
appropriately. All other tabs are also hidden. The application can
also cause a page change by calling
XtSetValues on
XmNcurrentPageNumber and then calling
XtCallCallbacks on
XmNpageChangedCallback.
Orientation
The Notebook has eight different visual configurations, depending on
the value of
XmNbackPagePlacement and
XmNorientation. These two
resources determine the placement of back pages, the binding, major
tabs, minor tabs, the status area, and the page scroller. The
location of the binding is determined by
XmNorientation. Major tabs
are always placed on the back page side opposite to the binding;
Minor tabs are placed on the back page display area that is visually
connected to the binding. Both Major and Minor tabs are ordered so
that the page numbers they access increase as they get closer to the
corner where the back pages meet. The status area and the page
scroller are always located on the bottom of the Notebook, inside the
frame. The page scroller is always placed adjacent to a back page
side. The following table shows the possible configurations and the
locations of each Notebook component within the configuration. The
default back page value and the default orientation are based upon
XmNlayoutDirection.
+-----------------------------------------------------------------------------+
|
Notebook Configurations |
|
XmNbackPagePlacement |
XmNorientation |
Major Tabs |
Status Area |
Binding |
+---------------------+----------------+------------+---------------+---------+
| | |
Minor Tabs |
Page Scroller | |
+---------------------+----------------+------------+---------------+---------+
|XmBOTTOM_RIGHT | XmHORIZONTAL | RIGHT | BOTTOM LEFT | LEFT |
+---------------------+----------------+------------+---------------+---------+
| | | BOTTOM | BOTTOM RIGHT | |
+---------------------+----------------+------------+---------------+---------+
|XmBOTTOM_RIGHT | XmVERTICAL | BOTTOM | BOTTOM LEFT | TOP |
+---------------------+----------------+------------+---------------+---------+
| | | RIGHT | BOTTOM RIGHT | |
+---------------------+----------------+------------+---------------+---------+
|XmBOTTOM_LEFT | XmHORIZONTAL | LEFT | BOTTOM RIGHT | RIGHT |
+---------------------+----------------+------------+---------------+---------+
| | | BOTTOM | BOTTOM LEFT | |
+---------------------+----------------+------------+---------------+---------+
|XmBOTTOM_LEFT | XmVERTICAL | BOTTOM | BOTTOM RIGHT | TOP |
+---------------------+----------------+------------+---------------+---------+
| | | LEFT | BOTTOM LEFT | |
+---------------------+----------------+------------+---------------+---------+
|XmTOP_RIGHT | XmHORIZONTAL | RIGHT | BOTTOM LEFT | LEFT |
+---------------------+----------------+------------+---------------+---------+
| | | TOP | BOTTOM RIGHT | |
+---------------------+----------------+------------+---------------+---------+
|XmTOP_RIGHT | XmVERTICAL | TOP | BOTTOM LEFT | BOTTOM |
+---------------------+----------------+------------+---------------+---------+
| | | RIGHT | BOTTOM RIGHT | |
+---------------------+----------------+------------+---------------+---------+
|XmTOP_LEFT | XmHORIZONTAL | LEFT | BOTTOM RIGHT | RIGHT |
+---------------------+----------------+------------+---------------+---------+
| | | TOP | BOTTOM LEFT | |
+---------------------+----------------+------------+---------------+---------+
|XmTOP_LEFT | XmVERTICAL | TOP | BOTTOM RIGHT | BOTTOM |
+---------------------+----------------+------------+---------------+---------+
| | | LEFT | BOTTOM LEFT | |
+---------------------+----------------+------------+---------------+---------+
+---------------------+----------------+------------+---------------+---------+
There are three tab groups for tab group traversal inside the
Notebook: major tabs, minor tabs, and the page scroller. The
application can also create additional types of tab groups within the
Notebook; for example, each page added by the application is treated
as a separate tab group by the traversal actions.
Classes
Notebook inherits behavior, resources, and traits from
Core,
Composite,
Constraint, and
XmManager classes.
The class pointer is
xmNotebookWidgetClass.
The class name is
XmNotebook.
New Resources
The following table defines a set of widget resources used by the
programmer to specify data. The programmer can also set the resource
values for the inherited classes to set attributes for this widget.
To reference a resource by name or by class in a
.Xdefaults file,
remove the
XmN or
XmC prefix and use the remaining letters. To
specify one of the defined values for a resource in a
.Xdefaults file, remove the
Xm prefix and use the remaining letters (in either
lowercase or uppercase, but include any underscores between words).
The codes in the access column indicate if the given resource can be
set at creation time (C), set by using
XtSetValues (S), retrieved by
using
XtGetValues (G), or is not applicable (N/A).
+-------------------------------------------------------------------------------------------------+
|
XmNotebook Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbackPageBackground | XmCBackPageBackground | Pixel | dynamic | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbackPageForeground | XmCBackPageForeground | Pixel | dynamic | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbackPageNumber | XmCBackPageNumber | Cardinal | 2 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbackPagePlacement | XmCBackPagePlacement | unsigned char | dynamic | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbackPageSize | XmCBackPageSize | Dimension | 8 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbindingPixmap | XmCBindingPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbindingType | XmCBindingType | unsigned char | XmSPIRAL | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNbindingWidth | XmCBindingWidth | Dimension | 25 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNcurrentPageNumber | XmCCurrentPageNumber | int | dynamic | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNfirstPageNumber | XmCFirstPageNumber | int | 1 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNframeBackground | XmCFrameBackground | Pixel | dynamic | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNframeShadowThickness | XmCShadowThickness | Dimension | 0 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNinnerMarginHeight | XmCInnerMarginHeight | Dimension | 0 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNinnerMarginWidth | XmCInnerMarginWidth | Dimension | 0 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNlastPageNumber | XmCLastPageNumber | int | dynamic | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNminorTabSpacing | XmCMinorTabSpacing | Dimension | 3 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNmajorTabSpacing | XmCMajorTabSpacing | Dimension | 3 | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNorientation | XmCOrientation | unsigned char | XmHORIZONTAL | CSG |
+------------------------+-----------------------+----------------+----------------------+--------+
|XmNpageChangedCallback | XmCCallback | XtCallbackList | NULL | C |
+------------------------+-----------------------+----------------+----------------------+--------+
+------------------------+-----------------------+----------------+----------------------+--------+
XmNbackPageBackground Specifies the background color for drawing back pages. The
default is a lower-intensity version of
XmNframeBackground.
XmNbackPageForeground Specifies the forground color for drawing back pages. The
default is taken from the application's default foreground
color.
XmNbackPageNumber Specifies the number of lines to draw for back pages. The
minimum value is 1, and the maximum value is
(
XmNbackPageSize / 2).
XmNbackPagePlacement Specifies where to place the back pages. The default is
dependent on the
XmNlayoutDirection resource of the
Notebook's instance parents. It can have one of the
following values:
XmBOTTOM_RIGHT Displays back pages on the Notebook's bottom and
right sides.
XmBOTTOM_LEFT Displays back pages on the Notebook's bottom and
left sides.
XmTOP_RIGHT Displays back pages on the Notebook's top and
right sides.
XmTOP_LEFT Displays back pages on the Notebook's top and
left sides.
XmNbackPageSize Specifies the thickness of the back page rendering.
XmNbindingPixmap Specifies the pixmap or bitmap for stippling or tiling the
binding when
XmNbindingType is
XmPIXMAP or
XmPIXMAP_OVERLAP_ONLY.
XmNbindingType Specifies the binding type. It can have one of the
following values:
XmNONE Displays no binding.
XmSOLID Displays a solid binding in the foreground color
of the Notebook within the binding area specified
by
XmNbindingWidth.
XmSPIRAL Displays a spiral binding in the foreground color
of the Notebook within the area specified by
XmNbindingWidth and within the area outside of
the frame equal to the area specified by
XmNbindingWidth.
XmPIXMAP Displays the binding with the pixmap or bitmap
specified by
XmNbindingPixmap as a stipple or
tile. It uses the foreground color of the
Notebook for stippling. The binding width is
decided by the larger value of
XmNbindingWidth and the width of the pixmap or bitmap.
XmPIXMAP_OVERLAP_ONLY Displays the binding with the pixmap or bitmap
specified by
XmNbindingPixmap as a stipple or
tile. It uses the foreground color of the
Notebook for stippling. The binding is displayed
only within the binding area specified by
XmNbindingWidth.
XmNbindingWidth Specifies the width of the Notebook binding. If
XmNbindingType is
XmPIXMAP and the width of the pixmap
specified in
XmNbindingPixmap is greater than
XmNbindingWidth, then this resource is ignored and the
width of the pixmap is used as the width of the Notebook
binding instead.
XmNcurrentPageNumber Specifies the page number of the currently displayed page.
Initially, it is set to
XmNfirstPageNumber. If it is set to
less than
XmNfirstPageNumber, then it is set to
XmNfirstPageNumber. If it is set to
XmNlastPageNumber,
then it is set to
XmNlastPageNumber.
XmNfirstPageNumber Specifies the page number for the first page of the
Notebook. The Notebook does not scroll to any page numbers
below this value.
XmNframeBackground Specifies the background color for drawing the Notebook's
frame.
XmNframeShadowThickness Specifies the shadow thickness around the Notebook's frame.
XmNinnerMarginHeight Specifies the margin on the top and bottom sides of the
page, status area, and page scroller widgets.
XmNinnerMarginWidth Specifies the margin on the left and right sides of the
page, status area, and page scroller widgets.
XmNlastPageNumber Specifies the page number for the last page of the
Notebook. The Notebook does not scroll to any page numbers
above this value. The default page number is the largest
page number of managed page, major tab, or minor tab
widgets. If this is set to a value that is less than
XmNfirstPageNumber, the behavior of the Notebook is
undefined.
XmNmajorTabSpacing Specifies the spacing distance between major tabs. If
XmNframeShadowThickness is greater than
XmNmajorTabSpacing,
then this resource is ignored and the size of
XmNframeShadowThickness is used as the spacing distance
between major tabs.
XmNminorTabSpacing Specifies the spacing distance between minor tabs. If
XmNframeShadowThickness is greater than
XmNminorTabSpacing,
then this resource is ignored and the size of
XmNframeShadowThickness is used as the spacing distance
between minor tabs.
XmNorientation Specifies the orientation of the Notebook. It can have one
of the following values:
XmHORIZONTAL Places the binding beside the pages, in the left
or right side of the frame.
XmVERTICAL Places the binding above or below the pages, in
the top or the bottom of the frame.
XmNpageChangedCallback Specifies the list of callbacks to call whenever the
XmNcurrentPageNumber, representing the current page number,
is changed. This includes the point when the widget is
realized and the page number is initialized. The callback
structure is
XmNotebookCallbackStruct. The reason is
XmCR_MAJOR_TAB,
XmCR_MINOR_TAB,
XmCR_PAGE_SCROLLER_INCREMENT,
XmCR_PAGE_SCROLLER_DECREMENT,
or
XmCR_NONE, depending upon what action caused the
Notebook to display a new page.
+-------------------------------------------------------------------------------+
|
XmNotebook Constraint Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+---------------------+----------------------+---------------+---------+--------+
|XmNnotebookChildType | XmCNotebookChildType | unsigned char | dynamic | CG |
+---------------------+----------------------+---------------+---------+--------+
|XmNpageNumber | XmCPageNumber | int | dynamic | CSG |
+---------------------+----------------------+---------------+---------+--------+
|XmNresizable | XmCResizable | Boolean | True | CSG |
+---------------------+----------------------+---------------+---------+--------+
+---------------------+----------------------+---------------+---------+--------+
XmNnotebookChildType Specifies the child type of the Notebook. It can be one of
the following types:
XmPAGE The child is a page of the Notebook. This is the
default when the child does not have the
XmQTactivatable,
XmQTaccessTextual, or
XmQTnavigator trait.
XmMAJOR_TAB The child is a major tab. This is the default
when the child has the
XmQTactivatable trait.
XmMINOR_TAB The child is a minor tab.
XmSTATUS_AREA The child is a status area. This is the default
when the child has the
XmQTaccessTextual trait
and does not have the
XmQTactivatable trait.
XmPAGE_SCROLLER The child is the page scroller. The default page
scroller is destroyed, if it exists. Any
previously created page scrollers are unmanaged.
This is the default when the child has the
XmQTnavigator trait and does have the
XmQTactivatable trait or the
XmQTaccessTextual trait.
XmNpageNumber Specifies the page number associated with the widget. If
the widget is a page, the number specifies the page number
of the widget. If the widget is not a page, the number
specifies the page number of the associated page. If none
is supplied by the application, Notebook generates the
smallest unallocated page number when the child is managed.
This resource is ignored for the page scroller.
XmNresizable Specifies whether this child can request a resize.
Inherited Resources
Notebook inherits behavior and resources from the superclasses
described in the following tables. For a complete description of
each resource, refer to the reference page for that superclass.
+----------------------------------------------------------------------------------------------------+
|
XmManager Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNbottomShadowColor | XmCBottomShadowColor | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNbottomShadowPixmap | XmCBottomShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNforeground | XmCForeground | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNhelpCallback | XmCCallback | XtCallbackList | NULL | C |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNhighlightColor | XmCHighlightColor | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNhighlightPixmap | XmCHighlightPixmap | Pixmap | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNinitialFocus | XmCInitialFocus | Widget | NULL | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNlayoutDirection | XmCLayoutDirection | XmDirection | dynamic | CG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNnavigationType | XmCNavigationType | XmNavigationType | XmTAB_GROUP | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNpopupHandlerCallback | XmCCallback | XtCallbackList | NULL | C |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNshadowThickness | XmCShadowThickness | Dimension | 0 | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNstringDirection | XmCStringDirection | XmStringDirection | dynamic | CG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNtopShadowColor | XmCTopShadowColor | Pixel | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNtopShadowPixmap | XmCTopShadowPixmap | Pixmap | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNtraversalOn | XmCTraversalOn | Boolean | True | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNunitType | XmCUnitType | unsigned char | dynamic | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
|XmNuserData | XmCUserData | XtPointer | NULL | CSG |
+------------------------+-----------------------+-------------------+----------------------+--------+
+------------------------+-----------------------+-------------------+----------------------+--------+
+-----------------------------------------------------------------------+
|
Composite Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+------------------+-------------------+-------------+---------+--------+
|XmNchildren | XmCReadOnly | WidgetList | NULL | G |
+------------------+-------------------+-------------+---------+--------+
|XmNinsertPosition | XmCInsertPosition | XtOrderProc | NULL | CSG |
+------------------+-------------------+-------------+---------+--------+
|XmNnumChildren | XmCReadOnly | Cardinal | 0 | G |
+------------------+-------------------+-------------+---------+--------+
+------------------+-------------------+-------------+---------+--------+
+---------------------------------------------------------------------------------------------------------------+
|
Core Resource Set |
|
Name |
Class |
Type |
Default |
Access |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNaccelerators | XmCAccelerators | XtAccelerators | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNancestorSensitive | XmCSensitive | Boolean | dynamic | G |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNbackground | XmCBackground | Pixel | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNbackgroundPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNborderColor | XmCBorderColor | Pixel | XtDefaultForeground | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNborderPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNborderWidth | XmCBorderWidth | Dimension | 0 | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNcolormap | XmCColormap | Colormap | dynamic | CG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNdepth | XmCDepth | int | dynamic | CG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNdestroyCallback | XmCCallback | XtCallbackList | NULL | C |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNheight | XmCHeight | Dimension | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNinitialResourcesPersistent | XmCInitialResourcesPersistent | Boolean | True | C |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNmappedWhenManaged | XmCMappedWhenManaged | Boolean | True | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNscreen | XmCScreen | Screen * | dynamic | CG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNsensitive | XmCSensitive | Boolean | True | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNtranslations | XmCTranslations | XtTranslations | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNwidth | XmCWidth | Dimension | dynamic | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNx | XmCPosition | Position | 0 | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
|XmNy | XmCPosition | Position | 0 | CSG |
+------------------------------+-------------------------------+----------------+----------------------+--------+
+------------------------------+-------------------------------+----------------+----------------------+--------+
Callback
A pointer to the following structure is passed to callbacks for
XmNpageChangedCallback.
typedef struct
{
int
reason;
XEvent
*event;
int
page_number;
Widget
page_widget;
int
prev_page_number;
Widget
prev_page_widget;
} XmNotebookCallbackStruct;
reason Specifies the reason for the callback.
event Points to the
XEvent that triggered the callback. It can be
NULL.
page_number Indicates the page number to be displayed.
page_widget Indicates the page widget that has the new page number. It
is NULL if no page widget with the page number is found.
prev_page_number Indicates the page number of the currently displayed page.
If the callback procedure is being called at widget
initialization, this page number will be returned as
XmUNSPECIFIED_PAGE_NUMBER.
prev_page_widget Indicates the currently displayed page widget. If the
callback procedure is being called at widget
initialization, NULL will be returned.
Translations
Notebook inherits translations from Manager.
Accelerators
Notebook accelerators are added to all major tab and minor tab
children of XmNotebook. Notebook accelerators are listed below.
These accelerators might not directly correspond to a translation
table.
<osfBeginLine>: TraverseTab(
Home)
<osfEndLine>: TraverseTab(
End)
<osfLeft>: TraverseTab(
Previous)
<osfRight>: TraverseTab(
Next)
<osfUp>: TraverseTab(
Previous)
<osfDown>: TraverseTab(
Next)
Action Routines
Notebook action routines are described below:
TraverseTab(
Home|End|Next|Previous)
Moves the focus on major or minor tabs.
Additional Behavior
The Notebook widget has the additional behavior described below:
<Tab> Notebook intercepts tab group traversal when traversal is
entering or leaving major or minor tabs. It does this to
support major tabs and minor tabs as two separate tab
groups when they are actually treated as one by traversal.
If a minor tab has keyboard focus and a user or program
action specifies
XmTRAVERSE_PREV_TAB_GROUP, keyboard focus
will go to a major tab. If a major tab has keyboard focus
and a user or program action specifies
XmTRAVERSE_NEXT_TAB_GROUP, keyboard focus will go to a
minor tab.
Virtual Bindings
The bindings for virtual keys are vendor specific. For information
about bindings for virtual buttons and keys, see
VirtualBindings(3).
RELATED
Composite(3),
Constraint(3),
Core(3),
XmCreateNotebook(3),
XmManager(3),
XmNotebookGetPageInfo(3),
XmVaCreateNotebook(3), and
XmVaCreateManagedNotebook(3).
XmNotebook(library call)