18 : hoverTimeMillisecs (hoverTimeMillisecs_)
20 internalTimer.owner =
this;
25 setHoverComponent (
nullptr,
false);
28 void setHoverTimeMillisecs (
int newTimeInMillisecs)
30 hoverTimeMillisecs = newTimeInMillisecs;
34 bool wantsEventsForAllNestedChildComponents)
36 if (source != newSourceComponent)
38 internalTimer.stopTimer();
39 hasJustHovered =
false;
40 wantsHoversForAllNestedChildComponents = wantsEventsForAllNestedChildComponents;
42 if (source !=
nullptr)
45 source = newSourceComponent;
47 if (newSourceComponent !=
nullptr)
48 newSourceComponent->
addMouseListener (&internalTimer, wantsHoversForAllNestedChildComponents);
52 void hoverTimerCallback()
54 internalTimer.stopTimer();
56 if (source !=
nullptr)
60 if (source->
reallyContains (pos, wantsHoversForAllNestedChildComponents))
62 hasJustHovered =
true;
63 mouseHovered (pos.getX(), pos.getY());
68 void checkJustHoveredCallback()
72 hasJustHovered =
false;
73 mouseMovedAfterHover();
78 virtual void mouseHovered (
int mouseX,
int mouseY) = 0;
79 virtual void mouseMovedAfterHover() = 0;
87 HoverDetectorInternal() =
default;
92 void timerCallback()
override
94 owner->hoverTimerCallback();
100 owner->checkJustHoveredCallback();
106 owner->checkJustHoveredCallback();
112 owner->checkJustHoveredCallback();
118 owner->checkJustHoveredCallback();
127 if (owner->source !=
nullptr)
130 owner->checkJustHoveredCallback();
137 owner->checkJustHoveredCallback();
143 HoverDetectorInternal internalTimer;
145 int hoverTimeMillisecs;
146 bool hasJustHovered =
false;
147 bool wantsHoversForAllNestedChildComponents =
false;