/** Sets the font used to draw the text. Note the height of the font may change automatically based on the tree node size */
SLATE_ATTRIBUTE(FSlateFontInfo,NameFont)
/** Font for second line of text, under the title. Leaf nodes only. Usually a bit smaller. Works just like NameFont */
SLATE_ATTRIBUTE(FSlateFontInfo,Name2Font);
/** Font for any text that's centered inside the middle of the node. Leaf nodes only. Usually a bit larger. Works just like NameFont */
SLATE_ATTRIBUTE(FSlateFontInfo,CenterTextFont);
/** Border Padding around fill bar */
SLATE_ATTRIBUTE(FVector2D,BorderPadding)
/** Minimum size in pixels of a tree node that we should bother including in the UI. Below this size, you'll need to drill down to see the node. */
SLATE_ARGUMENT(int32,MinimumVisualTreeNodeSize);
/** How many seconds to animate the visual transition when the user navigates to a new tree node, or after a modification of the tree takes place */
SLATE_ARGUMENT(float,NavigationTransitionTime);
/** How many pixels of padding around the outside of the root-level tree node box. Adding padding makes the tree look better, but you lose some sizing accuracy */
/** How many pixels of padding around the outside of a non-root tree node's box. Adding padding makes the tree look better, but you lose some sizing accuracy */
/** How many pixels of spacing between the container and its child containers. Adding padding makes the tree look better, but you lose some sizing accuracy */
SLATE_ARGUMENT(float,ContainerInnerPadding);
/** How many pixels to pad text that's drawn inside of a container (not the top-level container, though) */
SLATE_ARGUMENT(float,ChildContainerTextPadding);
/** Optional delegate that fires when the node is double-clicked in the tree. If you don't override this, the tree will use its
/** Maps node visual indices to their last node visual indices. This is used for navigation transitions */
TMap<int32,int32>NodeVisualIndicesToLastIndices;
/** List of node visual indices which no longer map to a node in the current layout. This is used for navigation transitions */
TArray<int32>OrphanedLastIndices;
/** Time that tree view was changed last after navigation */
FCurveSequenceNavigateAnimationCurve;
/** How many pixels of padding around the outside of the root-level tree node box. Adding padding makes the tree look better, but you lose some sizing accuracy */
floatTopLevelContainerOuterPadding;
/** How many pixels of padding around the outside of a non-root tree node's box. Adding padding makes the tree look better, but you lose some sizing accuracy */
floatNestedContainerOuterPadding;
/** How many pixels of spacing between the container and its child containers. Adding padding makes the tree look better, but you lose some sizing accuracy */
floatContainerInnerPadding;
/** How many pixels to pad text that's drawn inside of a container (not the top-level container, though) */
floatChildContainerTextPadding;
/**
*Liveediting
*/
/** True if we should allow real-time editing right now. The user can still navigate between nodes even if editing is disbled, so its not exactly "read only" */
TAttribute<bool>AllowEditing;
/** Node that we're currently dragging around. This points to an entry in the CachedNodeVisuals array! */
FTreeMapNodeVisualInfo*DraggingVisual;
/** Distance we've LMB+dragged the cursor. Used to determine if we're ready to start dragging and dropping */
floatDragVisualDistance;
/** Position of the mouse cursor relative to the widget, where the user picked up a dragged visual */
FVector2DRelativeDragStartMouseCursorPos;
/** Position of the mouse cursor relative to the widget, the last time it moved. Used for drag and drop. */
FVector2DRelativeMouseCursorPos;
/** Undo history buffer. */
TArray<TSharedPtr<FTreeMapNodeData>>UndoStates;
/** Current undo level, or INDEX_NONE if we haven't undone anything */
int32CurrentUndoLevel;
/** Weak pointer to the widget used to rename a node inline. We might need to close the window in some cases. */
TWeakPtr<SWidget>RenamingNodeWidget;
/** Weak pointer to the node that we're currently renaming, if any */
TWeakPtr<FTreeMapNodeData>RenamingNodeData;
/** True if the node we're renaming is a newly-created node that should be added to the tree after we finish naming it */
boolbIsNamingNewNode;
/** Node that we're currently drawing a highlight pulse effect for. This points to an entry in the CachedNodesVisuals array */
TWeakPtr<FTreeMapNodeData>HighlightPulseNode;
/** Time that we started playing a highlight pulse effect for the HighlightPulseNode */