openshot-audio  0.1.5
juce_MouseInactivityDetector.h
Go to the documentation of this file.
1 /*
2  ==============================================================================
3 
4  This file is part of the JUCE library.
5  Copyright (c) 2015 - ROLI Ltd.
6 
7  Permission is granted to use this software under the terms of either:
8  a) the GPL v2 (or any later version)
9  b) the Affero GPL v3
10 
11  Details of these licenses can be found at: www.gnu.org/licenses
12 
13  JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
14  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15  A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 
17  ------------------------------------------------------------------------------
18 
19  To release a closed-source product which uses JUCE, commercial licenses are
20  available: visit www.juce.com for more information.
21 
22  ==============================================================================
23 */
24 
25 #ifndef JUCE_MOUSEINACTIVITYDETECTOR_H_INCLUDED
26 #define JUCE_MOUSEINACTIVITYDETECTOR_H_INCLUDED
27 
28 
29 //==============================================================================
42  private MouseListener
43 {
44 public:
50 
53 
57  void setDelay (int newDelayMilliseconds) noexcept;
58 
62  void setMouseMoveTolerance (int pixelsNeededToTrigger) noexcept;
63 
64  //==============================================================================
68  class Listener
69  {
70  public:
71  virtual ~Listener() {}
72 
75  virtual void mouseBecameActive() = 0;
76 
78  virtual void mouseBecameInactive() = 0;
79  };
80 
82  void addListener (Listener* listener);
83 
85  void removeListener (Listener* listener);
86 
87 private:
88  //==============================================================================
89  Component& targetComp;
90  ListenerList<Listener> listenerList;
91  Point<int> lastMousePos;
92  int delayMs, toleranceDistance;
93  bool isActive;
94 
95  void timerCallback() override;
96  void wakeUp (const MouseEvent&, bool alwaysWake);
97  void setActive (bool);
98 
99  void mouseMove (const MouseEvent& e) override { wakeUp (e, false); }
100  void mouseEnter (const MouseEvent& e) override { wakeUp (e, false); }
101  void mouseExit (const MouseEvent& e) override { wakeUp (e, false); }
102  void mouseDown (const MouseEvent& e) override { wakeUp (e, true); }
103  void mouseDrag (const MouseEvent& e) override { wakeUp (e, true); }
104  void mouseUp (const MouseEvent& e) override { wakeUp (e, true); }
105  void mouseWheelMove (const MouseEvent& e, const MouseWheelDetails&) override { wakeUp (e, true); }
106 
108 };
109 
110 
111 #endif // JUCE_MOUSEINACTIVITYDETECTOR_H_INCLUDED
Definition: juce_MouseInactivityDetector.h:41
#define noexcept
Definition: juce_CompilerSupport.h:141
#define JUCE_API
Definition: juce_StandardHeader.h:139
Definition: juce_ListenerList.h:69
Definition: juce_Component.h:33
Definition: juce_MouseEvent.h:329
Definition: juce_MouseListener.h:36
virtual ~Listener()
Definition: juce_MouseInactivityDetector.h:71
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
Definition: juce_PlatformDefs.h:198
Definition: juce_Timer.h:52
Definition: juce_MouseEvent.h:36
Definition: juce_MouseInactivityDetector.h:68