XmHierarchy man page

XmHierarchy — The Hierarchy widget class


#include <Xm/Hierarchy.h>


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 widget should ever modify its  mappedWhenManaged resource. If a child does modify this resource the behavior is  undefined.


Hierarchy inherits behaviour, resources, and traits from Core, Composite, 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


This resource determines if the hierarchy should automatically 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.


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.


The exact definition of these resources are left to the subclass 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.


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.


The list of callback routines called when a folder button is clicked. See "Callback Routine" for more details.


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


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.


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".


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 XmNnodeStateCallback list are passed a pointer to the following structure as client data:

typedef struct _XmHierarchyNodeStateData {
	Widget widget;
	XmHierarchyNodeState state;
} XmHierarchyNodeStateData;
    the child node of Hierarchy being opened or closed.
    the current XmNnodeState (after the click) of the 
    node. Legal values are XmOpen, XmClosed, XmAlwaysOpen, 
    and XmHidden.


The hierarchy maintains IconButtons for each node in the hierarchy. Setting openFolderPixmap or closeFolderPixmap is done through XtSetValues. IconButtons may only be manipulated by the Hierarchy.

Referenced By

XmCreateHierarchy(3), XmHierarchyGetChildNodes(3), XmHierarchyOpenAllAncestors(3), XmOutline(3), XmVaCreateHierarchy(3).