mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 10:49:29 +02:00
Larger Change Directory dialog for larger console/terminal dimensions
This commit is contained in:
parent
8d7a6cc778
commit
97b79b3d4e
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user