[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] |
[Properties (by Name)] [Methods (by Name)] [Events (by Name)]
TDockTree - A tree of dock zones - every docked window has one tree
Source position: controls.pp line 2134
type TDockTree = class(TDockManager) |
||
protected |
||
|
||
function HitTest(); virtual; |
|
HitTest - performs a Hit test at the specified mouse position, and returns the Control present there |
procedure PaintDockFrame(); virtual; |
|
PaintDockFrame - paints the nominated control's canvas at the specified position |
procedure UpdateAll; |
|
UpdateAll - bring all data up to date |
procedure SetDockZoneClass(); |
|
SetDockZoneClass - specifies the class of dock zone |
public |
||
constructor Create(); virtual; |
|
Create - constructor for TDockTree: sets up the DockSite, performs inherited Create and sets default BorderWidth, creates the RootZone for the Tree |
destructor Destroy; override; |
|
Destroy - destructor for TDockTree: deletes the RootZone then performs inherited Destroy |
procedure BeginUpdate; override; |
|
BeginUpdate - start updating the dock process |
procedure EndUpdate; override; |
|
EndUpdate - finish updating the dock process |
procedure AdjustDockRect(); virtual; |
|
AdjustDockRect - adjust the position of the docking rectangle for the nominated control |
procedure GetControlBounds(); override; |
|
GetControlBounds - finds the bounds of the control for docking |
procedure InsertControl(); override; |
|
InsertControl - insert the specified DropCtl into the nominated Control, using the alignment specified by InsertAt |
procedure LoadFromStream(); override; |
|
LoadFromStream - loads object for docking from a stream |
procedure MessageHandler(); override; |
||
procedure PositionDockRect(); override; |
|
PositionDockRect method for determining the position ( DockRect) where the DropCtl is to be placed on the Client, aligned according to DropAlign |
procedure RemoveControl(); override; |
|
RemoveControl - delete the specified control |
procedure SaveToStream(); override; |
|
SaveToStream - saves the docking object to a stream |
procedure SetReplacingControl(); override; |
|
SetReplacingControl - specify the control for replacing |
procedure ResetBounds(); override; |
|
ResetBounds to their default values |
procedure PaintSite(); override; |
|
PaintSite - a handle for the site to be painted |
procedure DumpLayout(); virtual; |
|
DumpLayout - stores layout in a file |
property DockZoneClass: TDockZoneClass; [r] |
|
DockZoneClass - the class of dock zone |
property DockSite: TWinControl; [rw] |
|
DockSite - the site for docking |
|
RootZone - the zone that forms the root of the current Dock Tree |
|
end; |
|
TDockTree - A tree of dock zones - every docked window has one tree |
|
| | ||
|
A base class for managing the docking process |
|
| | ||
TPersistent |
||
? | ||
TObject |
TDockTree - a tree of TDockZones - Every docked window has one tree This is an abstract class. The real implementation is in ldocktree.pas. Docking means here: Combining several windows to one. A window can here be a TCustomForm or a floating control (undocked) or a TDockForm. A window can be docked to another to the left, right, top, bottom or "into". The docking source window will be resized, to fit to the docking target window. Example1: Docking "A" (source window) left to "B" (target window) +---+ +----+ | A | -> | B | +---+ | | +----+ Result: A new docktree will be created. Height of "A" will be resized to the height of "B". A splitter will be inserted between "A" and "B". And all three are children of the newly created TLazDockForm of the newly created TDockTree. +------------+ |+---+|+----+| || A ||| B || || ||| || |+---+|+----+| +------------+ If "A" or "B" were floating controls, the floating dock sites are freed. If "A" or "B" were forms, their decorations (title bars and borders) are replaced by docked decorations. If "A" had a TDockTree, it is freed and its child dockzones are merged to the docktree of "B". Analog for docking "C" left to "A": +------------------+ |+---+|+---+|+----+| || C ||| A ||| B || || ||| ||| || |+---+|+---+|+----+| +------------------+ Example2: Docking A into B +-----+ +---+ | | | A | ---+-> B | +---+ | | +-----+ Result: A new docktree will be created. "A" will be resized to the size of "B". Both will be put into a TLazDockPages control which is the child of the newly created TDockTree. +-------+ |[B][A] | |+-----+| || || || A || || || |+-----+| +-------+ Every DockZone has siblings and children. Siblings can either be - horizontally (left to right, splitter), - vertically (top to bottom, splitter) - or upon each other (as pages, left to right). InsertControl - undock control and dock it into the manager. For example dock Form1 left to a Form2: InsertControl(Form1,alLeft,Form2); To dock "into", into a TDockPage, use Align=alNone. PositionDockRect - calculates where a control would be placed, if it would be docked via InsertControl. RemoveControl - removes a control from the dock manager. GetControlBounds - TODO for Delphi compatibility ResetBounds - TODO for Delphi compatibility SetReplacingControl - TODO for Delphi compatibility PaintSite - TODO for Delphi compatibility
|
A base class for managing the docking process |