gtk1 intf: fixed debugging timer

git-svn-id: trunk@16210 -
This commit is contained in:
mattias 2008-08-24 20:11:38 +00:00
parent 7c263b6e77
commit f7bf90fef4
4 changed files with 18 additions and 5 deletions

View File

@ -3064,6 +3064,7 @@ begin
// HintTimer // HintTimer
FHintTimer := TTimer.Create(Self); FHintTimer := TTimer.Create(Self);
with FHintTimer do begin with FHintTimer do begin
Name:=Self.Name+'_HintTimer';
Interval := 1000; Interval := 1000;
Enabled := False; Enabled := False;
OnTimer := @HintTimer; OnTimer := @HintTimer;
@ -3072,6 +3073,7 @@ begin
// HintWindow // HintWindow
FHintWindow := THintWindow.Create(Self); FHintWindow := THintWindow.Create(Self);
with FHintWindow do begin with FHintWindow do begin
Name:=Self.Name+'_HintWindow';
Visible := False; Visible := False;
Caption := ''; Caption := '';
HideInterval := 4000; HideInterval := 4000;
@ -5133,6 +5135,7 @@ end;
procedure TSourceNotebook.HideHint; procedure TSourceNotebook.HideHint;
begin begin
//DebugLn(['TSourceNotebook.HideHint ']);
if FHintTimer<>nil then if FHintTimer<>nil then
FHintTimer.Enabled:=false; FHintTimer.Enabled:=false;
if SourceCompletionTimer<>nil then if SourceCompletionTimer<>nil then
@ -6233,6 +6236,7 @@ Procedure TSourceNotebook.EditorMouseMove(Sender: TObject; Shift: TShiftstate;
X,Y: Integer); X,Y: Integer);
begin begin
// restart hint timer // restart hint timer
//DebugLn(['TSourceNotebook.EditorMouseMove ']);
FHintTimer.Enabled := False; FHintTimer.Enabled := False;
FHintTimer.Enabled := (EditorOpts.AutoToolTipSymbTools or FHintTimer.Enabled := (EditorOpts.AutoToolTipSymbTools or
EditorOpts.AutoToolTipExprEval) EditorOpts.AutoToolTipExprEval)
@ -6243,8 +6247,8 @@ procedure TSourceNotebook.EditorMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin begin
// restart hint timer // restart hint timer
//DebugLn(['TSourceNotebook.EditorMouseWheel ']);
HideHint; HideHint;
FHintTimer.Enabled := False;
FHintTimer.Enabled := (EditorOpts.AutoToolTipSymbTools or FHintTimer.Enabled := (EditorOpts.AutoToolTipSymbTools or
EditorOpts.AutoToolTipExprEval) and Visible; EditorOpts.AutoToolTipExprEval) and Visible;
//handled:=true; //The scrooling is not done: it's not handled! See TWinControl.DoMouseWheel //handled:=true; //The scrooling is not done: it's not handled! See TWinControl.DoMouseWheel
@ -6261,6 +6265,7 @@ var
MousePos: TPoint; MousePos: TPoint;
AControl: TControl; AControl: TControl;
begin begin
//DebugLn(['TSourceNotebook.HintTimer ']);
FHintTimer.Enabled := False; FHintTimer.Enabled := False;
MousePos := Mouse.CursorPos; MousePos := Mouse.CursorPos;
AControl:=FindLCLControl(MousePos); AControl:=FindLCLControl(MousePos);

View File

@ -26,7 +26,7 @@ unit CustomTimer;
interface interface
uses uses
Classes, SysUtils, LCLStrConsts, LCLType, InterfaceBase; Classes, SysUtils, LCLProc, LCLStrConsts, LCLType, InterfaceBase;
type type
@ -106,6 +106,7 @@ end;
procedure TCustomTimer.KillTimer; procedure TCustomTimer.KillTimer;
begin begin
if FTimerHandle <> cIdNoTimer then begin if FTimerHandle <> cIdNoTimer then begin
//DebugLn(['TCustomTimer.KillTimer ',dbgsName(Self)]);
WidgetSet.DestroyTimer(FTimerHandle); WidgetSet.DestroyTimer(FTimerHandle);
FTimerHandle := cIdNoTimer; FTimerHandle := cIdNoTimer;
if Assigned(OnStopTimer) then OnStopTimer(Self); if Assigned(OnStopTimer) then OnStopTimer(Self);
@ -129,8 +130,9 @@ procedure TCustomTimer.UpdateTimer;
begin begin
KillTimer; KillTimer;
if (FEnabled) and (FInterval > 0) if (FEnabled) and (FInterval > 0)
and (([csDesigning,csLoading]*ComponentState=[])) and (([csDesigning,csLoading,csDestroying]*ComponentState=[]))
and Assigned (FOnTimer) then begin and Assigned (FOnTimer) then begin
//DebugLn(['TCustomTimer.UpdateTimer ',dbgsName(Self),' WidgetSet.CreateTimer']);
FTimerHandle := WidgetSet.CreateTimer(FInterval, @Timer); FTimerHandle := WidgetSet.CreateTimer(FInterval, @Timer);
if FTimerHandle=0 then begin if FTimerHandle=0 then begin
FTimerHandle:=cIdNoTimer; FTimerHandle:=cIdNoTimer;
@ -148,6 +150,9 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
procedure TCustomTimer.Timer; procedure TCustomTimer.Timer;
begin begin
{$IFDEF VerboseTimer}
DebugLn(['TCustomTimer.Timer ',dbgsName(Self),' ',FEnabled,' ',FInterval]);
{$ENDIF}
if (FEnabled) and (FInterval > 0) then if (FEnabled) and (FInterval > 0) then
DoOnTimer; DoOnTimer;
end; end;

View File

@ -1091,6 +1091,7 @@ begin
// (Posting the message via queue // (Posting the message via queue
// has the risk of getting out of sync with the gtk) // has the risk of getting out of sync with the gtk)
NotifyApplicationUserInput(Msg.Msg); NotifyApplicationUserInput(Msg.Msg);
//DebugLn(['DeliverMouseMoveMessage ',dbgsName(AWinControl)]);
DeliverMessage(AWinControl, Msg); DeliverMessage(AWinControl, Msg);
end; end;
@ -2152,6 +2153,7 @@ begin
if TimerInfo^.TimerFunc <> nil if TimerInfo^.TimerFunc <> nil
then begin then begin
// Call users timer function // Call users timer function
//DebugLn(['gtkTimerCB ']);
TimerInfo^.TimerFunc; TimerInfo^.TimerFunc;
Result:=GdkTrue; // timer will go on Result:=GdkTrue; // timer will go on
end end

View File

@ -1416,9 +1416,10 @@ begin
Result := 0 Result := 0
else begin else begin
New(TimerInfo); New(TimerInfo);
FillByte(TimerInfo^,SizeOf(TGtkITimerinfo),0);
TimerInfo^.TimerFunc := TimerFunc; TimerInfo^.TimerFunc := TimerFunc;
{$IFDEF VerboseTimer} {$IFDEF VerboseTimer}
DebugLn('TGtkWidgetSet.SetTimer %p CurTimerCount=%d OldTimerCount=%d', [TimerInfo, FTimerData.Count, FOldTimerData.Count]); DebugLn(['TGtkWidgetSet.CreateTimer Interval=',dbgs(Interval)]);
{$ENDIF} {$ENDIF}
Result:= gtk_timeout_add(Interval, @gtkTimerCB, TimerInfo); Result:= gtk_timeout_add(Interval, @gtkTimerCB, TimerInfo);
if Result = 0 then if Result = 0 then
@ -1452,7 +1453,7 @@ begin
if (TimerInfo^.TimerHandle=guint(TimerHandle)) then if (TimerInfo^.TimerHandle=guint(TimerHandle)) then
begin begin
{$IFDEF VerboseTimer} {$IFDEF VerboseTimer}
DebugLn('TGtkWidgetSet.KillTimer TimerInfo=',DbgS(TimerInfo),' TimerHandle=',TimerHandle,' CurTimerCount=',FTimerData.Count,' OldTimerCount=',FOldTimerData.Count); DebugLn(['TGtkWidgetSet.DestroyTimer TimerInfo=',DbgS(TimerInfo),' TimerHandle=',TimerInfo^.TimerHandle]);
{$ENDIF} {$ENDIF}
gtk_timeout_remove(TimerInfo^.TimerHandle); gtk_timeout_remove(TimerInfo^.TimerHandle);
FTimerData.Delete(n); FTimerData.Delete(n);