Cornell Cocos
Cornell Extensions to Cocos2d
CUMouseListener.h
1 //
2 // CUMouseListener.h
3 // Cornell Extensions to Cocos2D
4 //
5 // Module provides a time sensitive listener for the mouse. This class simplifies a
6 // lot of the overhead for EventListenerMouse. More importantly, it adds a timestamp
7 // to all of the callback functions so that the user can precisely time the callbacks.
8 //
9 // Author: Walker White
10 // Version: 12/5/15
11 //
12 #ifndef __CU_MOUSE_LISTENER_H__
13 #define __CU_MOUSE_LISTENER_H__
14 
15 #include <cocos2d.h>
16 #include "CUTimestamp.h"
17 
18 NS_CC_BEGIN
19 
20 #pragma mark -
21 #pragma mark Mouse Listener
22 
40 class MouseListener : public Ref {
41 private:
43  CC_DISALLOW_COPY_AND_ASSIGN(MouseListener);
44 
45 protected:
47  EventDispatcher* _dispatcher;
49  EventListenerMouse* _mouseListener;
51  bool _active;
52 
53 
54 public:
55 #pragma mark Static Constructors
56 
61  static MouseListener* create();
62 
71  static MouseListener* create(EventDispatcher* dispatcher);
72 
73 
74 #pragma mark Event Handling
75 
82  void start(int priority);
83 
91  void start(Node* node);
92 
96  void stop();
97 
103  bool isActive() const { return _active; }
104 
111  std::function<void(EventMouse* event, timestamp_t time)> onMouseDown;
112 
119  std::function<void(EventMouse* event, timestamp_t time)> onMouseUp;
120 
130  std::function<void(EventMouse* event, timestamp_t time)> onMouseMove;
131 
140  std::function<void(EventMouse* event, timestamp_t time)> onMouseScroll;
141 
142 
143 #pragma mark Initializers
144 CC_CONSTRUCTOR_ACCESS:
148  MouseListener() : _active(false) {}
149 
153  virtual ~MouseListener();
154 
160  bool init() { return init(Director::getInstance()->getEventDispatcher()); }
161 
170  bool init(EventDispatcher* dispatcher);
171 
172 };
173 
174 NS_CC_END
175 #endif /* defined(__CU_MOUSE_LISTENER_H__) */
bool _active
Definition: CUMouseListener.h:51
std::function< void(EventMouse *event, timestamp_t time)> onMouseMove
Definition: CUMouseListener.h:130
void stop()
Definition: CUMouseListener.cpp:84
Definition: CUMouseListener.h:40
std::function< void(EventMouse *event, timestamp_t time)> onMouseUp
Definition: CUMouseListener.h:119
bool init()
Definition: CUMouseListener.h:160
EventDispatcher * _dispatcher
Definition: CUMouseListener.h:47
static MouseListener * create()
Definition: CUMouseListener.cpp:24
void start(int priority)
Definition: CUMouseListener.cpp:62
std::function< void(EventMouse *event, timestamp_t time)> onMouseDown
Definition: CUMouseListener.h:111
bool isActive() const
Definition: CUMouseListener.h:103
EventListenerMouse * _mouseListener
Definition: CUMouseListener.h:49
std::function< void(EventMouse *event, timestamp_t time)> onMouseScroll
Definition: CUMouseListener.h:140