From c476c440bcf28e853d86af2641a78ba9130758ba Mon Sep 17 00:00:00 2001
From: Maxim Ganetsky <maxim@lazarus-ide.org>
Date: Sat, 10 Aug 2024 01:07:19 +0300
Subject: [PATCH] IDE: improved layout of dependency properties part in project
 and package inspector dialogs, patch by Don Siders, issue #41066

---
 packager/projpackfilepropgui.pas | 41 ++++++++++++++------------------
 1 file changed, 18 insertions(+), 23 deletions(-)

diff --git a/packager/projpackfilepropgui.pas b/packager/projpackfilepropgui.pas
index eef1692b13..12514b374d 100644
--- a/packager/projpackfilepropgui.pas
+++ b/packager/projpackfilepropgui.pas
@@ -276,61 +276,56 @@ begin
   // ---------------------
   MinVersionEdit := TEdit.Create(fOwner);
   MinVersionEdit.Parent := fOwner;
-  MinVersionEdit.AnchorSideLeft.Side := asrBottom;
-  MinVersionEdit.Left := 201;
-  MinVersionEdit.Top := 0;
+  MinVersionEdit.Left := 200;
+  MinVersionEdit.Top := 4;
   MinVersionEdit.Width := 100;
-  MinVersionEdit.BorderSpacing.Left := 10;
+  MinVersionEdit.BorderSpacing.Left := 6;
   MinVersionEdit.TabOrder := 3;
   MinVersionEdit.OnChange := @MinMaxVersionEditChange;
 
   UseMinVersionCheckBox := TCheckBox.Create(fOwner);
   UseMinVersionCheckBox.Parent := fOwner;
+  UseMinVersionCheckBox.Left := 6;
   UseMinVersionCheckBox.AnchorSideTop.Control := MinVersionEdit;
   UseMinVersionCheckBox.AnchorSideTop.Side := asrCenter;
-  UseMinVersionCheckBox.Left := 6;
-  UseMinVersionCheckBox.Top := 6;
-  UseMinVersionCheckBox.Width := 179;
   UseMinVersionCheckBox.TabOrder := 2;
   UseMinVersionCheckBox.Caption := lisPckEditMinimumVersion;
   UseMinVersionCheckBox.OnChange := @UseMinVersionCheckBoxChange;
 
-  MinVersionEdit.AnchorSideLeft.Control := UseMinVersionCheckBox;
-
   MaxVersionEdit := TEdit.Create(fOwner);
   MaxVersionEdit.Parent := fOwner;
-  MaxVersionEdit.AnchorSideLeft.Side := asrBottom;
-  MaxVersionEdit.AnchorSideTop.Control := MinVersionEdit;
-  MaxVersionEdit.AnchorSideTop.Side := asrBottom;
-  MaxVersionEdit.Left := 204;
-  MaxVersionEdit.Top := 38;
   MaxVersionEdit.Width := 100;
-  MaxVersionEdit.BorderSpacing.Left := 10;
-  MaxVersionEdit.BorderSpacing.Top := 2;
+  MaxVersionEdit.BorderSpacing.Top := 4;
+  MaxVersionEdit.AnchorSideTop.Side := asrBottom;
+  MaxVersionEdit.AnchorSideTop.Control := MinVersionEdit;
+  MaxVersionEdit.AnchorSideLeft.Side := asrLeft;
+  MaxVersionEdit.AnchorSideLeft.Control := MinVersionEdit;
   MaxVersionEdit.TabOrder := 5;
   MaxVersionEdit.OnChange := @MinMaxVersionEditChange;
 
   UseMaxVersionCheckBox := TCheckBox.Create(fOwner);
   UseMaxVersionCheckBox.Parent := fOwner;
+  UseMaxVersionCheckBox.Left := 6;
   UseMaxVersionCheckBox.AnchorSideTop.Control := MaxVersionEdit;
   UseMaxVersionCheckBox.AnchorSideTop.Side := asrCenter;
-  UseMaxVersionCheckBox.Left := 6;
-  UseMaxVersionCheckBox.Top := 43;
-  UseMaxVersionCheckBox.Width := 182;
   UseMaxVersionCheckBox.TabOrder := 4;
   UseMaxVersionCheckBox.Caption := lisPckEditMaximumVersion;
   UseMaxVersionCheckBox.OnChange := @UseMaxVersionCheckBoxChange;
 
-  MaxVersionEdit.AnchorSideLeft.Control := UseMaxVersionCheckBox;
+  // anchor edit controls to the right edge of the longest check box caption
+  if Length(UseMinVersionCheckBox.Caption) > Length(UseMaxVersionCheckBox.Caption) then
+    MinVersionEdit.AnchorSideLeft.Control := UseMinVersionCheckBox
+  else
+    MinVersionEdit.AnchorSideLeft.Control := UseMaxVersionCheckBox;
+  MinVersionEdit.AnchorSideLeft.Side := asrRight;
 
   ApplyDependencyButton := TButton.Create(fOwner);
   ApplyDependencyButton.Parent := fOwner;
-  ApplyDependencyButton.AnchorSideTop.Control := MaxVersionEdit;
-  ApplyDependencyButton.AnchorSideTop.Side := asrBottom;
   ApplyDependencyButton.Left := 6;
-  ApplyDependencyButton.Top := 80;
   ApplyDependencyButton.AutoSize := True;
   ApplyDependencyButton.BorderSpacing.Top := 6;
+  ApplyDependencyButton.AnchorSideTop.Control := MaxVersionEdit;
+  ApplyDependencyButton.AnchorSideTop.Side := asrBottom;
   ApplyDependencyButton.TabOrder := 6;
   ApplyDependencyButton.Caption := lisPckEditApplyChanges;
 end;