mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-07 11:18:22 +02:00
LCL: ChildSizing, fix computation of MaxWidth/Heigh for cells
This commit is contained in:
parent
3caf5b699b
commit
65809d7515
@ -1653,10 +1653,13 @@ var
|
||||
CurChild: TAutoSizeBox;
|
||||
CurBorder: integer;
|
||||
LastChild: TAutoSizeBox;
|
||||
HasChildWithoutMax: array [TAutoSizeBoxOrientation] of Boolean;
|
||||
begin
|
||||
if DoInit then InitSums;
|
||||
Orthogonal:=SizeBoxOrthogonal[Orientation];
|
||||
if ChildCount[Orientation]>0 then begin
|
||||
HasChildWithoutMax[asboHorizontal] := False;
|
||||
HasChildWithoutMax[asboVertical] := False;
|
||||
for i:=0 to ChildCount[Orientation]-1 do begin
|
||||
CurChild:=Children[Orientation][i];
|
||||
|
||||
@ -1671,22 +1674,28 @@ begin
|
||||
inc(MinimumSize[Orientation],CurBorder);
|
||||
inc(PreferredSize[Orientation],CurBorder);
|
||||
// add item size in Orientation
|
||||
if MaximumSize[Orientation]>0 then begin
|
||||
if CurChild.MaximumSize[Orientation]>0 then
|
||||
inc(MaximumSize[Orientation],CurChild.MaximumSize[Orientation])
|
||||
else
|
||||
if not HasChildWithoutMax[Orientation] then begin
|
||||
if CurChild.MaximumSize[Orientation]>0 then begin
|
||||
inc(MaximumSize[Orientation],CurChild.MaximumSize[Orientation]);
|
||||
end
|
||||
else begin
|
||||
MaximumSize[Orientation]:=0;
|
||||
HasChildWithoutMax[Orientation] := True;
|
||||
end;
|
||||
end;
|
||||
inc(MinimumSize[Orientation],CurChild.MinimumSize[Orientation]);
|
||||
inc(PreferredSize[Orientation],CurChild.PreferredSize[Orientation]);
|
||||
|
||||
// maximize in Orthogonal
|
||||
if MaximumSize[Orthogonal]>0 then begin
|
||||
if CurChild.MaximumSize[Orthogonal]>0 then
|
||||
if not HasChildWithoutMax[Orthogonal] then begin
|
||||
if CurChild.MaximumSize[Orthogonal]>0 then begin
|
||||
MaximumSize[Orthogonal]:=Max(MaximumSize[Orthogonal],
|
||||
CurChild.MaximumSize[Orthogonal])
|
||||
else
|
||||
CurChild.MaximumSize[Orthogonal]);
|
||||
end
|
||||
else begin
|
||||
MaximumSize[Orthogonal]:=0;
|
||||
HasChildWithoutMax[Orthogonal] := True;
|
||||
end;
|
||||
end;
|
||||
MinimumSize[Orthogonal]:=Max(MinimumSize[Orthogonal],
|
||||
CurChild.MinimumSize[Orthogonal]);
|
||||
|
Loading…
Reference in New Issue
Block a user