fpc/ide/text/fpmtools.inc
pierre b4b1e80dff * Several things added (I cannot commit them independently !)
+ added TBreakpoint and TBreakpointCollection
  + added cmResetDebugger,cmGrep,CmToggleBreakpoint
  + Breakpoint list in INIFile
  * Select items now also depend of SwitchMode
  * Reading of option '-g' was not possible !
  + added search for -Fu args pathes in TryToOpen
  + added code for automatic opening of FileDialog
    if source not found
1999-02-04 13:32:00 +00:00

147 lines
4.2 KiB
PHP

{
$Id$
This file is part of the Free Pascal Integrated Development Environment
Copyright (c) 1998 by Berczi Gabor
Tools menu entries
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
procedure TIDEApp.Calculator;
begin
with CalcWindow^ do
begin
if GetState(sfVisible)=false then Show;
MakeFirst;
end;
end;
procedure TIDEApp.ExecuteTool(Idx: integer);
var Title,ProgramPath,Params: string;
W: word;
Err: integer;
begin
if (Idx<1) or (Idx>GetToolCount) then Exit;
GetToolParams(Idx-1,Title,ProgramPath,Params,W);
Err:=ParseToolParams(Params,false);
if Err=-1 then Exit;
if Err<>0 then
begin ErrorBox(^C'Error parsing tool params.',nil); Exit; end;
DoExecute(ProgramPath,Params,false);
if (DosError<>0) then
ErrorBox('Error executing tool '+KillTilde(GetToolName(Idx-1)),nil) else
if DosExitCode<>0 then
ErrorBox('Execution successful. Exit code '+IntToStr(DosExitCode),nil);
end;
procedure TIDEApp.Grep;
var PGrepDialog : PCenterDialog;
R,R2 : TRect;
IL : PInputLine;
p,lineNb : longint;
error : word;
GrepArgs,Line,ModuleName : String;
GrepOut : text;
Params : Array[0..4] of longint;
Const GrepOutName = 'grep$$.out';
{$ifdef linux}
GrepExeName = 'grep';
{$else linux}
GrepExeName = 'c:\djgpp\bin\grep.exe';
{$endif linux}
begin
R.Assign(0,0,45,6);
new(PGrepDialog,Init(R,'Grep arguments'));
with PGrepDialog^ do
begin
R2.A.Y:=R.A.Y+3;
R2.B.Y:=R2.A.Y+1;
R2.A.X:=R.A.X+3;
R2.B.X:=R.B.X-3;
New(IL, Init(R2, 128));
If Assigned(DeskTop^.First) and
(DeskTop^.First^.HelpCtx=hcSourceWindow) then
GrepArgs:=PSourceWindow(DeskTop^.First)^.Editor^.GetCurrentWord
else
GrepArgs:='';
GrepArgs:='-n -i '+GrepArgs+' *.pas *.pp *.inc';
IL^.Data^:=GrepArgs;
Insert(IL);
R2.Move(0,-1);
Insert(New(PLabel, Init(R2, '~G~rep arguments', IL)));
end;
InsertButtons(PGrepDialog);
if Desktop^.ExecView(PGrepDialog)=cmOK then
begin
GrepArgs:=IL^.Data^;
{ Linux ? }
if not ExecuteRedir(GrepExeName,GrepArgs,GrepOutName,'grep$$.err') then
Begin
{ 2 as exit code just means that
some file vwere not found ! }
if (IOStatus<>0) or (ExecuteResult<>2) then
begin
Params[0]:=IOStatus;
Params[1]:=ExecuteResult;
WarningBox(#3'Error running Grep'#13#3'DosError = %d'#13#3'Exit code = %d',@Params);
end;
End;
Assign(GrepOut,GrepOutName);
Reset(GrepOut);
While not eof(GrepOut) do
begin
readln(GrepOut,Line);
p:=pos(':',line);
if p>0 then
begin
ModuleName:=copy(Line,1,p-1);
Line:=Copy(Line,p+1,255);
p:=pos(':',Line);
val(copy(Line,1,p-1),lineNb,error);
if error=0 then
ProgramInfoWindow^.AddMessage(V_Normal,Copy(Line,p+1,255),
ModuleName,LineNb);
end;
ProgramInfoWindow^.Show;
ProgramInfoWindow^.MakeFirst;
end;
end;
Dispose(PGrepDialog, Done);
end;
{
$Log$
Revision 1.3 1999-02-04 13:32:09 pierre
* Several things added (I cannot commit them independently !)
+ added TBreakpoint and TBreakpointCollection
+ added cmResetDebugger,cmGrep,CmToggleBreakpoint
+ Breakpoint list in INIFile
* Select items now also depend of SwitchMode
* Reading of option '-g' was not possible !
+ added search for -Fu args pathes in TryToOpen
+ added code for automatic opening of FileDialog
if source not found
Revision 1.2 1999/01/21 11:54:21 peter
+ tools menu
+ speedsearch in symbolbrowser
* working run command
Revision 1.1 1998/12/22 14:27:54 peter
* moved
Revision 1.2 1998/12/22 10:39:49 peter
+ options are now written/read
+ find and replace routines
}