.TH "XmOutline" 3 .SH "NAME" \fBXmOutline\fP \(em The Outline widget class "XmOutline" "widget class" "Outline" .SH "SYNOPSIS" .PP .nf #include .fi .SH "DESCRIPTION" .PP The Outline widget is a container that shows the relationship of its children in a graphical tree-like format. Each child of the Outline widget is a node in the Outline. The parent-child relationships between these nodes are completely distinct from the widget hierarchy. The hierarchy of nodes is created by specifying the tree "parent" of each node as a constraint resource. If a node's parent is NULL then it is assumed to be a root of the tree. Although each widget can only have one parent, the Outline widget supports adding more than one "root" node to a single Outline. .PP Note: The Outline 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. .PP .SS "User Interaction" .PP Each node in the outline can have one of four states: open, closed, always open, and hidden. The state of a node changes how it appears to the user and what actions are available to the user. .PP .ta 15 .HP 15 Open This node will have an open folder shown to its left that may be selected by the user to close this node. When a node is open all of its children will be visible to the user. .ta 15 .HP 15 Closed This node will have a closed folder shown to its left that may be selected by the user to open this node. When a node is closed none of its children will be visible to the user. .ta 15 .HP 15 Always Open This node will have no folder button associated with it. All of its children will be visible to the user. .ta 15 .HP 15 Hidden This node will not be shown to the user and all of its children will appear and act exactly as if they were children of this node's parent. It will appear to the user as if this node does not exist. .PP To maintain consistency of the user interface we have found that it is best to use the node state "Always Open" for nodes with no children. This way the user will only see a folder button next to a node that has children to display. A folder button associated with a node that has no children has no defined semantics. .SS "Classes" Outline inherits behavior and resources from the \fBCore\fP, \fBComposite\fP, \fBConstraint\fP, \fBXmManager\fP, and \fBXmHierarchy\fP classes\&. .PP The class pointer is \fBxmOutlineWidgetClass\fP\&. .PP The class name is \fBXmOutline\fP\&. .SS "New Resources" .PP 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 \fB\&.Xdefaults\fP file, remove the \fBXmN\fP or \fBXmC\fP prefix and use the remaining letters\&. To specify one of the defined values for a resource in a \fB\&.Xdefaults\fP file, remove the \fBXm\fP 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 \fBXtSetValues\fP (S), retrieved by using \fBXtGetValues\fP (G), or is not applicable (N/A)\&. .PP .TS tab() box; c s s s s l| l| l| l| l. \fBXmOutline Resource Set\fP \fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP _____ XmNconnectNodesBooleanBooleanFalseCSG _____ XmNindentSpaceDimensionDimension30CSG _____ .TE .IP "\fBXmNconnectNodes\fP" 10 Specifies whether to draw lines connecting a parent to each of its children nodes. .IP "\fBXmNindentSpace\fP" 10 This resource controls how many pixels divide the outline's levels .SS "Inherited Resources" .PP Outline 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\&. .PP .TS tab() box; c s s s s l| l| l| l| l. \fBXmHierarchy Resource Set\fP \fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP _____ XmNautoCloseXmCAutoCloseBooleanTrueCSG _____ XmNcloseFolderPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG _____ XmNhorizontalMarginXmCDimensionDimension2CSG _____ XmNnodeStateCallbackXmCNodeStateCallbackXtCallbackListNULLC _____ XmNopenFolderPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG _____ XmNrefigureModeXmCBooleanBooleanTrueCSG _____ XmNverticalMarginXmCDimensionDimension2CSG _____ .TE .TS tab() box; c s s s s l| l| l| l| l. \fBXmManager Resource Set\fP \fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP _____ XmNbottomShadowColorXmCBottomShadowColorPixeldynamicCSG _____ XmNbottomShadowPixmapXmCBottomShadowPixmapPixmapXmUNSPECIFIED_PIXMAPCSG _____ XmNforegroundXmCForegroundPixeldynamicCSG _____ XmNhelpCallbackXmCCallbackXtCallbackListNULLC _____ XmNhighlightColorXmCHighlightColorPixeldynamicCSG _____ XmNhighlightPixmapXmCHighlightPixmapPixmapdynamicCSG _____ XmNinitialFocusXmCInitialFocusWidgetdynamicCSG _____ XmNlayoutDirectionXmCLayoutDirectionXmDirectiondynamicCG _____ XmNnavigationTypeXmCNavigationTypeXmNavigationTypeXmTAB_GROUPCSG _____ XmNpopupHandlerCallbackXmCCallbackXtCallbackListNULLC _____ XmNshadowThicknessXmCShadowThicknessDimensiondynamicCSG _____ XmNstringDirectionXmCStringDirectionXmStringDirectiondynamicCG _____ XmNtopShadowColorXmCTopShadowColorPixeldynamicCSG _____ XmNtopShadowPixmapXmCTopShadowPixmapPixmapdynamicCSG _____ XmNtraversalOnXmCTraversalOnBooleanTrueCSG _____ XmNunitTypeXmCUnitTypeunsigned chardynamicCSG _____ XmNuserDataXmCUserDataXtPointerNULLCSG _____ .TE .PP .TS tab() box; c s s s s l| l| l| l| l. \fBComposite Resource Set\fP \fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP _____ XmNchildrenXmCReadOnlyWidgetListNULLG _____ XmNinsertPositionXmCInsertPositionXtOrderProcNULLCSG _____ XmNnumChildrenXmCReadOnlyCardinal0G _____ .TE .PP .TS tab() box; c s s s s l| l| l| l| l. \fBCore Resource Set\fP \fBName\fP\fBClass\fP\fBType\fP\fBDefault\fP\fBAccess\fP _____ XmNacceleratorsXmCAcceleratorsXtAcceleratorsdynamicN/A _____ XmNancestorSensitiveXmCSensitiveBooleandynamicG _____ XmNbackgroundXmCBackgroundPixeldynamicCSG _____ XmNbackgroundPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG _____ XmNborderColorXmCBorderColorPixelXtDefaultForegroundCSG _____ XmNborderPixmapXmCPixmapPixmapXmUNSPECIFIED_PIXMAPCSG _____ XmNborderWidthXmCBorderWidthDimension0CSG _____ XmNcolormapXmCColormapColormapdynamicCG _____ XmNdepthXmCDepthintdynamicCG _____ XmNdestroyCallbackXmCCallbackXtCallbackListNULLC _____ XmNheightXmCHeightDimensiondynamicCSG _____ XmNinitialResourcesPersistentXmCInitialResourcesPersistentBooleanTrueC _____ XmNmappedWhenManagedXmCMappedWhenManagedBooleanTrueCSG _____ XmNscreenXmCScreenScreen *dynamicCG _____ XmNsensitiveXmCSensitiveBooleanTrueCSG _____ XmNtranslationsXmCTranslationsXtTranslationsdynamicCSG _____ XmNwidthXmCWidthDimensiondynamicCSG _____ XmNxXmCPositionPosition0CSG _____ XmNyXmCPositionPosition0CSG _____ .TE .PP .SS "Geometry Management" .PP The preferred size of the entire outline will be just large enough to contain all nodes in the hierarchy. As the node state changes the outline will attempt to resize itself to just contain its currently visible children. If the outline is forced away from its desired size the children will not be moved and will either be clipped, or appear in the upper left hand corner of the window. For this reason it is usually desirable to put the outline into a Scrolled Window widget. .PP .SH RELATED .PP \fBComposite\fP(3), \fBConstraint\fP(3), \fBCore\fP(3), \fBXmCreateHierarchy\fP(3), \fBXmHierarchy\fP(3), \fBXmManager\fP(3)\&.