This unit contains visual components for docking and streaming
TCustomLazControlDocker
- a component to connect a form to the TLazDockingManager

TCustomLazControlDocker - a component to connect a form to the TLazDockingManager

When the control gets visible TCustomLazControlDocker restores the layout.

Before the control gets invisible, TCustomLazControlDocker saves the layout

TCustomLazDockingManager
- base class for TLazDockingManager, a class for managing docking controls
Remove
- detaches any controls attached to the specified docker, then nullifies the docker
Add
- provided the specified Docker is of the correct type, sets up the control to use a docking manager and returns an integer pointer
Create
- constructor for TCustomLazDockingManager: calls inherited Create then sets up lists, managers and configurations
TComponent.Create
Destroy
- destructor for TCustomLazDockingManager: frees dockers, managers and configs, then calls inherited Destroy
TComponent.Destroy
FindDockerByName
- returns the identity of a Control Docker given the Docker name
CreateUniqueName
- returns a unique name given a string name
Manager
- the TAnchoredDockManager for the current class
DockerCount
- the number of dockers in the list
Dockers
- the indexed list of dockers
TLazDockingManager
- class of TCustomLazDockingManager
UpdatePopupMenu
- alters the popup menu to reflect changes
Loaded
- calls inherited method then calls UpdatePopupMenu
TComponent.Loaded
ShowDockingEditor
- makes a popup docking editor dialog appear
GetLocalizedName
- returns a string with the localised name for the docker
Create
- constructor for TCustomLazControlDocker: calls inherited Create then extends the popup menu
TComponent.Create
The Control that is to be docked
The docking Manager that is to be used to dock the current control
ExtendPopupMenu
- True if the popup menuis to be extended
PopupMenuItem
- an item in the popup menu
The LocalizedName of the current docker
DockerName
- the name of the current docker
TLazControlDocker
- a component to connect a form to the TLazDockingManager
TLazDockConfigNode
- a node to be configured in a docking control
Create
- constructor for a new node given a parent node and an optional name for the new node
Destroy
- destructor for TLazDocConfigNode: frees parents and children, the calls inherited Destroy
TPersistent.Destroy
Clear
- performs Free and Clear for all child nodes
Assign
- systematically copies sizes, anchors, titles and other details from Source to a new node.
Assign
- systematically copies sizes, anchors, titles and other details from Source to a new node. If Source is of the wrong type, calls inherited Assign, which usually raises an exception
TPersistent.Assign
FindByName
- searches through a tree of nodes to find one that matches the given name
IndexOf
- returns the index value of the given string in the list of child nodes
GetScreenBounds
- returns the bounds of the area occupied by the node, as screen coordinates
FindNeighbour
- returns the identity of the neighbouring node on the given side; optionally ignores splitters.
IsTheOnlyNeighbour
- returns True if the nominated node is the only neighbour on the specified side
SaveToConfig
- saves details of the configuration to a config file in the given Path
LoadFromConfig
- loads configuration details from a file in the given path
GetPath
- returns the path name for the configuration file relevant to the current node
WriteDebugReport
- produces a formatted report with details of the node for which debugging is needed
DebugLayoutAsString
- returns a string specifying the layout of the required debugging report
The Bounds of the current node
ClientBounds
- the bounds of the node's clients
The Parent of the current node
The Sides of the node to which anchoring is to be performed
ChildCount
- the number of child nodes
Childs
- the child nodes in an indexed list
TheType
of node (see definition of TLDConfigNodeType)
TLDConfigNodeType
The Name of the node
WindowState
- the state of the window in which the node is placed
TAnchoredDockManager
- a manager for anchored docking controls
DisableLayout
- disables layout specifically for the given control; calls inherited method
TCustomAnchoredDockManager.DisableLayout
EnableLayout
- enables layout specifically for the given control; calls inherited method
TCustomAnchoredDockManager.EnableLayout
Configs
- the configuration settings for the current control
TLazDockerConfig
- a class containing a tree of nodes for configuring a named docker
Create
- constructor for TLazDockerConfig: sets up local variables to hold the docker name and a root node
TObject.Create
Destroy
- destructor for TLazDockerConfig: removes the root then calls inherited Destroy
TObject.Destroy
WriteDebugReport
- produces a nicely formatted debugging report
DockerName
- the name of the Docker to be configured
The Root node of the configuration
FindControlByDockerName
- returns the identity of a control given its docker name
FindDockerByControl
- returns the identity of a Control Docker given its control identity
GetControlConfigName
- returns a config name for the nominated control
DisableLayout
- finds whether the docker control exists then disables its layout
EnableLayout
- finds whether the docker control exists then enables its layout
SaveToConfig
- saves details to a config storage file
LoadFromConfig
- loads details from a config storage file
AddOrReplaceConfig
adds a new docker config, or replace if it already exists
ClearConfigs
- free all the docking configurations
GetConfigWithDockerName
- returns the configuration detail for the named docker
CreateLayout
- returns a layout configuration node for the named docker
ConfigIsCompatible
- checks that the nominated root node has a compatible configuration
WriteDebugReport
- produces a formatted report of status for debugging
ConfigCount
- the number of configuration nodes
Configs
- the indexed list of config nodes
TLCDMenuItem
- an item in a Control Docker Menu
Menu
- a popup menu for this item
Item
- the actual contents of this menu item
ControlVisibleChanging
- debugging method to indicate if Visible state of the control is changing
CreateFormAndDockWithSplitter
- add a splitter to Side and dock to it. Returns True if successful

Add a splitter to Side and dock to it. For example:

    Side=akLeft
          --------+      -------------+
              ---+|      ---+#+------+|
               A ||       A |#|      ||
              ---+|      ---+#|      ||
              ====|  ->  ====#| Self ||
              ---+|      ---+#|      ||
               B ||       B |#|      ||
              ---+|      ---+#+------+|
          --------+      -------------+

If A has no parent, a TLazDockForm is created.

To get space for Self, either A,B are shrunk and/or the parent of A,B is enlarged (including the grand parents of A,B)

DockAsPage
- dock as a page as specified in Layout. Returns True if successful

DockAsPage - dock as a page as specified in Layout.

Requirements: Parent in Layout is a ldcntPage and a parent control exists.

FixControlBounds
- fix bounds after inserting AddedControl
ShrinkNeighbourhood
- shrink neighbour controls according to Layout
FindPageNeighbours
- returns a list of the neighbour controls for the docker
Notification
- calls inherited method, then performs specified operation depending on type of component, usually involving removal
TComponent.Notification
FindLCDMenuItem
- returns an item from the specified menu
Destroy
- destructor for TCustomLazControlDocker: calls inherited Destroy and removes all associated controls
TComponent.Destroy
GetLayoutFromControl
- returns a dock config node containing the control's layout
SaveLayout
- stores the layout, usually just before hiding a control or closing a form
RestoreLayout
from its stored location, when the control is unhidden or the form is re-loaded
DisableLayout
and increment the count of locked layouts
EnableLayout
and decrement the count of locked layouts
ControlIsDocked
- checks that the control and its parent actually exist and at least one of them is a dock form or a dock page
GetControlName
- returns the string name of the specified control
AddPopupMenu
- if the menu does not yet exist, creates the structure and menu items for a popup menu
RemovePopupMenu
- removes menu, usually during the process of removing the docking control
Enabled
- true if layout is to be automatically restored on show
LayoutLock
- the number of layouts that are locked