Larger Change Directory dialog for larger console/terminal dimensions

This commit is contained in:
Margers 2024-11-11 09:06:57 +00:00 committed by Michael Van Canneyt
parent 8d7a6cc778
commit 97b79b3d4e
3 changed files with 28 additions and 6 deletions

View File

@ -2064,12 +2064,14 @@ begin
R.Assign(3, 3, 30, 4);
DirInput := New(PInputLine, Init(R, FileNameLen+4));
DirInput^.GrowMode:=gfGrowHiX;
Insert(DirInput);
R.Assign(2, 2, 17, 3);
Control := New(PLabel, Init(R,slDirectoryName, DirInput));
Insert(Control);
R.Assign(30, 3, 33, 4);
Control := New(PHistory, Init(R, DirInput, HistoryId));
Control^.GrowMode:=gfGrowHiX or gfGrowLoX;
Insert(Control);
R.Assign(32, 6, 33, 16);
@ -2077,6 +2079,7 @@ begin
Insert(Control);
R.Assign(3, 6, 32, 16);
DirList := New(PDirListBox, Init(R, PScrollBar(Control)));
DirList^.GrowMode:=gfGrowHiX or gfGrowHiY;
Insert(DirList);
R.Assign(2, 5, 17, 6);
Control := New(PLabel, Init(R, slDirectoryTree, DirList));
@ -2084,13 +2087,17 @@ begin
R.Assign(35, 6, 45, 8);
OkButton := New(PButton, Init(R, slOk, cmOK, bfDefault));
OkButton^.GrowMode:=gfGrowHiX or gfGrowLoX;
Insert(OkButton);
Inc(R.A.Y,3); Inc(R.B.Y,3);
ChDirButton := New(PButton,Init(R,slChDir,cmChangeDir,
bfNormal));
ChDirButton^.GrowMode:=gfGrowHiX or gfGrowLoX;
Insert(ChDirButton);
Inc(R.A.Y,3); Inc(R.B.Y,3);
Insert(New(PButton, Init(R,slRevert, cmRevert, bfNormal)));
Control := New(PButton, Init(R,slRevert, cmRevert, bfNormal));
Control^.GrowMode:=gfGrowHiX or gfGrowLoX;
Insert(Control);
if AOptions and cdHelpButton <> 0 then
begin
//Inc(R.A.Y,3); Inc(R.B.Y,3);

View File

@ -325,11 +325,20 @@ end;
procedure TIDEApp.RunDir;
var
s : DirStr;
S,Dir : DirStr;
D : PFPChDirDialog;
begin
s:=GetRunDir;
SelectDir(s,hidRunDir);
SetRunDir(s);
{$push}{$I-}
GetDir(0,Dir);
{$pop}
S:=GetRunDir;
S:=FExpand(S);
New(D, Init(cdNormal, hidRunDir));
if ExecuteDialog(D,@S)= cmOk then
SetRunDir(S);
{$push}{$I-}
ChDir(Dir);
{$pop}
end;

View File

@ -398,7 +398,7 @@ type
end;
PFPChDirDialog = ^TFPChDirDialog;
TFPChDirDialog = object(TChDirDialog)
TFPChDirDialog = object(TEditChDirDialog)
constructor Init(AOptions: Word; HistoryId: Sw_Word);
end;
@ -4637,6 +4637,7 @@ begin
DirInput^.getData(S);
R.Assign(3, 3, 30, 4);
DInput := New(PEditorInputLine, Init(R, FileNameLen+4));
DInput^.GrowMode:=gfGrowHiX;
DInput^.SetData(S);
InsertBefore(DInput,DirInput); {insert before to preserv order as it was}
Delete(DirInput);
@ -4653,6 +4654,11 @@ begin
end;
Control:=Control^.Next;
end;
{resize}
if Desktop^.Size.Y > 26 then
GrowTo(Size.X,Desktop^.Size.Y-6);
if Desktop^.Size.X > 80 then
GrowTo(Min(Desktop^.Size.X-(80-Size.X),102),Size.Y);
{set focus on the new input line}
DirInput^.Focus;
end;