XmHierarchy(3)XmHierarchy(3)NAMEXmHierarchy — The Hierarchy widget class
SYNOPSIS
#include <Xm/Hierarchy.h>
DESCRIPTION
The Hierarchy widget is not intended to be instantiated itself, but
rather should be used as the base class for any widget that would like
to present a hierarchy of information to the user that is different for
the actual widget instance hierarchy of the application. This base
class is currently used for two widgets in the Motif widget set, Tree
and Outline, giving those two widgets a very similar API.
Note: The Hierarchy widget assumes that it will be totally responsible
for mapping and unmapping its children. Therefore no child of this wid‐
get should ever modify its mappedWhenManaged resource. If a child does
modify this resource the behavior is undefined.
Classes
Hierarchy inherits behaviour, resources, and traits from Core, Compos‐
ite, Composite, Constraint, and XmManager classes.
The class pointer is xmHierarchyWidgetClass.
The class name is XmHierarchy.
New Resources
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ │ XmHierarchy Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNautoClose │ XmCAutoClose │ Boolean │ True │ CSG │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNcloseFolderPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNhorizontalMargin │ XmCDimension │ Dimension │ 2 │ CSG │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNnodeStateCallback │ XmCNodeStateCallback │ XtCallbackList │ NULL │ C │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNopenFolderPixmap │ XmCPixmap │ Pixmap │ XmUNSPECIFIED_PIXMAP │ CSG │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNrefigureMode │ XmCBoolean │ Boolean │ True │ CSG │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
│XmNverticalMargin │ XmCDimension │ Dimension │ 2 │ CSG │
├─────────────────────┼──────────────────────┼────────────────┼──────────────────────┼────────┤
└─────────────────────┴──────────────────────┴────────────────┴──────────────────────┴────────┘
XmNautoClose
This resource determines if the hierarchy should automati‐
cally restore a parent node's children when the parent node
is reopened. If autoClose is False, and the hierarchy is
fully expanded when the root node is closed, then the entire
hierarchy will be displayed as expanded when the root node is
reopened. If autoClose is True, then the root node's children
are closed when the root node is reopened.
XmNcloseFolderPixmap
This resource defines a pixmap for the closed representation
of the folder pixmap to be used throughout the tree. It can
be a color pixmap or bitmap. If the user does not specify a
pixmap the default bitmap will be used.
XmNhorizontalMargin
XmNverticalMargin
The exact definition of these resources are left to the sub‐
class of the hierarchy widget that does the geometry layout.
They are intended to be used as the amount of space between
the object and the edges of the window it is displayed in.
They are included here for consistency.
XmNopenFolderPixmap
This resource defines a pixmap for the open representation of
the folder pixmap to be used throughout the tree . It can be
a color pixmap or bitmap. If the user does not specify a
pixmap the default opened folder bitmap.
XmNnodeStateCallback
The list of callback routines called when a folder button is
clicked. See "Callback Routine" for more details.
XmNrefigureMode
This resource determines whether the Hierarchy should adjust
the sizes of the children after a geometry or resize request,
or simply ignore the request. This resource is very useful in
improving the performance of an application that is making a
large number of geometry changes all at once.
┌────────────────────────────────────────────────────────────────────────────┐
│ │ XmHierarchy Constraint Resource Set │ │ │
│Name │ Class │ Type │ Default │ Access │
├────────────────┼─────────────────┼──────────────────────┼─────────┼────────┤
│XmNinsertBefore │ XmCInsertbefore │ Widget │ NULL │ CSG │
├────────────────┼─────────────────┼──────────────────────┼─────────┼────────┤
│XmNnodeState │ XmCNodeState │ XMHierarchyNodeState │ XmOpen │ CSG │
├────────────────┼─────────────────┼──────────────────────┼─────────┼────────┤
│XmNparentNode │ XmCParentNode │ Widget │ NULL │ CSG │
├────────────────┼─────────────────┼──────────────────────┼─────────┼────────┤
└────────────────┴─────────────────┴──────────────────────┴─────────┴────────┘
XmNinsertBefore
Specifies another node that has the same parentNode. This
node will then be placed immediately before that node in the
hierarchy. If this value is NULL then the node will be
inserted at the end of the list. This resource allows the
hierarchy's children to be reordered.
XmNnodeState
The state of this node. Acceptable values are: XmOpen,
XmClosed, XmAlwaysOpen, and XmHidden. A type converter has
been registered that can convert the following strings:
"open", "close", "alwaysOpen", and "hidden".
XmNparentNode
The hierarchy parent of this node. The parent node MUST be a
widget sibling of the current node.
Inherited Resources
Hierarchy 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 │ dynamic │ CSG │
├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNlayoutDirection │ XmCLayoutDirection │ XmDirection │ dynamic │ CG │
├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNnavigationType │ XmCNavigationType │ XmNavigationType │ XmTAB_GROUP │ CSG │
├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNpopupHandlerCallback │ XmCCallback │ XtCallbackList │ NULL │ C │
├────────────────────────┼───────────────────────┼───────────────────┼──────────────────────┼────────┤
│XmNshadowThickness │ XmCShadowThickness │ Dimension │ dynamic │ 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 │ N/A │
├──────────────────────────────┼───────────────────────────────┼────────────────┼──────────────────────┼────────┤
│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 Information
When a folder is clicked, the routines registered on the XmNnodeState‐
Callback list are passed a pointer to the following structure as client
data:
typedef struct _XmHierarchyNodeStateData {
Widget widget;
XmHierarchyNodeState state;
} XmHierarchyNodeStateData;
widget the child node of Hierarchy being opened or closed.
state the current XmNnodeState (after the click) of the
node. Legal values are XmOpen, XmClosed, XmAlwaysOpen,
and XmHidden.
Children
The hierarchy maintains IconButtons for each node in the hierarchy.
Setting openFolderPixmap or closeFolderPixmap is done through XtSetVal‐
ues. IconButtons may only be manipulated by the Hierarchy.
RELATEDComposite(3), Constraint(3), Core(3), XmCreateHierarchy(3), XmHierar‐
chyGetChildNodes(3), XmHierarchyOpenAllAncestors(3), XmManager(3).
XmHierarchy(3)