<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
<package name="LazControls">
<!-- LvlGraphCtrl -->
<module name="LvlGraphCtrl">
<short>Implements a Level (or Layered) Graph control.</short>
<descr>
<p>
<file>lvlgraphctrl.pas</file> contains classes, types, constants, and 
routines used to implement a Level (or Layered) Graph control.
</p>
<p>
<file>lvlgraphctrl.pas</file> is part of the <file>LazControls</file> package.
</p>
</descr>

<!-- unresolved external references -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="Types"/>
<element name="Math"/>
<element name="TypInfo"/>
<element name="FPImage"/>
<element name="FPCanvas"/>
<element name="Laz_AVL_Tree"/>
<element name="LMessages"/>
<element name="LCLType"/>
<element name="LCLIntf"/>
<element name="Graphics"/>
<element name="Controls"/>
<element name="ImgList"/>
<element name="Forms"/>
<element name="Themes"/>
<element name="GraphType"/>
<element name="LazLoggerBase"/>
<element name="AvgLvlTree"/>

<element name="TLazCtrlPalette">
<short/>
<descr/>
<seealso/>
</element>

<element name="DefaultLvlGraphNodeImageEffect">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNodeArray">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode">
<short/>
<descr/>
<seealso>
<link id="#rtl.classes.TPersistent"/>
</seealso>
</element>

<!-- private -->
<element name="TLvlGraphNode.FCaption"/>
<element name="TLvlGraphNode.FColor"/>
<element name="TLvlGraphNode.FDrawnCaptionRect"/>
<element name="TLvlGraphNode.FGraph"/>
<element name="TLvlGraphNode.FImageEffect"/>
<element name="TLvlGraphNode.FImageIndex"/>
<element name="TLvlGraphNode.FInEdges"/>
<element name="TLvlGraphNode.FDrawSize"/>
<element name="TLvlGraphNode.FInWeight"/>
<element name="TLvlGraphNode.FLevel"/>
<element name="TLvlGraphNode.FNextSelected"/>
<element name="TLvlGraphNode.FOutEdges"/>
<element name="TLvlGraphNode.FDrawPosition"/>
<element name="TLvlGraphNode.FOutWeight"/>
<element name="TLvlGraphNode.FOverlayIndex"/>
<element name="TLvlGraphNode.FPrevSelected"/>
<element name="TLvlGraphNode.FSelected"/>
<element name="TLvlGraphNode.FSubGraph"/>
<element name="TLvlGraphNode.FVisible"/>

<element name="TLvlGraphNode.GetIndexInLevel">
<short/>
</element>
<element name="TLvlGraphNode.GetIndexInLevel.Result">
<short/>
</element>

<element name="TLvlGraphNode.GetInEdges">
<short/>
</element>
<element name="TLvlGraphNode.GetInEdges.Result">
<short/>
</element>
<element name="TLvlGraphNode.GetInEdges.Index">
<short/>
</element>

<element name="TLvlGraphNode.GetOutEdges">
<short/>
</element>
<element name="TLvlGraphNode.GetOutEdges.Result">
<short/>
</element>
<element name="TLvlGraphNode.GetOutEdges.Index">
<short/>
</element>

<element name="TLvlGraphNode.SetCaption">
<short/>
</element>
<element name="TLvlGraphNode.SetCaption.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetColor">
<short/>
</element>
<element name="TLvlGraphNode.SetColor.AValue">
<short/>
</element>

<element name="TLvlGraphNode.OnLevelDestroy">
<short/>
</element>

<element name="TLvlGraphNode.SetDrawCenter">
<short/>
</element>
<element name="TLvlGraphNode.SetDrawCenter.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetDrawSize">
<short/>
</element>
<element name="TLvlGraphNode.SetDrawSize.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetImageEffect">
<short/>
</element>
<element name="TLvlGraphNode.SetImageEffect.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetImageIndex">
<short/>
</element>
<element name="TLvlGraphNode.SetImageIndex.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetIndexInLevel">
<short/>
</element>
<element name="TLvlGraphNode.SetIndexInLevel.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetLevel">
<short/>
</element>
<element name="TLvlGraphNode.SetLevel.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetOverlayIndex">
<short/>
</element>
<element name="TLvlGraphNode.SetOverlayIndex.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetSelected">
<short/>
</element>
<element name="TLvlGraphNode.SetSelected.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetSubGraph">
<short/>
</element>
<element name="TLvlGraphNode.SetSubGraph.AValue">
<short/>
</element>

<element name="TLvlGraphNode.SetVisible">
<short/>
</element>
<element name="TLvlGraphNode.SetVisible.AValue">
<short/>
</element>

<element name="TLvlGraphNode.UnbindLevel">
<short/>
</element>

<element name="TLvlGraphNode.SelectionChanged">
<short/>
</element>

<element name="TLvlGraphNode.GetDrawCenter">
<short/>
</element>
<element name="TLvlGraphNode.GetDrawCenter.Result">
<short/>
</element>

<!-- protected properties -->
<element name="TLvlGraphNode.SubGraph">
<short/>
<descr/>
<seealso/>
</element>

<!-- public members, methods, and properties -->
<element name="TLvlGraphNode.Data">
<short/>
<descr>
<p>
Data is a Pointer property which points to the location in memory where the 
data for the node is stored.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphNode.Create.TheGraph">
<short/>
</element>
<element name="TLvlGraphNode.Create.TheCaption">
<short/>
</element>
<element name="TLvlGraphNode.Create.TheLevel">
<short/>
</element>

<element name="TLvlGraphNode.Destroy">
<short>Destructor for the class instance.</short>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.Clear">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.Invalidate">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.Color">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.Caption">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.Visible">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.ImageIndex">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.OverlayIndex">
<short/>
<descr>
<p>
Requires a value greater than or equal to <b>0</b> (<b>zero</b>) in the 
<var>ImageIndex</var> property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.ImageEffect">
<short/>
<descr>
<p>
The default value for the property is defined in the 
DefaultLvlGraphNodeImageEffect constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.Graph">
<short/>
<descr>
<p>
Graph is a read-only TLvlGraph property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.IndexOfInEdge">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.IndexOfInEdge.Result">
<short/>
</element>
<element name="TLvlGraphNode.IndexOfInEdge.Source">
<short/>
</element>

<element name="TLvlGraphNode.FindInEdge">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.FindInEdge.Result">
<short/>
</element>
<element name="TLvlGraphNode.FindInEdge.Source">
<short/>
</element>

<element name="TLvlGraphNode.InEdgeCount">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.InEdgeCount.Result">
<short/>
</element>

<element name="TLvlGraphNode.InEdges">
<short/>
<descr>
<p>
InEdges is a read-only indexed TLvlGraphEdge property which provides access 
to the input edges for the node. Use InEdgeCount to get the total number of 
input edges for the node.
</p>
</descr>
<seealso>
<link id="TLvlGraphNode.InEdgeCount"/>
</seealso>
</element>
<element name="TLvlGraphNode.InEdges.Index">
<short/>
</element>

<element name="TLvlGraphNode.IndexOfOutEdge">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.IndexOfOutEdge.Result">
<short/>
</element>
<element name="TLvlGraphNode.IndexOfOutEdge.Target">
<short/>
</element>

<element name="TLvlGraphNode.FindOutEdge">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.FindOutEdge.Result">
<short/>
</element>
<element name="TLvlGraphNode.FindOutEdge.Target">
<short/>
</element>

<element name="TLvlGraphNode.OutEdgeCount">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.OutEdgeCount.Result">
<short/>
</element>

<element name="TLvlGraphNode.OutEdges">
<short/>
<descr>
<p>
OutEdges is a read-only indexed TLvlGraph property which provides access to 
the output edges for the node. Use OutEdgeCount to get the total number of 
output edges for the node.
</p>
</descr>
<seealso>
<link id="TLvlGraphNode.OutEdgeCount"/>
</seealso>
</element>
<element name="TLvlGraphNode.OutEdges.Index">
<short/>
</element>

<element name="TLvlGraphNode.GetVisibleSourceNodes">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.GetVisibleSourceNodes.Result">
<short/>
</element>

<element name="TLvlGraphNode.GetVisibleSourceNodesAsAVLTree">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.GetVisibleSourceNodesAsAVLTree.Result">
<short/>
</element>

<element name="TLvlGraphNode.GetVisibleTargetNodes">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.GetVisibleTargetNodes.Result">
<short/>
</element>

<element name="TLvlGraphNode.GetVisibleTargetNodesAsAVLTree">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNode.GetVisibleTargetNodesAsAVLTree.Result">
<short/>
</element>

<element name="TLvlGraphNode.IndexInLevel">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.Level">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.Selected">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.NextSelected">
<short/>
<descr>
<p>
NextSelected is a read-only TLvlGraphNode property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.PrevSelected">
<short/>
<descr>
<p>
PrevSelected is a read-only TLvlGraphNode property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.DrawPosition">
<short>Drawing position for the node at the current Level.</short>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.DrawSize">
<short/>
<descr>
<p>
The default value for the property is <b>1</b>.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.DrawCenter">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNode.DrawPositionEnd">
<short/>
<descr>
<p>
Calculated using the formula:
</p>
<code>
DrawPositionEnd := DrawPosition + Max(InSize, OutSize);
</code>
</descr>
<seealso/>
</element>
<element name="TLvlGraphNode.DrawPositionEnd.Result">
<short/>
</element>

<element name="TLvlGraphNode.DrawnCaptionRect">
<short>Last drawing position for the caption, with scrolling.</short>
<descr>
<p>
DrawnCaptionRect is a read-only TRect property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.InWeight">
<short>Total weight for InEdges.</short>
<descr>
<p>
InWeight is a read-only Single property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNode.OutWeight">
<short>Total weight for OutEdges.</short>
<descr>
<p>
OutWeight is a read-only Single property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeClass">
<short>Class reference for the TLvlGrapNode type.</short>
<descr/>
<seealso/>
</element>
<element name="PLvlGraphNodeClass">
<short>Pointer to a TLvlGrapNode instance.</short>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphEdge">
<short/>
<descr/>
<seealso/>
</element>

<!-- private  -->
<element name="TLvlGraphEdge.FBackEdge"/>

<element name="TLvlGraphEdge.FNoGapCircle">
<short>
<b>True</b> when a circular reference exists between 2 nodes, with no levels 
between; i. e. both edges paint in the same location.
</short>
</element>

<element name="TLvlGraphEdge.FDrawnAt"/>
<element name="TLvlGraphEdge.FHighlighted"/>
<element name="TLvlGraphEdge.FSource"/>
<element name="TLvlGraphEdge.FTarget"/>
<element name="TLvlGraphEdge.FWeight"/>

<element name="TLvlGraphEdge.SetHighlighted">
<short/>
</element>
<element name="TLvlGraphEdge.SetHighlighted.AValue">
<short/>
</element>

<element name="TLvlGraphEdge.SetWeight">
<short/>
</element>
<element name="TLvlGraphEdge.SetWeight.AValue">
<short/>
</element>

<!-- protected -->
<element name="TLvlGraphEdge.RevertDirection">
<short/>
<descr/>
<seealso/>
</element>

<!-- public -->
<element name="TLvlGraphEdge.Data">
<short>Pointer to the user data for the edge.</short>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphEdge.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphEdge.Create.TheSource">
<short/>
</element>
<element name="TLvlGraphEdge.Create.TheTarget">
<short/>
</element>

<element name="TLvlGraphEdge.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdge.Source">
<short/>
<descr>
<p>
Source is a read-only TLvlGrapNode property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdge.Target">
<short/>
<descr>
<p>
Target is a read-only TLvlGrapNode property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdge.Weight">
<short/>
<descr>
<p>
Requires a value greater than or equal to <b>0</b> (<b>zero</b>).
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdge.IsBackEdge">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdge.IsBackEdge.Result">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphEdge.BackEdge">
<short/>
<descr>
<p>
BackEdge is a read-only Boolean property. The value is <b>True</b> if the 
direction for the edge was reversed (source and target were exchanged).
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdge.Highlighted">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphEdge.DrawnAt">
<short>Last drawing rectangle, with scrolling.</short>
<descr>
DrawnAt is a read-only TRect property.
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdge.GetVisibleSourceNodes">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdge.GetVisibleSourceNodes.Result">
<short/>
</element>

<element name="TLvlGraphEdge.GetVisibleSourceNodesAsAVLTree">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdge.GetVisibleSourceNodesAsAVLTree.Result">
<short/>
</element>

<element name="TLvlGraphEdge.GetVisibleTargetNodes">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdge.GetVisibleTargetNodes.Result">
<short/>
</element>

<element name="TLvlGraphEdge.GetVisibleTargetNodesAsAVLTree">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdge.GetVisibleTargetNodesAsAVLTree.Result">
<short/>
</element>

<element name="TLvlGraphEdge.AsString">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdge.AsString.Result">
<short/>
</element>

<element name="TLvlGraphEdgeClass">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphEdgeArray">
<short/>
<descr/>
<seealso/>
</element>

<element name="PLvlGraphEdge">
<short>Pointer to a TLvlGraphEdge type.</short>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphLevel">
<short/>
<descr>
<p>
TLvlGraphLevel is a TPersistent descendant.
</p>
</descr>
<seealso/>
</element>

<!-- private -->
<element name="TLvlGraphLevel.FGraph"/>
<element name="TLvlGraphLevel.FIndex"/>
<element name="TLvlGraphLevel.FNodes"/>
<element name="TLvlGraphLevel.FDrawPosition"/>

<element name="TLvlGraphLevel.GetNodes">
<short/>
</element>
<element name="TLvlGraphLevel.GetNodes.Result">
<short/>
</element>
<element name="TLvlGraphLevel.GetNodes.Index">
<short/>
</element>

<element name="TLvlGraphLevel.SetDrawPosition">
<short/>
</element>
<element name="TLvlGraphLevel.SetDrawPosition.AValue">
<short/>
</element>

<element name="TLvlGraphLevel.MoveNode">
<short/>
</element>
<element name="TLvlGraphLevel.MoveNode.Node">
<short/>
</element>
<element name="TLvlGraphLevel.MoveNode.NewIndexInLevel">
<short/>
</element>

<!-- public -->
<element name="TLvlGraphLevel.Data">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphLevel.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphLevel.Create.TheGraph">
<short/>
</element>
<element name="TLvlGraphLevel.Create.TheIndex">
<short/>
</element>

<element name="TLvlGraphLevel.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphLevel.Invalidate">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphLevel.Nodes">
<short/>
<descr>
<p>
Nodes is a read-only indexed TLvlGrapNode property. Nodes is the default 
property for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphLevel.Nodes.Index">
<short/>
</element>

<element name="TLvlGraphLevel.IndexOf">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphLevel.IndexOf.Result">
<short/>
</element>
<element name="TLvlGraphLevel.IndexOf.Node">
<short/>
</element>

<element name="TLvlGraphLevel.Count">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphLevel.Count.Result">
<short/>
</element>

<element name="TLvlGraphLevel.GetTotalInOutWeights">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphLevel.GetTotalInOutWeights.Result">
<short>
Sum of the maximum weights for each node: Max(InWeight,OutWeight).
</short>
</element>

<element name="TLvlGraphLevel.Index">
<short/>
<descr>
<p>
Index is a read-only Integer property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphLevel.Graph">
<short/>
<descr>
<p>
Graph is a read-only TLvlGraph property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphLevel.DrawPosition">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphLevelClass">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphSubGraph">
<short/>
<descr>
<p>
TLvlGraphSubGraph is a TPersistent descendant.
</p>
</descr>
<seealso/>
</element>

<!-- private -->
<element name="TLvlGraphSubGraph.FGraph"/>
<element name="TLvlGraphSubGraph.FHighestLevel"/>
<element name="TLvlGraphSubGraph.FIndex"/>
<element name="TLvlGraphSubGraph.FLowestLevel"/>

<!-- public -->
<element name="TLvlGraphSubGraph.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphSubGraph.Create.TheGraph">
<short/>
</element>
<element name="TLvlGraphSubGraph.Create.TheIndex">
<short/>
</element>

<element name="TLvlGraphSubGraph.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphSubGraph.Graph">
<short/>
<descr>
<p>
Graph is a read-only TLvlGraph property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphSubGraph.Index">
<short/>
<descr>
<p>
Index is a read-only Integer property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphSubGraph.LowestLevel">
<short/>
<descr>
<p>
LowestLevel is a read-only Integer property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphSubGraph.HighestLevel">
<short/>
<descr>
<p>
HighestLevel is a read-only Integer property.
</p>
</descr>
<seealso/>
</element>

<element name="TOnLvlGraphStructureChanged">
<short/>
<descr/>
<seealso/>
</element>
<element name="TOnLvlGraphStructureChanged.Sender">
<short/>
</element>
<element name="TOnLvlGraphStructureChanged.Element">
<short/>
</element>
<element name="TOnLvlGraphStructureChanged.Operation">
<short/>
</element>

<element name="TLvlGraphEdgeSplitMode">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdgeSplitMode.lgesNone">
<short/>
</element>
<element name="TLvlGraphEdgeSplitMode.lgesSeparate">
<short>
Create separate hidden nodes for each edge; this creates a lot of hidden 
nodes.
</short>
</element>
<element name="TLvlGraphEdgeSplitMode.lgesMergeSource">
<short>Combine hidden nodes at source (outgoing edge).</short>
</element>
<element name="TLvlGraphEdgeSplitMode.lgesMergeTarget">
<short>Combine hidden nodes at target (incoming edge).</short>
</element>
<element name="TLvlGraphEdgeSplitMode.lgesMergeHighest">
<short>
Combine hidden nodes at source or target, whichever has more edges.
</short>
</element>

<element name="TLvlGraph">
<short/>
<descr>
<p>
TLvlGraph is a TPersistent descendant.
</p>
</descr>
<seealso/>
</element>

<!-- private -->
<element name="TLvlGraph.FEdgeClass"/>
<element name="TLvlGraph.FFirstSelected"/>
<element name="TLvlGraph.FLastSelected"/>
<element name="TLvlGraph.FLevelClass"/>
<element name="TLvlGraph.FNodeClass"/>
<element name="TLvlGraph.FOnInvalidate"/>
<element name="TLvlGraph.FNodes"/>
<element name="TLvlGraph.FLevels"/>
<element name="TLvlGraph.FSubGraphs"/>
<element name="TLvlGraph.FCaseSensitive"/>
<element name="TLvlGraph.FOnSelectionChanged"/>
<element name="TLvlGraph.FOnStructureChanged"/>

<element name="TLvlGraph.GetLevelCount">
<short/>
</element>
<element name="TLvlGraph.GetLevelCount.Result">
<short/>
</element>

<element name="TLvlGraph.GetLevelCount">
<short/>
</element>
<element name="TLvlGraph.GetLevelCount.Result">
<short/>
</element>

<element name="TLvlGraph.GetLevels">
<short/>
</element>
<element name="TLvlGraph.GetLevels.Result">
<short/>
</element>
<element name="TLvlGraph.GetLevels.Index">
<short/>
</element>

<element name="TLvlGraph.GetNodes">
<short/>
</element>
<element name="TLvlGraph.GetNodes.Result">
<short/>
</element>
<element name="TLvlGraph.GetNodes.Index">
<short/>
</element>

<element name="TLvlGraph.GetSubGraphCount">
<short/>
</element>
<element name="TLvlGraph.GetSubGraphCount.Result">
<short/>
</element>

<element name="TLvlGraph.GetSubGraphs">
<short/>
</element>
<element name="TLvlGraph.GetSubGraphs.Result">
<short/>
</element>
<element name="TLvlGraph.GetSubGraphs.Index">
<short/>
</element>

<element name="TLvlGraph.SetLevelCount">
<short/>
</element>
<element name="TLvlGraph.SetLevelCount.AValue">
<short/>
</element>

<element name="TLvlGraph.InternalRemoveNode">
<short/>
</element>
<element name="TLvlGraph.InternalRemoveNode.Node">
<short/>
</element>

<element name="TLvlGraph.InternalRemoveLevel">
<short/>
</element>
<element name="TLvlGraph.InternalRemoveLevel.Lvl">
<short/>
</element>

<!-- protected -->
<element name="TLvlGraph.SelectionChanged">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.NewLevelAtIndex">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.NewLevelAtIndex.Result">
<short/>
</element>
<element name="TLvlGraph.NewLevelAtIndex.AnIndex">
<short/>
</element>
<element name="TLvlGraph.NewLevelAtIndex.ASubGraphIndex">
<short/>
</element>

<!-- public -->
<element name="TLvlGraph.Data">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.Clear">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.Invalidate">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.StructureChanged">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.StructureChanged.Element">
<short/>
</element>
<element name="TLvlGraph.StructureChanged.Operation">
<short/>
</element>

<element name="TLvlGraph.OnInvalidate">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.OnSelectionChanged">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.OnStructureChanged">
<short/>
<descr>
<p>
Signalled when a Node, Edge, or Level has been added or deleted in the level 
graph.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.NodeCount">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.NodeCount.Result">
<short/>
</element>

<element name="TLvlGraph.Nodes">
<short/>
<descr>
<p>
Nodes is a read-only indexed TLvlGraphNode property.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraph.Nodes.Index">
<short/>
</element>

<element name="TLvlGraph.GetNode">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.GetNode.Result">
<short/>
</element>
<element name="TLvlGraph.GetNode.ACaption">
<short/>
</element>
<element name="TLvlGraph.GetNode.CreateIfNotExists">
<short/>
</element>

<element name="TLvlGraph.CreateHiddenNode">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.CreateHiddenNode.Result">
<short/>
</element>
<element name="TLvlGraph.CreateHiddenNode.Level">
<short/>
</element>

<element name="TLvlGraph.NodeClass">
<short/>
<descr>
<p>
NodeClass is a read-only TLvlGraphNodeClass property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.FirstSelected">
<short/>
<descr>
<p>
FirstSelected is a read-only TLvlGrapNode property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.LastSelected">
<short/>
<descr>
<p>
LastSelected is a read-only TLvlGraphNode property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.ClearSelection">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.SingleSelect">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.SingleSelect.Node">
<short/>
</element>

<element name="TLvlGraph.IsMultiSelection">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.IsMultiSelection.Result">
<short/>
</element>

<element name="TLvlGraph.CaseSensitive">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.GetEdge">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.GetEdge.Result">
<short/>
</element>
<element name="TLvlGraph.GetEdge.SourceCaption">
<short/>
</element>
<element name="TLvlGraph.GetEdge.TargetCaption">
<short/>
</element>
<element name="TLvlGraph.GetEdge.CreateIfNotExists">
<short/>
</element>

<element name="TLvlGraph.EdgeClass">
<short/>
<descr>
<p>
EdgeClass is a read-only TLvlGraphEdgeClass property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.SubGraphs">
<short/>
<descr>
<p>
SubGraphs is a read-only indexed TLvlGraphSubGraph property. Use 
SubGraphCount to get the number of subgraphs in the class instance.
</p>
</descr>
<seealso>
<link id="TLvlGraph.SubGraphCount"/>
</seealso>
</element>
<element name="TLvlGraph.SubGraphs.Index">
<short/>
</element>

<element name="TLvlGraph.SubGraphCount">
<short/>
<descr>
<p>
SubGraphCount is a read-only Integer property with the number of subgraphs 
available in the class instance.
</p>
</descr>
<seealso>
<link id="TLvlGraph.SubGraphs"/>
</seealso>
</element>

<element name="TLvlGraph.Levels">
<short/>
<descr>
<p>
Levels is a read-only indexed TLvlGraphLevel property. Use LevelCount to get 
the number of Levels used in the nodes for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraph.Levels.Index">
<short/>
</element>

<element name="TLvlGraph.LevelCount">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.LevelClass">
<short/>
<descr>
<p>
LevelClass is a read-only TLvlGraphLevelClass property.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraph.FindIndependentGraphs">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.CreateTopologicalLevels">
<short>Creates levels using the edges for the Level Graph.</short>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.CreateTopologicalLevels.HighLevels">
<short/>
</element>
<element name="TLvlGraph.CreateTopologicalLevels.ReduceBackEdges">
<short/>
</element>

<element name="TLvlGraph.MinimizeEdgeLens">
<short/>
<descr>
<p>
Requires BackEdge to have been processed in MarkBackEdges.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraph.MinimizeEdgeLens.HighLevels">
<short/>
</element>

<element name="TLvlGraph.LimitLevelHeights">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.LimitLevelHeights.MaxHeight">
<short/>
</element>
<element name="TLvlGraph.LimitLevelHeights.MaxHeightRel">
<short/>
</element>

<element name="TLvlGraph.SplitLongEdges">
<short>Splits long edges by adding hidden nodes.</short>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.SplitLongEdges.SplitMode">
<short/>
</element>

<element name="TLvlGraph.ScaleNodeDrawSizes">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.ScaleNodeDrawSizes.NodeGapAbove">
<short/>
</element>
<element name="TLvlGraph.ScaleNodeDrawSizes.NodeGapBelow">
<short/>
</element>
<element name="TLvlGraph.ScaleNodeDrawSizes.HardMaxTotal">
<short/>
</element>
<element name="TLvlGraph.ScaleNodeDrawSizes.HardMinOneNode">
<short/>
</element>
<element name="TLvlGraph.ScaleNodeDrawSizes.SoftMaxTotal">
<short/>
</element>
<element name="TLvlGraph.ScaleNodeDrawSizes.SoftMinOneNode">
<short/>
</element>
<element name="TLvlGraph.ScaleNodeDrawSizes.PixelPerWeight">
<short/>
</element>

<element name="TLvlGraph.SetAllNodeDrawSizes">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.SetAllNodeDrawSizes.PixelPerWeight">
<short/>
</element>
<element name="TLvlGraph.SetAllNodeDrawSizes.MinWeight">
<short/>
</element>

<element name="TLvlGraph.MarkBackEdges">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.MinimizeCrossings">
<short>Permutates nodes to minimize crossings.</short>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.MinimizeOverlappings">
<short>
Sets the position for all nodes to ensure the required gaps between nodes.
</short>
<descr/>
<version>
An overloaded variant without the ALevel parameter was added in version 2.3.0.
</version>
<seealso/>
</element>
<element name="TLvlGraph.MinimizeOverlappings.MinPos">
<short/>
</element>
<element name="TLvlGraph.MinimizeOverlappings.NodeGapAbove">
<short/>
</element>
<element name="TLvlGraph.MinimizeOverlappings.NodeGapBelow">
<short/>
</element>
<element name="TLvlGraph.MinimizeOverlappings.ALevel">
<short/>
</element>

<element name="TLvlGraph.StraightenGraph">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraph.SetColors">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.SetColors.Palette">
<short/>
</element>

<element name="TLvlGraph.WriteDebugReport">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.WriteDebugReport.Msg">
<short/>
</element>

<element name="TLvlGraph.ConsistencyCheck">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraph.ConsistencyCheck.WithBackEdge">
<short/>
</element>

<element name="TLvlGraphCtrlOption">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphCtrlOption.lgoAutoLayout">
<short>
Automatic graph layout after graph has changed.
</short>
</element>
<element name="TLvlGraphCtrlOption.lgoReduceBackEdges">
<short>
CreateTopologicalLevels (AutoLayout) will attempts to find an order with less 
BackEdges.
</short>
</element>
<element name="TLvlGraphCtrlOption.lgoHighLevels">
<short>
Puts nodes topologically at higher levels.
</short>
</element>
<element name="TLvlGraphCtrlOption.lgoMinimizeEdgeLens">
<short>
If nodes are not fixed to a level by neighbors on both side, find the level 
which reduces total edge length the most.
</short>
</element>
<element name="TLvlGraphCtrlOption.lgoStraightenGraph">
<short>
Minimizes vertical up/down movement of edges.
</short>
</element>
<element name="TLvlGraphCtrlOption.lgoHighlightNodeUnderMouse">
<short>
Mouse hover highlights a node and its edges.
</short>
</element>
<element name="TLvlGraphCtrlOption.lgoHighlightEdgeNearMouse">
<short>
When the mouse is near an edge, highlight the node and its edges. 
lgoHighlightNodeUnderMouse takes precedence.
</short>
</element>
<element name="TLvlGraphCtrlOption.lgoMouseSelects">
<short>
</short>
</element>

<element name="TLvlGraphCtrlOptions">
<short/>
<descr/>
<seealso/>
</element>

<element name="DefaultLvlGraphCtrlOptions">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNodeCaptionPosition">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNodeCaptionPosition.lgncLeft">
<short/>
</element>
<element name="TLvlGraphNodeCaptionPosition.lgncTop">
<short/>
</element>
<element name="TLvlGraphNodeCaptionPosition.lgncRight">
<short/>
</element>
<element name="TLvlGraphNodeCaptionPosition.lgncBottom">
<short/>
</element>

<element name="TLvlGraphNodeCaptionPositions">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNodeShape">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNodeShape.lgnsNone">
<short/>
</element>
<element name="TLvlGraphNodeShape.lgnsRectangle">
<short/>
</element>
<element name="TLvlGraphNodeShape.lgnsEllipse">
<short/>
</element>

<element name="TLvlGraphNodeShapes">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNodeColoring">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNodeColoring.lgncNone">
<short/>
</element>
<element name="TLvlGraphNodeColoring.lgncRGB">
<short/>
</element>

<element name="TLvlGraphNodeColorings">
<short/>
<descr/>
<seealso/>
</element>

<element name="DefaultLvlGraphNodeWith">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeCaptionScale">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeCaptionPosition">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeGapLeft">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeGapRight">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeGapTop">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeGapBottom">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeShape">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphNodeColoring">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphEdgeShape">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdgeShape.lgesStraight">
<short/>
</element>
<element name="TLvlGraphEdgeShape.lgesCurved">
<short/>
</element>

<element name="TLvlGraphEdgeShapes">
<short/>
<descr/>
<seealso/>
</element>

<element name="DefaultLvlGraphEdgeSplitMode">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphEdgeNearMouseDistMax">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphEdgeShape">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphEdgeColor">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphEdgeHighlightColor">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphEdgeBackColor">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultLvlGraphEdgeBackHighlightColor">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultMaxLevelHeightAbs">
<short/>
<descr/>
<seealso/>
</element>
<element name="DefaultMaxLevelHeightRel">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle">
<short/>
<descr>
<p>
TLvlGraphNodeStyle is a TPersistent descendant.
</p>
</descr>
<seealso/>
</element>

<!-- private -->
<element name="TLvlGraphNodeStyle.FCaptionPosition"/>
<element name="TLvlGraphNodeStyle.FCaptionScale"/>
<element name="TLvlGraphNodeStyle.FColoring"/>
<element name="TLvlGraphNodeStyle.FControl"/>
<element name="TLvlGraphNodeStyle.FDefaultImageIndex"/>
<element name="TLvlGraphNodeStyle.FGapBottom"/>
<element name="TLvlGraphNodeStyle.FGapLeft"/>
<element name="TLvlGraphNodeStyle.FGapRight"/>
<element name="TLvlGraphNodeStyle.FGapTop"/>
<element name="TLvlGraphNodeStyle.FShape"/>
<element name="TLvlGraphNodeStyle.FWidth"/>

<element name="TLvlGraphNodeStyle.SetCaptionPosition">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetCaptionPosition.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetCaptionScale">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetCaptionScale.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetColoring">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetColoring.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetDefaultImageIndex">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetDefaultImageIndex.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetGapBottom">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetGapBottom.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetGapLeft">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetGapLeft.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetGapRight">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetGapRight.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetGapTop">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetGapTop.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetShape">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetShape.AValue">
<short/>
</element>

<element name="TLvlGraphNodeStyle.SetWidth">
<short/>
</element>
<element name="TLvlGraphNodeStyle.SetWidth.AValue">
<short/>
</element>

<!-- public -->
<element name="TLvlGraphNodeStyle.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
Create is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphNodeStyle.Create.AControl">
<short>
Level Graph control where values in the class instance are used.
</short>
</element>

<element name="TLvlGraphNodeStyle.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
Destroy is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.Assign">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNodeStyle.Assign.Source">
<short/>
</element>

<element name="TLvlGraphNodeStyle.Equals">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphNodeStyle.Equals.Result">
<short/>
</element>
<element name="TLvlGraphNodeStyle.Equals.Obj">
<short/>
</element>

<element name="TLvlGraphNodeStyle.Control">
<short/>
<descr>
<p>
Control is a read-only TCustomLvlGraphControl property.
</p>
</descr>
<seealso/>
</element>

<!-- published -->
<element name="TLvlGraphNodeStyle.CaptionPosition">
<short/>
<descr>
<p>
The default value for the property is defined in the 
DefaultLvlGraphNodeCaptionPosition constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.CaptionScale">
<short/>
<descr>
<p>
The default value for the property is defined in the 
DefaultLvlGraphNodeCaptionScale constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.Shape">
<short/>
<descr>
<p>
The default value for the property is defined in the DefaultLvlGraphNodeShape 
constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.GapLeft">
<short/>
<descr>
<p>
The default value for the property is defined in the 
DefaultLvlGraphNodeGapLeft constant. Used by AutoLayout.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.GapTop">
<short/>
<descr>
<p>
The default value for the property is defined in the 
DefaultLvlGraphNodeGapTop constant. Used by AutoLayout.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.GapRight">
<short/>
<descr>
<p>
The default value for the property is defined in the 
DefaultLvlGraphNodeGapRight constant. Used by AutoLayout.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.GapBottom">
<short/>
<descr>
<p>
The default value for the property is defined in the 
DefaultLvlGraphNodeGapBottom constant. Used by AutoLayout.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.Width">
<short/>
<descr>
<p>
The default value for the property is defined in the DefaultLvlGraphNodeWith 
constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.DefaultImageIndex">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphNodeStyle.Coloring">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle">
<short/>
<descr>
<p>
TLvlGraphEdgeStyle is a TPersistent descendant.
</p>
</descr>
<seealso/>
</element>

<!-- private -->
<element name="TLvlGraphEdgeStyle.FBackColor"/>
<element name="TLvlGraphEdgeStyle.FColor"/>
<element name="TLvlGraphEdgeStyle.FControl"/>
<element name="TLvlGraphEdgeStyle.FBackHighlightColor"/>
<element name="TLvlGraphEdgeStyle.FHighlightColor"/>
<element name="TLvlGraphEdgeStyle.FMouseDistMax"/>
<element name="TLvlGraphEdgeStyle.FShape"/>
<element name="TLvlGraphEdgeStyle.FSplitMode"/>

<element name="TLvlGraphEdgeStyle.SetBackColor">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.SetBackColor.AValue">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.SetColor">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.SetColor.AValue">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.SetBackHighlightColor">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.SetBackHighlightColor.AValue">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.SetHighlightColor">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.SetHighlightColor.AValue">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.SetMouseDistMax">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.SetMouseDistMax.AValue">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.SetShape">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.SetShape.AValue">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.SetSplitMode">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.SetSplitMode.AValue">
<short/>
</element>

<!-- public -->
<element name="TLvlGraphEdgeStyle.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphEdgeStyle.Create.AControl">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle.Assign">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdgeStyle.Assign.Source">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.Equals">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphEdgeStyle.Equals.Result">
<short/>
</element>
<element name="TLvlGraphEdgeStyle.Equals.Obj">
<short/>
</element>

<element name="TLvlGraphEdgeStyle.Control">
<short/>
<descr>
<p>
<var>Control</var> is a read-only <var>TCustomLvlGraphControl</var> property.
</p>
</descr>
<seealso/>
</element>

<!-- published -->
<element name="TLvlGraphEdgeStyle.SplitMode">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphEdgeSplitMode</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle.MouseDistMax">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphEdgeNearMouseDistMax</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle.Shape">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphEdgeShape</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle.Color">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphEdgeColor</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle.BackColor">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphEdgeBackColor</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle.HighlightColor">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphEdgeHighlightColor</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphEdgeStyle.BackHighlightColor">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphEdgeBackHighlightColor</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphLimits">
<short/>
<descr>
<p>
<var>TLvlGraphLimits</var> is a <var>TPersistent</var> descendant.
</p>
</descr>
<seealso/>
</element>

<!-- private -->
<element name="TLvlGraphLimits.FControl"/>
<element name="TLvlGraphLimits.FMaxLevelHeightAbs"/>
<element name="TLvlGraphLimits.FMaxLevelHeightRel"/>

<element name="TLvlGraphLimits.SetMaxLevelHeightAbs">
<short/>
</element>
<element name="TLvlGraphLimits.SetMaxLevelHeightAbs.AValue">
<short/>
</element>

<element name="TLvlGraphLimits.SetMaxLevelHeightRel">
<short/>
</element>
<element name="TLvlGraphLimits.SetMaxLevelHeightRel.AValue">
<short/>
</element>

<!-- public -->
<element name="TLvlGraphLimits.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TLvlGraphLimits.Create.AControl">
<short>Control where class instance is used.</short>
</element>

<element name="TLvlGraphLimits.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphLimits.Assign">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphLimits.Assign.Source">
<short/>
</element>

<element name="TLvlGraphLimits.Equals">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphLimits.Equals.Result">
<short/>
</element>
<element name="TLvlGraphLimits.Equals.Obj">
<short/>
</element>

<element name="TLvlGraphLimits.Control">
<short/>
<descr>
<p>
<var>Control</var> is a read-only <var>TCustomLvlGraphControl</var> property.
</p>
</descr>
<seealso/>
</element>

<!-- published -->
<element name="TLvlGraphLimits.MaxLevelHeightAbs">
<short>Maximum number of user-specified nodes for a level.</short>
<descr>
<p>
MaxLevelHeightAbs is an Integer property with the maximum number of visible 
(user-specified) nodes in a level. <b>0</b> (<b>zero</b>) indicates that the 
maximum is ignored. The default value for the property is defined in the 
<var>DefaultMaxLevelHeightAbs</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphLimits.MaxLevelHeightRel">
<short/>
<descr>
<p>
<var>MaxLevelHeightRel</var> is a Single property with a factor used to 
determine the maximum number of nodes for a level. <b>0</b> (<b>zero</b>) 
indicates that the factor is ignored.
</p>
<p>
The default value for the property is defined in the 
<var>DefaultMaxLevelHeightRel</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphControlFlag">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphControlFlag.lgcNeedInvalidate">
<short/>
</element>
<element name="TLvlGraphControlFlag.lgcNeedAutoLayout">
<short/>
</element>
<element name="TLvlGraphControlFlag.lgcIgnoreGraphInvalidate">
<short/>
</element>
<element name="TLvlGraphControlFlag.lgcUpdatingScrollBars">
<short/>
</element>
<element name="TLvlGraphControlFlag.lgcFocusedPainting">
<short/>
</element>

<element name="TLvlGraphControlFlags">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphMinimizeOverlappingsEvent">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphMinimizeOverlappingsEvent.MinPos">
<short/>
</element>
<element name="TLvlGraphMinimizeOverlappingsEvent.NodeGapInFront">
<short/>
</element>
<element name="TLvlGraphMinimizeOverlappingsEvent.NodeGapBehind">
<short/>
</element>
<element name="TLvlGraphMinimizeOverlappingsEvent.Handled">
<short/>
</element>

<element name="TLvlGraphDrawStep">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphDrawStep.lgdsBackground">
<short/>
</element>
<element name="TLvlGraphDrawStep.lgdsHeader">
<short/>
</element>
<element name="TLvlGraphDrawStep.lgdsNormalEdges">
<short/>
</element>
<element name="TLvlGraphDrawStep.lgdsNodeCaptions">
<short/>
</element>
<element name="TLvlGraphDrawStep.lgdsHighlightedEdges">
<short/>
</element>
<element name="TLvlGraphDrawStep.lgdsNodes">
<short/>
</element>
<element name="TLvlGraphDrawStep.lgdsFinish">
<short/>
</element>

<element name="TLvlGraphDrawSteps">
<short/>
<descr/>
<seealso/>
</element>

<element name="TLvlGraphDrawEvent">
<short/>
<descr/>
<seealso/>
</element>
<element name="TLvlGraphDrawEvent.Step">
<short/>
</element>
<element name="TLvlGraphDrawEvent.Skip">
<short/>
</element>

<element name="TCustomLvlGraphControl">
<short>Ancestor for the TLvlGraphControl control.</short>
<descr>
<p>
<var>TCustomLvlGraphControl</var> is a <var>TCustomControl</var> descendant 
which implements the ancestor for <var>TLvlGraphControl</var>.
</p>
<p>
It is used to render a level graph (also known as a edlayered graph). A level 
graph consists of nodes (or vertices) and edges with an equidistant spacing 
between related nodes.
</p>
<p>
TCustomLvlGraphControl and TLvlGraphControl provide the following features:
</p>
<ul>
<li>
Offers automatic topological sorting, with an option to put nodes left-most 
or right-most.
</li>
<li>
Offers automatic topological sorting, with an option to put nodes left-most 
or right-most.
</li>
<li>
Edges can be automatically combined.
</li>
<li>
Long edges over multiple levels are combined into a single line with forks to 
related nodes.
</li>
<li>
Provides a heuristic to minimize line crossings.
</li>
<li>
Automatically prevents overlapping of display elements.
</li>
<li>
Nodes can be displayed as rectangles, ellipses or icons stored in a 
TImageList.
</li>
<li>
You can select nodes using the mouse.
</li>
<li>
You can select multiple nodes at once.
</li>
<li>
You can highlight nodes or edges under the mouse.
</li>
<li>
The control displays back edges in special colors, which facilitates quick 
visual identification of cycles (e.g. unit circles).
</li>
<li>
Edges can be drawn straight or as a curve (bezier).
</li>
<li>
There is a header caption.
</li>
<li>
Node captions can be shown to the left, to the right, above, or below nodes.
</li>
<li>
All colors can be set via published properties.
</li>
<li>
Events are provided to custom-draw and/or skip each part of the default 
drawing.
</li>
</ul>
<p>
There is a simple example in:
<url href="https://gitlab.com/freepascal.org/lazarus/lazarus/-/tree/main/examples/levelgraph/lvlgraph_dependencies.lpi">
<file>examples/levelgraph/lvlgraph_dependencies.lpi</file>
</url>.
</p>
<p>
TLvlGraphControl is used to display unit dependencies in the Package Graph 
for the Lazarus IDE.
</p>
</descr>
<seealso>
<link id="TLvlGraphControl"/>
</seealso>
</element>

<!-- private -->
<element name="TCustomLvlGraphControl.FEdgeStyle"/>
<element name="TCustomLvlGraphControl.FEdgeNearMouse"/>
<element name="TCustomLvlGraphControl.FGraph"/>
<element name="TCustomLvlGraphControl.FImageChangeLink"/>
<element name="TCustomLvlGraphControl.FImages"/>
<element name="TCustomLvlGraphControl.FLimits"/>
<element name="TCustomLvlGraphControl.FNodeStyle"/>
<element name="TCustomLvlGraphControl.FNodeUnderMouse"/>
<element name="TCustomLvlGraphControl.FOnDrawStep"/>
<element name="TCustomLvlGraphControl.FOnEndAutoLayout"/>
<element name="TCustomLvlGraphControl.FOnMinimizeCrossings"/>
<element name="TCustomLvlGraphControl.FOnMinimizeOverlappings"/>
<element name="TCustomLvlGraphControl.FOnSelectionChanged"/>
<element name="TCustomLvlGraphControl.FOnStartAutoLayout"/>
<element name="TCustomLvlGraphControl.FOptions"/>
<element name="TCustomLvlGraphControl.FZoom"/>
<element name="TCustomLvlGraphControl.FPixelPerWeight"/>
<element name="TCustomLvlGraphControl.FScrollLeft"/>
<element name="TCustomLvlGraphControl.FScrollLeftMax"/>
<element name="TCustomLvlGraphControl.FScrollTopMax"/>
<element name="TCustomLvlGraphControl.FScrollTop"/>
<element name="TCustomLvlGraphControl.FUpdateLock"/>
<element name="TCustomLvlGraphControl.FFlags"/>

<element name="TCustomLvlGraphControl.ColorNodesRandomRGB">
<short/>
</element>

<element name="TCustomLvlGraphControl.DrawCaptions">
<short/>
</element>
<element name="TCustomLvlGraphControl.DrawCaptions.TxtH">
<short/>
</element>

<element name="TCustomLvlGraphControl.ComputeEdgeCoords">
<short/>
</element>

<element name="TCustomLvlGraphControl.DrawEdges">
<short/>
</element>
<element name="TCustomLvlGraphControl.DrawEdges.Highlighted">
<short/>
</element>

<element name="TCustomLvlGraphControl.DrawNodes">
<short/>
</element>

<element name="TCustomLvlGraphControl.GetSelectedNode">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetSelectedNode.Result">
<short/>
</element>

<element name="TCustomLvlGraphControl.SetEdgeNearMouse">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetEdgeNearMouse.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.SetImages">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetImages.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.SetNodeStyle">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetNodeStyle.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.SetNodeUnderMouse">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetNodeUnderMouse.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.SetOptions">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetOptions.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.SetScrollLeft">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetScrollLeft.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.SetScrollTop">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetScrollTop.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.ClientPosFor">
<short>
Converts a given point or rectangle to client coordinates in the visible area 
for the control.
</short>
</element>
<element name="TCustomLvlGraphControl.ClientPosFor.Result"/>
<element name="TCustomLvlGraphControl.ClientPosFor.AGraphPoint"/>
<element name="TCustomLvlGraphControl.ClientPosFor.AGraphRect"/>

<element name="TCustomLvlGraphControl.ApplyZoom">
<short/>
</element>
<element name="TCustomLvlGraphControl.ApplyZoom.Result"/>
<element name="TCustomLvlGraphControl.ApplyZoom.c"/>
<element name="TCustomLvlGraphControl.ApplyZoom.p"/>
<element name="TCustomLvlGraphControl.ApplyZoom.r"/>

<element name="TCustomLvlGraphControl.GetZoomedTop">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetZoomedTop.Result"/>
<element name="TCustomLvlGraphControl.GetZoomedTop.ANode"/>

<element name="TCustomLvlGraphControl.GetZoomedCenter">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetZoomedCenter.Result"/>
<element name="TCustomLvlGraphControl.GetZoomedCenter.ANode"/>

<element name="TCustomLvlGraphControl.GetZoomedBottom">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetZoomedBottom.Result"/>
<element name="TCustomLvlGraphControl.GetZoomedBottom.ANode"/>

<element name="TCustomLvlGraphControl.SetSelectedNode">
<short/>
</element>
<element name="TCustomLvlGraphControl.SetSelectedNode.AValue">
<short/>
</element>

<element name="TCustomLvlGraphControl.UpdateScrollBars">
<short/>
</element>

<element name="TCustomLvlGraphControl.WMHScroll">
<short/>
</element>
<element name="TCustomLvlGraphControl.WMHScroll.Msg">
<short/>
</element>

<element name="TCustomLvlGraphControl.WMVScroll">
<short/>
</element>
<element name="TCustomLvlGraphControl.WMVScroll.Msg">
<short/>
</element>

<element name="TCustomLvlGraphControl.WMMouseWheel">
<short/>
</element>
<element name="TCustomLvlGraphControl.WMMouseWheel.Message">
<short/>
</element>

<element name="TCustomLvlGraphControl.MouseUp">
<short/>
</element>
<element name="TCustomLvlGraphControl.MouseUp.Button"/>
<element name="TCustomLvlGraphControl.MouseUp.Shift"/>
<element name="TCustomLvlGraphControl.MouseUp.X"/>
<element name="TCustomLvlGraphControl.MouseUp.Y"/>

<element name="TCustomLvlGraphControl.ImageListChange">
<short/>
</element>
<element name="TCustomLvlGraphControl.ImageListChange.Sender">
<short/>
</element>

<!-- protected -->
<element name="TCustomLvlGraphControl.GraphInvalidate">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.GraphInvalidate.Sender">
<short/>
</element>

<element name="TCustomLvlGraphControl.GraphSelectionChanged">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.GraphSelectionChanged.Sender">
<short/>
</element>

<element name="TCustomLvlGraphControl.GraphStructureChanged">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.GraphStructureChanged.Sender">
<short/>
</element>
<element name="TCustomLvlGraphControl.GraphStructureChanged.Element">
<short/>
</element>
<element name="TCustomLvlGraphControl.GraphStructureChanged.Operation">
<short/>
</element>

<element name="TCustomLvlGraphControl.DoSetBounds">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.DoSetBounds.ALeft">
<short/>
</element>
<element name="TCustomLvlGraphControl.DoSetBounds.ATop">
<short/>
</element>
<element name="TCustomLvlGraphControl.DoSetBounds.AWidth">
<short/>
</element>
<element name="TCustomLvlGraphControl.DoSetBounds.AHeight">
<short/>
</element>

<element name="TCustomLvlGraphControl.DoStartAutoLayout">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.DoMinimizeCrossings">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.DoAutoLayoutLevels">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.DoAutoLayoutLevels.TxtHeight">
<short/>
</element>

<element name="TCustomLvlGraphControl.DoMinimizeOverlappings">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.DoMinimizeOverlappings.MinPos">
<short/>
</element>
<element name="TCustomLvlGraphControl.DoMinimizeOverlappings.NodeGapInFront">
<short/>
</element>
<element name="TCustomLvlGraphControl.DoMinimizeOverlappings.NodeGapBehind">
<short/>
</element>

<element name="TCustomLvlGraphControl.DoEndAutoLayout">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.DoDrawEdge">
<short>
Draws a line for the specified Edge using the current Canvas color.
</short>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.DoDrawEdge.Edge">
<short/>
</element>

<element name="TCustomLvlGraphControl.Paint">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.Draw">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.Draw.Result">
<short/>
</element>
<element name="TCustomLvlGraphControl.Draw.Step">
<short/>
</element>

<element name="TCustomLvlGraphControl.MouseMove">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.MouseMove.Shift">
<short/>
</element>
<element name="TCustomLvlGraphControl.MouseMove.X">
<short/>
</element>
<element name="TCustomLvlGraphControl.MouseMove.Y">
<short/>
</element>

<element name="TCustomLvlGraphControl.MouseDown">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.MouseDown.Button">
<short/>
</element>
<element name="TCustomLvlGraphControl.MouseDown.Shift">
<short/>
</element>
<element name="TCustomLvlGraphControl.MouseDown.X">
<short/>
</element>
<element name="TCustomLvlGraphControl.MouseDown.Y">
<short/>
</element>

<element name="TCustomLvlGraphControl.CreateWnd">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.HighlightConnectedEgdes">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.HighlightConnectedEgdes.Element">
<short/>
</element>

<element name="TCustomLvlGraphControl.DoOnShowHint">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.DoOnShowHint.HintInfo">
<short/>
</element>

<!-- public -->
<element name="TCustomLvlGraphControl.Create">
<short>Constructor for the class instance.</short>
<descr>
<p>
<var>Create</var> is the overridden constructor for the class instance.
</p>
</descr>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.Create.AOwner">
<short>Owner of the class instance.</short>
</element>

<element name="TCustomLvlGraphControl.Destroy">
<short>Destructor for the class instance.</short>
<descr>
<p>
<var>Destroy</var> is the overridden destructor for the class instance.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.EraseBackground">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.EraseBackground.DC">
<short/>
</element>

<element name="TCustomLvlGraphControl.Graph">
<short/>
<descr>
<p>
<var>Graph</var> is a read-only <var>TLvlGraph</var> property.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.Clear">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.AutoLayout">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.Invalidate">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.InvalidateAutoLayout">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.BeginUpdate">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.EndUpdate">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.GetNodeAt">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.GetNodeAt.Result">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetNodeAt.X">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetNodeAt.Y">
<short/>
</element>

<element name="TCustomLvlGraphControl.GetEdgeAt">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.GetEdgeAt.Result">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetEdgeAt.X">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetEdgeAt.Y">
<short/>
</element>
<element name="TCustomLvlGraphControl.GetEdgeAt.Distance">
<short/>
</element>

<element name="TCustomLvlGraphControl.GetControlClassDefaultSize">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.GetControlClassDefaultSize.Result">
<short/>
</element>

<element name="TCustomLvlGraphControl.GetDrawSize">
<short/>
<descr/>
<seealso/>
</element>
<element name="TCustomLvlGraphControl.GetDrawSize.Result">
<short/>
</element>

<!-- public -->
<element name="TCustomLvlGraphControl.NodeStyle">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.NodeUnderMouse">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.EdgeNearMouse">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.EdgeStyle">
<short/>
<descr>
<p>
<var>EdgeStyle</var> is a read-only <var>TLvlGraphEdgeStyle</var> property.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.Limits">
<short/>
<descr>
<p>
<var>Limits</var> is a read-only <var>TLvlGraphLimits</var> property.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.Options">
<short/>
<descr>
<p>
The default value for the property is defined in the 
<var>DefaultLvlGraphCtrlOptions</var> constant.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.OnSelectionChanged">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.ScrollTop">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.ScrollTopMax">
<short/>
<descr>
<p>
<var>ScrollTopMax</var> is a read-only <var>Integer</var> property.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.ScrollLeft">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.ScrollLeftMax">
<short/>
<descr>
<p>
<var>ScrollLeftMax</var> is a read-only <var>Integer</var> property.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.OnMinimizeCrossings">
<short>
Event handler signalled to provide an alternative minimize crossing algorithm.
</short>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.OnMinimizeOverlappings">
<short>
Event handler signalled to provide an alternative minimize overlappings 
algorithm.
</short>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.OnStartAutoLayout">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.OnEndAutoLayout">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.OnDrawStep">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.Images">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.PixelPerWeight">
<short/>
<descr>
<p>
<var>PixelPerWeight</var> is a read-only <var>Single</var> property.
</p>
</descr>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.SelectedNode">
<short/>
<descr/>
<seealso/>
</element>

<element name="TCustomLvlGraphControl.ShowHint">
<short/>
<descr>
<p>
The default value for the property is <b>True</b>.
</p>
</descr>
<seealso/>
</element>

<element name="TLvlGraphControl">
<short>Implements a control used to draw a level (or layered) graph.</short>
<descr>
<p>
<var>TLvlGraphControl</var> is a <var>TCustomLvlGraphControl</var> descendant 
which implements a control used to render a level graph (also known as a 
edlayered graph). A level graph consists of nodes (or vertices) and edges  
with an equidistant spacing between related nodes.
</p>
<p>
TLvlGraphControl provides the following features:
</p>
<ul>
<li>
Offers automatic topological sorting, with an option to put nodes left-most 
or right-most.
</li>
<li>
Offers automatic topological sorting, with an option to put nodes left-most 
or right-most.
</li>
<li>
Edges can be automatically combined.
</li>
<li>
Long edges over multiple levels are combined into a single line with forks to 
related nodes.
</li>
<li>
Provides a heuristic to minimize line crossings.
</li>
<li>
Automatically prevents overlapping of display elements.
</li>
<li>
Nodes can be displayed as rectangles, ellipses or icons stored in a 
TImageList.
</li>
<li>
You can select nodes using the mouse.
</li>
<li>
You can select multiple nodes at once.
</li>
<li>
You can highlight nodes or edges under the mouse.
</li>
<li>
The control displays back edges in special colors, which facilitates quick 
visual identification of cycles (e.g. unit circles).
</li>
<li>
Edges can be drawn straight or as a curve (bezier).
</li>
<li>
There is a header caption.
</li>
<li>
Node captions can be shown to the left, to the right, above, or below nodes.
</li>
<li>
All colors can be set via published properties.
</li>
<li>
Events are provided to custom-draw and/or skip each part of the default 
drawing.
</li>
</ul>
<p>
There is a simple example in:
<url href="https://gitlab.com/freepascal.org/lazarus/lazarus/-/tree/main/examples/levelgraph/lvlgraph_dependencies.lpi">
<file>examples/levelgraph/lvlgraph_dependencies.lpi</file>
</url>.
</p>
<p>
TLvlGraphControl is used to display unit dependencies in the Package Graph 
for the Lazarus IDE.
</p>
</descr>
<seealso>
</seealso>
</element>

<!-- published -->
<element name="TLvlGraphControl.Align" link="#lcl.controls.TControl.Align"/>
<element name="TLvlGraphControl.Anchors" link="#lcl.controls.TControl.Anchors"/>
<element name="TLvlGraphControl.BorderSpacing" link="#lcl.controls.TControl.BorderSpacing"/>
<element name="TLvlGraphControl.BorderStyle" link="#lcl.controls.TCustomControl.BorderStyle"/>
<element name="TLvlGraphControl.BorderWidth" link="#lcl.controls.TWinControl.BorderWidth"/>
<element name="TLvlGraphControl.Color" link="#lcl.controls.TControl.Color"/>
<element name="TLvlGraphControl.Constraints" link="#lcl.controls.TControl.Constraints"/>
<element name="TLvlGraphControl.DragCursor" link="#lcl.controls.TControl.DragCursor"/>
<element name="TLvlGraphControl.DragKind" link="#lcl.controls.TControl.DragKind"/>
<element name="TLvlGraphControl.DragMode" link="#lcl.controls.TControl.DragMode"/>
<element name="TLvlGraphControl.EdgeStyle" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.EdgeStyle"/>
<element name="TLvlGraphControl.Enabled" link="#lcl.controls.TControl.Enabled"/>
<element name="TLvlGraphControl.Font" link="#lcl.controls.TControl.Font"/>
<element name="TLvlGraphControl.NodeStyle" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.NodeStyle"/>
<element name="TLvlGraphControl.OnClick" link="#lcl.controls.TControl.OnClick"/>
<element name="TLvlGraphControl.OnContextPopup" link="#lcl.controls.TControl.OnContextPopup"/>
<element name="TLvlGraphControl.OnDblClick" link="#lcl.controls.TControl.OnDblClick"/>
<element name="TLvlGraphControl.OnDragDrop" link="#lcl.controls.TControl.OnDragDrop"/>
<element name="TLvlGraphControl.OnDragOver" link="#lcl.controls.TControl.OnDragOver"/>
<element name="TLvlGraphControl.OnDrawStep" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.OnDrawStep"/>
<element name="TLvlGraphControl.OnEndAutoLayout" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.OnEndAutoLayout"/>
<element name="TLvlGraphControl.OnEndDrag" link="#lcl.controls.TControl.OnEndDrag"/>
<element name="TLvlGraphControl.OnEnter" link="#lcl.controls.TWinControl.OnEnter"/>
<element name="TLvlGraphControl.OnExit" link="#lcl.controls.TWinControl.OnExit"/>
<element name="TLvlGraphControl.OnKeyDown" link="#lcl.controls.TWinControl.OnKeyDown"/>
<element name="TLvlGraphControl.OnKeyPress" link="#lcl.controls.TWinControl.OnKeyPress"/>
<element name="TLvlGraphControl.OnKeyUp" link="#lcl.controls.TWinControl.OnKeyUp"/>
<element name="TLvlGraphControl.OnMinimizeCrossings" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.OnMinimizeCrossings"/>
<element name="TLvlGraphControl.OnMinimizeOverlappings" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.OnMinimizeOverlappings"/>
<element name="TLvlGraphControl.OnMouseDown" link="#lcl.controls.TControl.OnMouseDown"/>
<element name="TLvlGraphControl.OnMouseEnter" link="#lcl.controls.TControl.OnMouseEnter"/>
<element name="TLvlGraphControl.OnMouseLeave" link="#lcl.controls.TControl.OnMouseLeave"/>
<element name="TLvlGraphControl.OnMouseMove" link="#lcl.controls.TControl.OnMouseMove"/>
<element name="TLvlGraphControl.OnMouseUp" link="#lcl.controls.TControl.OnMouseUp"/>
<element name="TLvlGraphControl.OnSelectionChanged" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.OnSelectionChanged"/>
<element name="TLvlGraphControl.OnShowHint" link="#lcl.controls.TControl.OnShowHint"/>
<element name="TLvlGraphControl.OnStartAutoLayout" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.OnStartAutoLayout"/>
<element name="TLvlGraphControl.OnStartDrag" link="#lcl.controls.TControl.OnStartDrag"/>
<element name="TLvlGraphControl.OnUTF8KeyPress" link="#lcl.controls.TWinControl.OnUTF8KeyPress"/>
<element name="TLvlGraphControl.Options" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.Options"/>
<element name="TLvlGraphControl.ParentColor" link="#lcl.controls.TControl.ParentColor"/>
<element name="TLvlGraphControl.ParentFont" link="#lcl.controls.TControl.ParentFont"/>
<element name="TLvlGraphControl.ParentShowHint" link="#lcl.controls.TControl.ParentShowHint"/>
<element name="TLvlGraphControl.PopupMenu" link="#lcl.controls.TControl.PopupMenu"/>
<element name="TLvlGraphControl.ShowHint" link="#lazcontrols.lvlgraphctrl.TCustomLvlGraphControl.ShowHint"/>
<element name="TLvlGraphControl.TabOrder" link="#lcl.controls.TWinControl.TabOrder"/>
<element name="TLvlGraphControl.TabStop" link="#lcl.controls.TWinControl.TabStop"/>
<element name="TLvlGraphControl.Tag" link="#rtl.classes.TComponent.Tag"/>
<element name="TLvlGraphControl.Visible" link="#lcl.controls.TControl.Visible"/>

<element name="GetCCPaletteRGB">
<short/>
<descr/>
<seealso/>
</element>
<element name="GetCCPaletteRGB.Result">
<short/>
</element>
<element name="GetCCPaletteRGB.Cnt">
<short/>
</element>
<element name="GetCCPaletteRGB.Shuffled">
<short/>
</element>

<element name="ShuffleCCPalette">
<short/>
<descr/>
<seealso/>
</element>
<element name="ShuffleCCPalette.Palette">
<short/>
</element>

<element name="Darker">
<short/>
<descr/>
<seealso/>
</element>
<element name="Darker.Result">
<short/>
</element>
<element name="Darker.c">
<short/>
</element>

<element name="GetManhattanDistancePointLine">
<short>
Gets the distance from a point measured along axes at right angles.
</short>
<descr>
<p>
GetManhattanDistancePointLine is an Integer function used to get a distance 
from a point measured along axes at right angles. Also called "taxicab 
geometry". In taxicab geometry, the distance between two points is the sum 
of the absolute differences of their Cartesian coordinates.
</p>
<p>
In other words, Geometric distance measures the hypotenuse for a right 
triangle. Manhattan distance is the cumulative length of the adjacent and 
opposite sides for that right triangle.
</p>
<p>
X and Y contain the coordinates with the origin for the measurement.
</p>
<p>
LineX1 and LineY1 contain the end coordinates for the adjacent side of the 
right triangle (starting at X, Y).
</p>
<p>
LineX2 and LineY2 contain the end coordinates for the opposite side of the 
right triangle (start at LineX1, LineY1).
</p>
</descr>
<seealso/>
</element>
<element name="GetManhattanDistancePointLine.Result">
<short>
Distance along the sides of a right triangle using the specified coordinates.
</short>
</element>
<element name="GetManhattanDistancePointLine.X">
<short>Horizontal coordinate for the origin of the measurement.</short>
</element>
<element name="GetManhattanDistancePointLine.Y">
<short>Vertical coordinate for the origin of the measurement.</short>
</element>
<element name="GetManhattanDistancePointLine.LineX1">
<short/>
</element>
<element name="GetManhattanDistancePointLine.LineY1">
<short/>
</element>
<element name="GetManhattanDistancePointLine.LineX2">
<short/>
</element>
<element name="GetManhattanDistancePointLine.LineY2">
<short/>
</element>

<element name="GetDistancePointLine">
<short/>
<descr/>
<seealso/>
</element>
<element name="GetDistancePointLine.Result">
<short/>
</element>
<element name="GetDistancePointLine.X">
<short/>
</element>
<element name="GetDistancePointLine.Y">
<short/>
</element>
<element name="GetDistancePointLine.LineX1">
<short/>
</element>
<element name="GetDistancePointLine.LineY1">
<short/>
</element>
<element name="GetDistancePointLine.LineX2">
<short/>
</element>
<element name="GetDistancePointLine.LineY2">
<short/>
</element>

<element name="GetDistancePointPoint">
<short/>
<descr/>
<seealso/>
</element>
<element name="GetDistancePointPoint.Result">
<short/>
</element>
<element name="GetDistancePointPoint.X1">
<short/>
</element>
<element name="GetDistancePointPoint.Y1">
<short/>
</element>
<element name="GetDistancePointPoint.X2">
<short/>
</element>
<element name="GetDistancePointPoint.Y2">
<short/>
</element>

<element name="LvlGraphMinimizeCrossings">
<short/>
<descr/>
<seealso/>
</element>
<element name="LvlGraphMinimizeCrossings.Graph">
<short/>
</element>

<element name="LvlGraphHighlightNode">
<short/>
<descr/>
<seealso/>
</element>
<element name="LvlGraphHighlightNode.Node">
<short/>
</element>
<element name="LvlGraphHighlightNode.HighlightedElements">
<short/>
</element>
<element name="LvlGraphHighlightNode.FollowIn">
<short/>
</element>
<element name="LvlGraphHighlightNode.FollowOut">
<short/>
</element>

<element name="CompareLGNodesByCenterPos">
<short/>
<descr/>
<seealso/>
</element>
<element name="CompareLGNodesByCenterPos.Result">
<short/>
</element>
<element name="CompareLGNodesByCenterPos.Node1">
<short/>
</element>
<element name="CompareLGNodesByCenterPos.Node2">
<short/>
</element>

<element name="DrawCurvedLvlLeftToRightEdge">
<short/>
<descr/>
<seealso/>
</element>
<element name="DrawCurvedLvlLeftToRightEdge.Canvas">
<short/>
</element>
<element name="DrawCurvedLvlLeftToRightEdge.x1">
<short/>
</element>
<element name="DrawCurvedLvlLeftToRightEdge.y1">
<short/>
</element>
<element name="DrawCurvedLvlLeftToRightEdge.x2">
<short/>
</element>
<element name="DrawCurvedLvlLeftToRightEdge.y2">
<short/>
</element>
<element name="DrawCurvedLvlLeftToRightEdge.StraightenLeft">
<short/>
</element>
<element name="DrawCurvedLvlLeftToRightEdge.StraightenRight">
<short/>
</element>

<element name="NodeAVLTreeToNodeArray">
<short/>
<descr/>
<seealso/>
</element>
<element name="NodeAVLTreeToNodeArray.Result">
<short/>
</element>
<element name="NodeAVLTreeToNodeArray.Nodes">
<short/>
</element>
<element name="NodeAVLTreeToNodeArray.RemoveHidden">
<short/>
</element>
<element name="NodeAVLTreeToNodeArray.FreeTree">
<short/>
</element>

<element name="NodeArrayAsString">
<short>
Gets a string with a comma-delimited list of captions for the specified node 
array.
</short>
<descr/>
<seealso/>
</element>
<element name="NodeArrayAsString.Result">
<short>Comma-delimited list of captions for the specified node array.</short>
</element>
<element name="NodeArrayAsString.Nodes">
<short>Array with the TLvlGraphNode instances examined in the routine.</short>
</element>

<element name="dbgs">
<short/>
<descr/>
<seealso/>
</element>
<element name="dbgs.Result">
<short/>
</element>
<element name="dbgs.p">
<short/>
</element>
<element name="dbgs.o">
<short/>
</element>
<element name="dbgs.Options">
<short/>
</element>

</module>
<!-- LvlGraphCtrl -->
</package>
</fpdoc-descriptions>
