mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 05:19:37 +02:00
LCL: autosize: use for centered controls at least the preferred size
git-svn-id: trunk@20322 -
This commit is contained in:
parent
15e759fe74
commit
2acd7d65c3
@ -180,7 +180,7 @@ type
|
|||||||
property Childs[AControl: TControl]: TAutoSizeCtrlData read GetChilds; default;
|
property Childs[AControl: TControl]: TAutoSizeCtrlData read GetChilds; default;
|
||||||
procedure WriteDebugReport(const Title, Prefix: string);
|
procedure WriteDebugReport(const Title, Prefix: string);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
SizeBoxOrthogonal: array[TAutoSizeBoxOrientation] of TAutoSizeBoxOrientation
|
SizeBoxOrthogonal: array[TAutoSizeBoxOrientation] of TAutoSizeBoxOrientation
|
||||||
= (asboVertical,asboHorizontal);
|
= (asboVertical,asboHorizontal);
|
||||||
@ -567,8 +567,12 @@ type
|
|||||||
NewDist:=SiblingData.Sides[akRight].Distance[Direction]
|
NewDist:=SiblingData.Sides[akRight].Distance[Direction]
|
||||||
-(SiblingData.PreferredSize[asboHorizontal] div 2);
|
-(SiblingData.PreferredSize[asboHorizontal] div 2);
|
||||||
end;
|
end;
|
||||||
//DebugLn(['ComputePosition ',DbgSName(Child),' center to ',DbgSName(SiblingData.Control),' FoundSides=',dbgs(FoundSides),' NewDist=',NewDist]);
|
//DebugLn(['ComputePosition BEFORE ',DbgSName(Child),' center to ',DbgSName(SiblingData.Control),' Side=',dbgs(Side),' FoundSides=',dbgs(FoundSides),' NewDist=',NewDist,' Direction=',AutoSizeSideDistDirectionNames[Direction],' PreferredSize=',ChildData.PreferredSize[asboHorizontal]]);
|
||||||
dec(NewDist,ChildData.PreferredSize[asboHorizontal] div 2);
|
dec(NewDist,ChildData.PreferredSize[asboHorizontal] div 2);
|
||||||
|
// use at least the size of the child
|
||||||
|
if (Side=akLeft)=(Direction=assddRightBottom) then
|
||||||
|
NewDist:=Max(NewDist,ChildData.PreferredSize[asboHorizontal]);
|
||||||
|
//DebugLn(['ComputePosition AFTER ',DbgSName(Child),' center to ',DbgSName(SiblingData.Control),' Side=',dbgs(Side),' FoundSides=',dbgs(FoundSides),' NewDist=',NewDist,' Direction=',AutoSizeSideDistDirectionNames[Direction],' PreferredSize=',ChildData.PreferredSize[asboHorizontal]]);
|
||||||
end else begin
|
end else begin
|
||||||
if FoundSides=[akTop,akBottom] then begin
|
if FoundSides=[akTop,akBottom] then begin
|
||||||
NewDist:=((SiblingData.Sides[akTop].Distance[Direction]
|
NewDist:=((SiblingData.Sides[akTop].Distance[Direction]
|
||||||
@ -581,6 +585,9 @@ type
|
|||||||
-(SiblingData.PreferredSize[asboVertical] div 2);
|
-(SiblingData.PreferredSize[asboVertical] div 2);
|
||||||
end;
|
end;
|
||||||
dec(NewDist,ChildData.PreferredSize[asboVertical] div 2);
|
dec(NewDist,ChildData.PreferredSize[asboVertical] div 2);
|
||||||
|
// use at least the size of the child
|
||||||
|
if (Side=akTop)=(Direction=assddRightBottom) then
|
||||||
|
NewDist:=Max(NewDist,ChildData.PreferredSize[asboVertical]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
ChildData.Sides[Side].Distance[Direction]:=NewDist;
|
ChildData.Sides[Side].Distance[Direction]:=NewDist;
|
||||||
|
Loading…
Reference in New Issue
Block a user