mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-28 15:20:49 +02:00
anchordocking: restore layout: fixed reset splitter
git-svn-id: trunk@46471 -
This commit is contained in:
parent
88153b6019
commit
576c5a487c
@ -508,7 +508,7 @@ type
|
|||||||
procedure MapTreeToControls(Tree: TAnchorDockLayoutTree);
|
procedure MapTreeToControls(Tree: TAnchorDockLayoutTree);
|
||||||
function RestoreLayout(Tree: TAnchorDockLayoutTree; Scale: boolean): boolean;
|
function RestoreLayout(Tree: TAnchorDockLayoutTree; Scale: boolean): boolean;
|
||||||
procedure EnableAllAutoSizing;
|
procedure EnableAllAutoSizing;
|
||||||
procedure ClearLayoutProperties(AControl: TControl);
|
procedure ClearLayoutProperties(AControl: TControl; NewAlign: TAlign = alClient);
|
||||||
procedure PopupMenuPopup(Sender: TObject);
|
procedure PopupMenuPopup(Sender: TObject);
|
||||||
procedure ChangeLockButtonClick(Sender: TObject);
|
procedure ChangeLockButtonClick(Sender: TObject);
|
||||||
procedure SetAllowDragging(AValue: boolean);
|
procedure SetAllowDragging(AValue: boolean);
|
||||||
@ -1796,14 +1796,19 @@ var
|
|||||||
Splitter.Parent:=Parent;
|
Splitter.Parent:=Parent;
|
||||||
NewBounds:=Node.BoundsRect;
|
NewBounds:=Node.BoundsRect;
|
||||||
if SrcRectValid(SrcWorkArea) then
|
if SrcRectValid(SrcWorkArea) then
|
||||||
NewBounds:=Bounds(ScaleChildX(NewBounds.Left),ScaleChildY(NewBounds.Top),
|
NewBounds:=Rect(ScaleChildX(NewBounds.Left),ScaleChildY(NewBounds.Top),
|
||||||
NewBounds.Right-NewBounds.Left,NewBounds.Bottom-NewBounds.Top);
|
ScaleChildX(NewBounds.Right),ScaleChildY(NewBounds.Bottom));
|
||||||
Splitter.DockRestoreBounds:=NewBounds;
|
Splitter.DockRestoreBounds:=NewBounds;
|
||||||
Splitter.BoundsRect:=NewBounds;
|
Splitter.BoundsRect:=NewBounds;
|
||||||
if Node.NodeType=adltnSplitterVertical then
|
if Node.NodeType=adltnSplitterVertical then begin
|
||||||
Splitter.ResizeAnchor:=akLeft
|
Splitter.ResizeAnchor:=akLeft;
|
||||||
else
|
Splitter.AnchorSide[akLeft].Control:=nil;
|
||||||
|
Splitter.AnchorSide[akRight].Control:=nil;
|
||||||
|
end else begin
|
||||||
Splitter.ResizeAnchor:=akTop;
|
Splitter.ResizeAnchor:=akTop;
|
||||||
|
Splitter.AnchorSide[akTop].Control:=nil;
|
||||||
|
Splitter.AnchorSide[akBottom].Control:=nil;
|
||||||
|
end;
|
||||||
Result:=Splitter;
|
Result:=Splitter;
|
||||||
end else if Node.NodeType=adltnLayout then begin
|
end else if Node.NodeType=adltnLayout then begin
|
||||||
// restore layout
|
// restore layout
|
||||||
@ -1834,8 +1839,11 @@ var
|
|||||||
and (Side in [akLeft,akRight]))
|
and (Side in [akLeft,akRight]))
|
||||||
then continue;
|
then continue;
|
||||||
AnchorControl:=nil;
|
AnchorControl:=nil;
|
||||||
if ChildNode.Anchors[Side]<>'' then
|
if ChildNode.Anchors[Side]<>'' then begin
|
||||||
AnchorControl:=fTreeNameToDocker[ChildNode.Anchors[Side]];
|
AnchorControl:=fTreeNameToDocker[ChildNode.Anchors[Side]];
|
||||||
|
if AnchorControl=nil then
|
||||||
|
debugln(['WARNING: TAnchorDockMaster.RestoreLayout.Restore: Node=',ChildNode.Name,' Anchor[',dbgs(Side),']=',ChildNode.Anchors[Side],' not found']);
|
||||||
|
end;
|
||||||
if AnchorControl<>nil then
|
if AnchorControl<>nil then
|
||||||
AControl.AnchorToNeighbour(Side,0,AnchorControl)
|
AControl.AnchorToNeighbour(Side,0,AnchorControl)
|
||||||
else
|
else
|
||||||
@ -1929,12 +1937,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockMaster.ClearLayoutProperties(AControl: TControl);
|
procedure TAnchorDockMaster.ClearLayoutProperties(AControl: TControl;
|
||||||
|
NewAlign: TAlign);
|
||||||
var
|
var
|
||||||
a: TAnchorKind;
|
a: TAnchorKind;
|
||||||
begin
|
begin
|
||||||
AControl.AutoSize:=false;
|
AControl.AutoSize:=false;
|
||||||
AControl.Align:=alClient;
|
AControl.Align:=NewAlign;
|
||||||
AControl.BorderSpacing.Around:=0;
|
AControl.BorderSpacing.Around:=0;
|
||||||
AControl.BorderSpacing.Left:=0;
|
AControl.BorderSpacing.Left:=0;
|
||||||
AControl.BorderSpacing.Top:=0;
|
AControl.BorderSpacing.Top:=0;
|
||||||
|
Loading…
Reference in New Issue
Block a user