<?xml version="1.0" encoding="UTF-8"?>
<fpdoc-descriptions>
  <package name="lcl">
    <!--
  ====================================================================
    LDockTree
  ====================================================================
-->
    <module name="LDockTree">
      <short>This unit defines TLazDockTree, the default TDockTree for the LCL</short>
      <descr/>
      <!-- unresolved type reference Visibility: default -->
      <element name="Classes">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="SysUtils">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="LCLProc">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="Forms">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="Controls">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="ComCtrls">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockPages">
        <short>
          <var>TLazDockPages</var> a notebook in which each page is a <var>TLazDockPage</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockPage">
        <short>
          <var>TLazDockPage</var> - an entity similar to a <var>TLazDockForm</var>, but forming a page in a notebook of <var>TLazDockPages</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockSplitter">
        <short>
          <var>TLazDockSplitter</var> - a splitter used with Lazarus Docking components</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockZone">
        <short>
          <var>TLazDockZone</var> - a zone for docking in a Lazarus form</short>
        <descr/>
        <errors/>
        <seealso/>
      <notes><note>?</note>
        </notes>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockZone.FPage">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockZone.FPages">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockZone.FSplitter">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- destructor Visibility: public -->
      <element name="TLazDockZone.Destroy">
        <short>
          <var>Destroy</var> - destructor for <var>TLazDockZone</var>; frees subcomponents then calls inherited <var>Destroy</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function Visibility: public -->
      <element name="TLazDockZone.GetCaption">
        <short>
          <var>GetCaption</var> - if there is a child control, returns the caption for that control; else returns the Index of the control as a string value</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TLazDockZone.GetCaption.Result">
        <short/>
      </element>
      <!-- function Visibility: public -->
      <element name="TLazDockZone.GetParentControl">
        <short>
          <var>GetParentControl</var> - returns the identity of the Parent control if there is one; otherwise returns the Root zone if this is, in fact, the Root, or the Child control</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TLazDockZone.GetParentControl.Result">
        <short/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockZone.Splitter">
        <short>The <var>Splitter</var> to be use to control the docking of this Zone</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockZone.Pages">
        <short>The <var>Pages</var> (as in a Notebook) included in the dock zone</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockZone.Page">
        <short>A <var>Page</var> in the Notebook included in the Dock Zone</short>
        <descr/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockTree">
        <short>
          <var>TLazDockTree</var> - a tree of <var>TLazDockZones</var> found in a docked window</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockTree.FAutoFreeDockSite">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- procedure Visibility: protected -->
      <element name="TLazDockTree.UndockControlForDocking">
        <short>
          <var>UndockControlForDocking</var> - frees anchors from parent and sibling controls</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.UndockControlForDocking.AControl">
        <short/>
      </element>
      <!-- procedure Visibility: protected -->
      <element name="TLazDockTree.BreakAnchors">
        <short>
          <var>BreakAnchors</var> - detach the anchors of all child controls</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.BreakAnchors.Zone">
        <short/>
      </element>
      <!-- procedure Visibility: protected -->
      <element name="TLazDockTree.CreateDockLayoutHelperControls">
        <short>
          <var>CreateDockLayoutHelperControls</var> - creates any splitters and pages needed for the dock layout, including recursive creation for child controls</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.CreateDockLayoutHelperControls.Zone">
        <short/>
      </element>
      <!-- procedure Visibility: protected -->
      <element name="TLazDockTree.AnchorDockLayout">
        <short>
          <var>AnchorDockLayout</var> - sets up anchors between all docked controls and helper controls</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.AnchorDockLayout.Zone">
        <short/>
      </element>
      <!-- constructor Visibility: public -->
      <element name="TLazDockTree.Create">
        <short>
          <var>Create</var> - constructor for <var>TLazDockTree</var>: creates a docking form if required, sets up a dock manager then calls inherited <var>Create</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.Create.TheDockSite">
        <short/>
      </element>
      <!-- destructor Visibility: public -->
      <element name="TLazDockTree.Destroy">
        <short>
          <var>Destroy</var> - destructor for <var>TLazDockTree</var>: frees the dock site, annuls the Docksite manager, destroys any images then calls inherited <var>Destroy</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- procedure Visibility: public -->
      <element name="TLazDockTree.InsertControl">
        <short>
          <var>InsertControl</var> - undocks <var>AControl</var> and docks it into the tree</short>
        <descr>
          <p>
            <var>InsertControl</var> - undocks AControl and docks it into the tree</p>
          <pre>It creates a new TDockZone for AControl and inserts it as a new leaf.
  It automatically changes the tree, so that the parent of the new TDockZone
  will have the Orientation for InsertAt.

  Example 1:

    A newly created TLazDockTree has only a DockSite (TLazDockForm) and a single
    TDockZone - the RootZone, which has as ChildControl the DockSite.

    Visual:
      +-DockSite--+
      |           |
      +-----------+
    Tree of TDockZone:
      RootZone (DockSite,doNoOrient)


  Inserting the first control:  InsertControl(Form1,alLeft,nil);
    Visual:
      +-DockSite---+
      |+--Form1---+|
      ||          ||
      |+----------+|
      +------------+
    Tree of TDockZone:
      RootZone (DockSite,doHorizontal)
       +-Zone2 (Form1,doNoOrient)


  Dock Form2 right of Form1:  InsertControl(Form2,alLeft,Form1);
    Visual:
      +-DockSite----------+
      |+-Form1-+|+-Form2-+|
      ||        ||       ||
      |+-------+|+-------+|
      +-------------------+
    Tree of TDockZone:
      RootZone (DockSite,doHorizontal)
       +-Zone2 (Form1,doNoOrient)
       +-Zone3 (Form2,doNoOrient)  </pre>
        </descr>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.InsertControl.AControl">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.InsertControl.InsertAt">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.InsertControl.DropControl">
        <short/>
      </element>
      <!-- procedure Visibility: public -->
      <element name="TLazDockTree.BuildDockLayout">
        <short>
          <var>BuildDockLayout</var> - breaks the current anchors, forms the appropriate helper controls then re-establishes the anchors</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.BuildDockLayout.Zone">
        <short/>
      </element>
      <!-- procedure Visibility: public -->
      <element name="TLazDockTree.FindBorderControls">
        <short>
          <var>FindBorderControls</var> - makes splitters for all bordering controls along the specified <var>Side</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.FindBorderControls.Zone">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.FindBorderControls.Side">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.FindBorderControls.List">
        <short/>
      </element>
      <!-- function Visibility: public -->
      <element name="TLazDockTree.FindBorderControl">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TLazDockTree.FindBorderControl.Result">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.FindBorderControl.Zone">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.FindBorderControl.Side">
        <short/>
      </element>
      <!-- function Visibility: public -->
      <element name="TLazDockTree.GetAnchorControl">
        <short>
          <var>GetAnchorControl</var> - find a control to anchor the Zone's Side</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TLazDockTree.GetAnchorControl.Result">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.GetAnchorControl.Zone">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.GetAnchorControl.Side">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockTree.GetAnchorControl.OutSide">
        <short/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockTree.AutoFreeDockSite">
        <short>
          <var>AutoFreeDockSite</var> - determines whether the dock site is free</short>
        <descr/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockForm">
        <short>
          <var>TLazDockForm</var> - the default DockSite for a TLazDockTree and for TCustomAnchoredDockManager</short>
        <descr>
          <p>
            <var>TLazDockForm</var> - the default DockSite for a TLazDockTree and for TCustomAnchoredDockManager</p>
          <pre>Note: There are two docking managers:
      TLazDockTree uses TLazDockZone to allow docking in rows and columns.
      TCustomAnchoredDockManager does not use TLazDockZone and allows arbitrary layouts.   </pre>
        </descr>
        <errors/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockForm.FDockZone">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockForm.FPageControl">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockForm.DockZone">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockForm.PageControl">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockPage">
        <short>
          <var>TLazDockPage</var> - an entity similar to a <var>TLazDockForm</var>, but forming a page in a notebook of <var>TLazDockPages</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockPage.FDockZone">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TLazDockPage.FPageControl">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockPage.DockZone">
        <short>The <var>DockZone</var> in which this page is located</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockPage.PageControl">
        <short>The <var>PageControl</var> or notebook in which this page is located (its parent)</short>
        <descr/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockPages">
        <short>
          <var>TLazDockPages</var> a notebook in which each page is a <var>TLazDockPage</var>
        </short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function Visibility: private -->
      <element name="TLazDockPages.GetActiveNotebookPageComponent">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TLazDockPages.GetActiveNotebookPageComponent.Result">
        <short/>
      </element>
      <!-- function Visibility: private -->
      <element name="TLazDockPages.GetNoteBookPage">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TLazDockPages.GetNoteBookPage.Result">
        <short/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockPages.GetNoteBookPage.Index">
        <short/>
      </element>
      <!-- procedure Visibility: private -->
      <element name="TLazDockPages.SetActiveNotebookPageComponent">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockPages.SetActiveNotebookPageComponent.AValue">
        <short/>
      </element>
      <!-- constructor Visibility: public -->
      <element name="TLazDockPages.Create">
        <short>
          <var>Create</var> - constructor for <var>TLazDockPages</var>: sets <var>PageClass</var> as <var>TLazDockPage</var>, then calls inherited <var>Create</var>
        </short>
        <descr/>
        <errors/>
        <seealso>
          <link id="#LCL.ComCtrls.TCustomTabControl.Create">TCustomTabControl.Create</link>
        </seealso>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockPages.Create.TheOwner">
        <short/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockPages.Page">
        <short>
          <var>Page</var> - an individual <var>TLazDockPage</var> in the notebook, referred by its <var>Index</var>
        </short>
        <descr/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TLazDockPages.Page.Index">
        <short/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockPages.ActivePageComponent" link="#LCL.ComCtrls.TCustomNotebook.ActivePageComponent">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TLazDockPages.Pages" link="#LCL.ComCtrls.TCustomNotebook.Pages">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- object Visibility: default -->
      <element name="TLazDockSplitter">
        <short>
          <var>TLazDockSplitter</var> - a splitter used with Lazarus Docking components</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- constant Visibility: default -->
      <element name="DockAlignOrientations">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <element name="TLazDockZone.FreeSubComponents">
        <short>
          <var>FreeSubComponents</var> - frees and nils the local splitter and page/pages components, ready for destroying the control</short>
      </element>
      <element name="TLazDockTree.ResetSizes">
        <short>
          <var>ResetSizes</var> - splits available size of Zone between children</short>
      </element>
      <element name="TLazDockTree.PaintDockFrame">
        <short>
          <var>PaintDockFrame</var> - finds the cursor position and paints the dock frame of the specified size on the nominated canvas</short>
      </element>
      <element name="TLazDockTree.DefaultDockGrabberSize">
        <short>
          <var>DefaultDockGrabberSize</var> - returns the default size for the dock grabber</short>
      </element>
      <element name="TLazDockTree.AdjustDockRect">
        <short>
          <var>AdjustDockRect</var> - offset one of the borders of control rect in order to get space for frame</short>
      </element>
      <element name="TLazDockTree.RemoveControl">
        <short>
          <var>RemoveControl</var> - destroy child zone and all parents if they does not contain anything else, then removes the dock control</short>
      </element>
      <element name="TLazDockTree.PaintSite">
        <short>
          <var>PaintSite</var> - paint bounds for each control and close button (using the supplied handle)</short>
      </element>
      <element name="TLazDockTree.MessageHandler">
        <short>
          <var>MessageHandler</var> - checks the state of the mouse and takes the appropriate action: checks whether redraw is needed because of mouse move or change in mouse button status, text needs to be added, etc</short>
      </element>
      <element name="TLazDockTree.DumpLayout">
        <short>
          <var>DumpLayout</var> - writes layout of Zone to a file, for debugging purposes etc</short>
      </element>
      <element name="TLazDockForm.Notification">
        <short>
          <var>Notification</var> - if the required operation is removal, sets MainControl to nil, then calls inherited <var>Notification</var>
        </short>
        <seealso>
          <link id="#LCL.Forms.TCustomForm.Notification">TCustomForm.Notification</link>
        </seealso>
      </element>
      <element name="TLazDockForm.UpdateMainControl">
        <short>
          <var>UpdateMainControl</var> - sets MainControl to a new value</short>
      </element>
      <element name="TLazDockForm.MouseUp">
        <short>
          <var>MouseUp</var> - calls inherited MouseUp then finds position and appropriate header</short>
        <seealso>
          <link id="#LCL.Controls.TControl.MouseUp">TControl.MouseUp</link>
        </seealso>
      </element>
      <element name="TLazDockForm.MouseDown">
        <short>
          <var>MouseDown</var> - performs inherited MouseDpwn, then finds position and appropriate header</short>
        <seealso>
          <link id="#LCL.Controls.TControl.MouseDown">TControl.MouseDown</link>
        </seealso>
      </element>
      <element name="TLazDockForm.MouseMove">
        <short>
          <var>MouseMove</var> - performs inherited Mousemove, then finds position and appropriate header</short>
        <seealso>
          <link id="#LCL.Controls.TControl.MouseMove">TControl.MouseMove</link>
        </seealso>
      </element>
      <element name="TLazDockForm.MouseLeave">
        <short>
          <var>MouseLeave</var> - performs inherited MouseLeave, and sets the local store of position to indicate absence of the mouse</short>
        <seealso>
          <link id="#LCL.Controls.TControl.MouseLeave">TControl.MouseLeave</link>
        </seealso>
      </element>
      <element name="TLazDockForm.PaintWindow">
        <short>
          <var>PaintWindow</var> - calls inherited PaintWindow, then creates new canvas and handle at cursor position, inserts header caption, title and images</short>
        <seealso>
          <link id="#LCL.Controls.TCustomControl.PaintWindow">TCustomControl.PaintWindow</link>
        </seealso>
      </element>
      <element name="TLazDockForm.TrackMouse">
        <short>
          <var>TrackMouse</var> - finds position of the mouse, which part of the control it occupies (whether header or main part of control), and state of buttons</short>
      </element>
      <element name="TLazDockForm.Create">
        <short>
          <var>Create</var> - constructor for <var>TLazDocForm</var>: calls inherited Create, then fills in the header</short>
        <seealso>
          <link id="#LCL.Forms.TCustomForm.Create">TCustomForm.Create</link>
        </seealso>
      </element>
      <element name="TLazDockForm.Destroy">
        <short>
          <var>Destroy</var> - destructor for <var>TLazDockForm</var>: removes header then calls inherited Destroy</short>
        <seealso>
          <link id="#LCL.Forms.TCustomForm.Destroy">TCustomForm.Destroy</link>
        </seealso>
      </element>
      <element name="TLazDockForm.CloseQuery">
        <short>
          <var>CloseQuery</var> - calls inherited method, then asks all top level forms if form can close</short>
        <seealso>
          <link id="#LCL.Forms.TCustomForm.CloseQuery">TCustomForm.CloseQuery</link>
        </seealso>
      </element>
      <element name="TLazDockForm.UpdateCaption">
        <short>
          <var>UpdateCaption</var> - brings caption up-to-date if there have been changes</short>
      </element>
      <element name="TLazDockForm.UpdateMainControlInParents">
        <short>
          <var>UpdateMainControlInParents</var> - make sure all parents recognise the presence of MainControl</short>
      </element>
      <element name="TLazDockForm.FindMainControlCandidate">
        <short>
          <var>FindMainControlCandidate</var> - finds forms and controls in the docktree heirarchy that could act as the MainControl</short>
      </element>
      <element name="TLazDockForm.FindHeader">
        <short>
          <var>FindHeader</var> - identifies the part of the dock form that is the header, and returns a TControl</short>
      </element>
      <element name="TLazDockForm.InsertControl">
        <short>
          <var>InsertControl</var> - calls inherited method then updates the main control</short>
        <seealso>
          <link id="#LCL.Controls.TWinControl.InsertControl">TWinControl.InsertControl</link>
        </seealso>
      </element>
      <element name="TLazDockForm.IsDockedControl">
        <short>
          <var>IsDockedControl</var> - checks if control is a child, not a TLazDockSplitter and properly anchor docked; returns True if OK</short>
      </element>
      <element name="TLazDockForm.ControlHasTitle">
        <short>
          <var>ControlHasTitle</var> - returns True if nominated control is visible, is a docked control and has a border spacing greter than zero</short>
      </element>
      <element name="TLazDockForm.GetTitleRect">
        <short>
          <var>GetTitleRect</var> - returns the coordinates of the title retangle for the nominated control</short>
      </element>
      <element name="TLazDockForm.GetTitleOrientation">
        <short>
          <var>GetTitleOrientation</var> - retrns the orientation (horizozntal or vertical) of the title in the nominated control</short>
      </element>
      <element name="TLazDockForm.MainControl">
        <short>The identity of the <var>MainControl</var> in the docked form (used for the default caption)</short>
      </element>
      <element name="TLazDockPage.InsertControl">
        <short>
          <var>InsertControl</var> - calls inherited method, then ensures that all parents recognise the <var>MainControl</var>
        </short>
        <seealso>
          <link id="#LCL.Controls.TWinControl.InsertControl">TWinControl.InsertControl</link>
        </seealso>
      </element>
      <element name="TLazDockPages.GetFloatingDockSiteClass">
        <short>
          <var>GetFloatingDockSiteClass</var> - returns a default class of <var>TLazDockForm</var>, overriding the inherited value</short>
        <seealso>
          <link id="#LCL.Controls.TControl.GetFloatingDockSiteClass">TControl.GetFloatingDockSiteClass</link>
        </seealso>
      </element>
      <element name="TLazDockPages.Change">
        <short>
          <var>Change</var> - calls inherited method, then ensures that all parents recognise MainControl</short>
        <seealso>
          <link id="#LCL.ComCtrls.TCustomTabControl.Change">TCustomTabControl.Change</link>
        </seealso>
      </element>
      <element name="TLazDockSplitter.Create">
        <short>
          <var>Create</var> - constructor for <var>TLazDockSplitter</var>: calls inherited <var>Create</var> and initialises minimum size</short>
        <seealso>
          <link id="#LCL.ExtCtrls.TCustomSplitter.Create">TCustomSplitter.Create</link>
        </seealso>
      </element>
      <element name="TLazDockOwnerComponent">
        <short>
          <var>TLazDockOwnerComponent</var> - A <var>TComponent</var> owning all automatically created controls of a <var>TCustomAnchoredDockManager</var>, like <var>TLazDockForm</var>
        </short>
      </element>
      <element name="TLazDockOwnerComponent.Manager">
        <short>
          <var>Manager</var> - the <var>TCustomAnchoredDockManager</var> for this Owner</short>
      </element>
      <element name="TCustomAnchoredDockManager">
        <short>
          <var>TCustomAnchoredDockManager</var> - implements an LCL <var>TDockManager</var> via anchoring</short>
        <descr>
          <p>
            <var>TCustomAnchoredDockManager</var> - implements an LCL <var>TDockManager</var> via anchoring</p>
          <pre>It implements docking, undocking, enlarging, shrinking.

    The TCustomLazDockingManager component in LDockCtrl uses this
    docking manager and extends it by layouts that can be stored/restored.</pre>
        </descr>
      </element>
      <element name="TCustomAnchoredDockManager.FOwnerComponent">
        <short>
          <var>FOwnerComponent</var> - local variable to hold the <var>TLazDockOwnerComponent</var> for this manager</short>
      </element>
      <element name="TCustomAnchoredDockManager.DeleteSideSplitter">
        <short>
          <var>DeleteSideSplitter</var> - removes a side splitter to make way for a <var>NewAnchorControl</var> with its anchors</short>
      </element>
      <element name="TCustomAnchoredDockManager.CombineSpiralSplitterPair">
        <short>
          <var>CombineSpiralSplitterPair</var> - cleans up alignment of two adjacent splitters when they don't line up properly</short>
        <descr>
          <p>
            <var>CombineSpiralSplitterPair</var> - cleans up alignment of two adjacent splitters when they don't line up properly</p>
          <pre>{  - Anchor all controls anchored to Splitter2 to Splitter1
   - extend Splitter1
   - delete Splitter2

   Example:

   Four spiral splitters:

     Before:
              |
           A  |
     ---------|
       | +--+ |  C
     B | |  | |
       | +--+ |
       | ----------
       |   D

     The left and right splitter will be combined to one.

     After:
              |
           A  |
       -------|
              |  C
            B |
              |
              |------
              |   D
  }</pre>
        </descr>
      </element>
      <element name="TCustomAnchoredDockManager.DeletePage">
        <short>
          <var>DeletePage</var> - removes the specified page from the notebook</short>
      </element>
      <element name="TCustomAnchoredDockManager.DeletePages">
        <short>
          <var>DeletePages</var> - removes the specified group of pages (notebook) from the Dock Form</short>
      </element>
      <element name="TCustomAnchoredDockManager.DeleteDockForm">
        <short>
          <var>DeleteDockForm</var> - removes the specified dock form</short>
      </element>
      <element name="TCustomAnchoredDockManager.GetAnchorDepth">
        <short>
          <var>GetAnchorDepth</var> - returns the number of levels of anchoring associated with the given side of the nominated control</short>
      </element>
      <element name="TCustomAnchoredDockManager.GetPreferredTitlePosition">
        <short>
          <var>GetPreferredTitlePosition</var> - returns the most favourable place (top or left side) to put the title of a dock component, given the width and height</short>
      </element>
      <element name="TCustomAnchoredDockManager.Create">
        <seealso>
          <link id="#rtl.System.TObject.Create">TObject.Create</link>
        </seealso>
        <short>
          <var>Create</var> - constructor for <var>TCustomAnchoredDockManager</var>: creates the owner component and initialises splitter size, title height and width</short>
      </element>
      <element name="TCustomAnchoredDockManager.Destroy">
        <short>
          <var>Destroy</var> - destructor for <var>TCustomAnchoredDockManager</var>: frees and annuls the owner component the calls inherited <var>Destroy</var>
        </short>
        <seealso>
          <link id="#rtl.Classes.TPersistent.Destroy">TPersistent.Destroy</link>
        </seealso>
      </element>
      <element name="TCustomAnchoredDockManager.BeginUpdate">
        <short>
          <var>BeginUpdate</var> - starts the update process by incrementing the update count</short>
        <seealso>
          <link id="#LCL.Controls.TDockManager.BeginUpdate">TDockManager.BeginUpdate</link>
        </seealso>
      </element>
      <element name="TCustomAnchoredDockManager.EndUpdate">
        <short>
          <var>EndUpdate</var> - ends update process by decreenting the update count</short>
        <errors>If Update count is zero or less, raises and exception</errors>
      </element>
      <element name="TCustomAnchoredDockManager.GetControlBounds">
        <short>
          <var>GetControlBounds</var> - finds the bounding rectangle of the specified control</short>
        <seealso>
          <link id="#LCL.Controls.TDockManager.GetControlBounds">TDockManager.GetControlBounds</link>
        </seealso>
      </element>
      <element name="TCustomAnchoredDockManager.DisableLayout">
        <short>
          <var>DisableLayout</var> - placeholder for a virtual procedure to disable the layout of the specified control</short>
      </element>
      <element name="TCustomAnchoredDockManager.EnableLayout">
        <short>
          <var>EnableLayout</var> - placeholder for a virtual procedure to enable the layout of the specified control</short>
      </element>
      <element name="TCustomAnchoredDockManager.DockControl">
        <short>
          <var>DockControl</var> - docks the specified control with the Drop Control, using the alignment rule specified by <var>InsertAt</var>
        </short>
      </element>
      <element name="TCustomAnchoredDockManager.UndockControl">
        <short>
          <var>UndockControl</var> - removes a control from a docking form. It breaks all anchors and cleans up.</short>
        <descr>
          <p>
            <var>UndockControl</var> - removes a control from a docking form.</p>
          <pre>It breaks all anchors and cleans up.

  The created gap will be tried to fill up.
  It removes TLazDockSplitter, TLazDockPage and TLazDockPages if they are no
  longer needed.                                

 Examples:

  Search Order:

  1. A TLazDockSplitter dividing only two controls:

     Before:
     |-------------
     | +--+ | +---
     | |  | | | B
     | +--+ | +---
     |-------------

     The splitter will be deleted and the right control will be anchored to the
     left.

     After:
     |-------------
     | +---
     | | B
     | +---
     |-------------


  2. Four spiral splitters:

     Before:
              |
           A  |
     ---------|
       | +--+ |  C
     B | |  | |
       | +--+ |
       | ----------
       |   D

     The left and right splitter will be combined to one.

     After:
              |
           A  |
       -------|
              |  C
            B |
              |
              |------
              |   D


  3. No TLazDockSplitter. Control is the only child of a TLazDockPage
     In this case the page will be deleted.
     If the TLazDockPages has no children left, it is recursively undocked.

  4. No TLazDockSplitter, Control is the only child of a TLazDockForm.
     The TLazDockForm is deleted and the Control is floated.
     This normally means: A form will simply be placed on the desktop, other
     controls will be docked into their DockSite.

  5. Otherwise: this control was not docked.</pre>
        </descr>
        <errors>Raises an exception if the control is already undocked</errors>
      </element>
      <element name="TCustomAnchoredDockManager.InsertControl">
        <short>
          <var>InsertControl</var> - calls DockControl to perform insertion</short>
        <seealso>
          <link id="#lcl.LDockTree.TCustomAnchoredDockManager.DockControl">TCustomAnchoredDockManager.DockControl</link>
          <link id="#LCL.Controls.TDockManager.InsertControl">TDockManager.InsertControl</link>
        </seealso>
      </element>
      <element name="TCustomAnchoredDockManager.EnlargeControl">
        <short>
          <var>EnlargeControl</var> - attempts to increase the size of the given control along the specified border, if necessary at the expense of neighbouring controls. If Simulate=true then it will only test if control can be enlarged.</short>
      </element>
      <element name="TCustomAnchoredDockManager.RemoveControl">
        <short>
          <var>RemoveControl</var> - calls <var>UndockControl</var> to remove the specified control from the docking heirarchy</short>
        <seealso>
          <link id="#lcl.LDockTree.TCustomAnchoredDockManager.UndockControl">TCustomAnchoredDockManager.UndockControl</link>
          <link id="#LCL.Controls.TDockManager.RemoveControl">TDockManager.RemoveControl</link>
        </seealso>
      </element>
      <element name="TCustomAnchoredDockManager.ReplaceAnchoredControl">
        <short>
          <var>ReplaceAnchoredControl</var> - takes away <var>OldControl</var>, puts <var>NewControl</var> in its place, re-establishing all the docking, anchors and alignments</short>
      </element>
      <element name="TCustomAnchoredDockManager.GetSplitterWidth">
        <short>
          <var>GetSplitterWidth</var> - returns the value of the width of the splitter needed to control this docking process</short>
      </element>
      <element name="TCustomAnchoredDockManager.GetSplitterHeight">
        <short>
          <var>GetSplitterHeight</var> - returns the value of the height of the splitter needed to control this docking process<var>GetSplitterHeight</var> -</short>
      </element>
      <element name="TCustomAnchoredDockManager.SplitterSize">
        <short>
          <var>SplitterSize</var> - the size of splitter required for this docking process</short>
      </element>
      <element name="TCustomAnchoredDockManager.TitleWidth">
        <short>
          <var>TitleWidth</var> - the width of the title for this docking control</short>
      </element>
      <element name="TCustomAnchoredDockManager.TitleHeight">
        <short>
          <var>TitleHeight</var> - the height of the title for this docking cotrol</short>
      </element>
      <element name="TCustomAnchoredDockManager.UpdateTitlePosition">
        <short>
          <var>UpdateTitlePosition</var> - brings title position up to date, reflecting any pending changes</short>
      </element>
      <element name="TCustomAnchoredDockManager.PaintSite">
        <short>
          <var>PaintSite</var> - (drawing of titles is is actually done by <var>TLazDockForm</var>)</short>
        <seealso>
          <link id="#LCL.LDockTree.TLazDockForm.PaintWindow">TLazDockForm.PaintWindow</link>
          <link id="#LCL.Controls.TDockManager.PaintSite">TDockManager.PaintSite</link>
        </seealso>
      </element>
      <element name="TCustomAnchoredDockManager.MessageHandler">
        <short>
          <var>MessageHandler</var> - not implemented</short>
      </element>
      <element name="TCustomAnchoredDockManager.PositionDockRect">
        <short>
          <var>PositionDockRect</var> - not implemented</short>
      </element>
      <element name="TCustomAnchoredDockManager.ResetBounds">
        <short>
          <var>ResetBounds</var> - not implemented</short>
      </element>
      <element name="TCustomAnchoredDockManager.SetReplacingControl">
        <short>
          <var>SetReplacingControl</var> - not implemented</short>
      </element>
      <element name="TCustomAnchoredDockManager.LoadFromStream">
        <short>
          <var>LoadFromStream</var> - not implemented</short>
      </element>
      <element name="TCustomAnchoredDockManager.SaveToStream">
        <short>
          <var>SaveToStream</var> - not implemented</short>
      </element>
      <element name="TCustomAnchoredDockManager.AutoFreeByControl">
        <short>
          <var>AutoFreeByControl</var> - always returns False, overriding inherited value</short>
        <seealso>
          <link id="#LCL.Controls.TDockManager.AutoFreeByControl">TDockManager.AutoFreeByControl</link>
        </seealso>
      </element>
      <element name="TCustomAnchoredDockManager.CreateForm">
        <short>
          <var>CreateForm</var> - makes a form and sets up the dock manager</short>
      </element>
    </module>
    <!-- LDockTree -->
  </package>
</fpdoc-descriptions>
