fpc/docs/mouseex/logmouse.pp
2001-10-15 22:02:53 +00:00

116 lines
2.2 KiB
ObjectPascal

unit logmouse;
interface
Procedure StartMouseLogging;
Procedure StopMouseLogging;
Function IsMouseLogging : Boolean;
Procedure SetMouseLogFileName(FileName : String);
implementation
uses sysutils,Mouse;
var
NewMouseDriver,
OldMouseDriver : TMouseDriver;
Active,Logging : Boolean;
LogFileName : String;
MouseLog : Text;
Function TimeStamp : String;
begin
TimeStamp:=FormatDateTime('hh:nn:ss',Time());
end;
Procedure StartMouseLogging;
begin
Logging:=True;
Writeln(MouseLog,'Start logging mouse events at: ',TimeStamp);
end;
Procedure StopMouseLogging;
begin
Writeln(MouseLog,'Stop logging mouse events at: ',TimeStamp);
Logging:=False;
end;
Function IsMouseLogging : Boolean;
begin
IsMouseLogging:=Logging;
end;
Procedure LogGetMouseEvent(Var Event : TMouseEvent);
Var
M : TMouseEvent;
begin
OldMouseDriver.GetMouseEvent(M);
If Logging then
begin
Write(MouseLog,TimeStamp,': Mouse ');
With M do
begin
Case Action of
MouseActionDown : Write(MouseLog,'down');
MouseActionUp : Write(MouseLog,'up');
MouseActionMove : Write(MouseLog,'move');
end;
Write(MouseLog,' event at ',X,',',Y);
If (Buttons<>0) then
begin
Write(MouseLog,' for buttons: ');
If (Buttons and MouseLeftbutton)<>0 then
Write(MouseLog,'Left ');
If (Buttons and MouseRightbutton)<>0 then
Write(MouseLog,'Right ');
If (Buttons and MouseMiddlebutton)<>0 then
Write(MouseLog,'Middle ');
end;
Writeln(MouseLog);
end;
end;
end;
Procedure LogInitMouse;
begin
OldMouseDriver.InitDriver();
Assign(MouseLog,logFileName);
Rewrite(MouseLog);
Active:=True;
StartMouseLogging;
end;
Procedure LogDoneMouse;
begin
StopMouseLogging;
Close(MouseLog);
Active:=False;
OldMouseDriver.DoneDriver();
end;
Procedure SetMouseLogFileName(FileName : String);
begin
If Not Active then
LogFileName:=FileName;
end;
Initialization
GetMouseDriver(OldMouseDriver);
NewMouseDriver:=OldMouseDriver;
NewMouseDriver.GetMouseEvent:=@LogGetMouseEvent;
NewMouseDriver.InitDriver:=@LogInitMouse;
NewMouseDriver.DoneDriver:=@LogDoneMouse;
LogFileName:='Mouse.log';
Logging:=False;
SetMouseDriver(NewMouseDriver);
end.