LMMS
Loading...
Searching...
No Matches
juce_MouseInactivityDetector.cpp
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
30{
31 targetComp.addMouseListener (this, true);
32}
33
35{
36 targetComp.removeMouseListener (this);
37}
38
39void MouseInactivityDetector::setDelay (int newDelay) noexcept { delayMs = newDelay; }
40void MouseInactivityDetector::setMouseMoveTolerance (int newDistance) noexcept { toleranceDistance = newDistance; }
41
44
49
50void MouseInactivityDetector::wakeUp (const MouseEvent& e, bool alwaysWake)
51{
52 auto newPos = e.getEventRelativeTo (&targetComp).getPosition();
53
54 if ((! isActive) && (alwaysWake || e.source.isTouch() || newPos.getDistanceFrom (lastMousePos) > toleranceDistance))
55 setActive (true);
56
57 if (lastMousePos != newPos)
58 {
59 lastMousePos = newPos;
61 }
62}
63
65{
66 if (isActive != b)
67 {
68 isActive = b;
69
70 if (isActive)
71 listenerList.call ([] (Listener& l) { l.mouseBecameActive(); });
72 else
73 listenerList.call ([] (Listener& l) { l.mouseBecameInactive(); });
74 }
75}
76
77} // namespace juce
Definition juce_Component.h:36
Definition juce_MouseEvent.h:39
Definition juce_MouseInactivityDetector.h:71
ListenerList< Listener > listenerList
Definition juce_MouseInactivityDetector.h:92
MouseInactivityDetector(Component &target)
Definition juce_MouseInactivityDetector.cpp:29
Component & targetComp
Definition juce_MouseInactivityDetector.h:91
void addListener(Listener *listener)
Definition juce_MouseInactivityDetector.cpp:42
bool isActive
Definition juce_MouseInactivityDetector.h:95
void wakeUp(const MouseEvent &, bool alwaysWake)
Definition juce_MouseInactivityDetector.cpp:50
void setActive(bool)
Definition juce_MouseInactivityDetector.cpp:64
void setMouseMoveTolerance(int pixelsNeededToTrigger) noexcept
Definition juce_MouseInactivityDetector.cpp:40
~MouseInactivityDetector() override
Definition juce_MouseInactivityDetector.cpp:34
void timerCallback() override
Definition juce_MouseInactivityDetector.cpp:45
void removeListener(Listener *listener)
Definition juce_MouseInactivityDetector.cpp:43
int toleranceDistance
Definition juce_MouseInactivityDetector.h:94
Point< int > lastMousePos
Definition juce_MouseInactivityDetector.h:93
void setDelay(int newDelayMilliseconds) noexcept
Definition juce_MouseInactivityDetector.cpp:39
int delayMs
Definition juce_MouseInactivityDetector.h:94
void startTimer(int intervalInMilliseconds) noexcept
Definition juce_Timer.cpp:332
* e
Definition inflate.c:1404
int * l
Definition inflate.c:1579
Definition carla_juce.cpp:31
return c
Definition crypt.c:175
b
Definition crypt.c:628