|
CUGL 1.3
Cornell University Game Library
|
34 #ifndef __CU_MOUSE_H__
35 #define __CU_MOUSE_H__
37 #include <cugl/input/CUInput.h>
38 #include <cugl/math/CURect.h>
39 #include <cugl/math/CUVec2.h>
42 #define SDL_BUTTON_ALLMASK ((1 << 6) - 1)
70 #pragma mark Constructors
89 bool hasLeft()
const {
return (_state & SDL_BUTTON_LMASK) != 0; }
96 bool hasMiddle()
const {
return (_state & SDL_BUTTON_MMASK) != 0; }
103 bool hasRight()
const {
return (_state & SDL_BUTTON_RMASK) != 0; }
113 bool hasX1()
const {
return (_state & SDL_BUTTON_X1MASK) != 0; }
123 bool hasX2()
const {
return (_state & SDL_BUTTON_X2MASK) != 0; }
130 void setLeft(
bool value) { toggle(SDL_BUTTON_LMASK,value); }
137 void setMiddle(
bool value) { toggle(SDL_BUTTON_MMASK,value); }
144 void setRight(
bool value) { toggle(SDL_BUTTON_RMASK,value); }
154 void setX1(
bool value) { toggle(SDL_BUTTON_X1MASK,value); }
164 void setX2(
bool value) { toggle(SDL_BUTTON_X2MASK,value); }
167 #pragma mark Bitwise Operations
180 _state &= mouse._state;
196 _state |= mouse._state;
213 _state ^= mouse._state;
229 _state &= ~mouse._state;
315 void toggle(Uint32 bmask,
bool value) {
316 _state = (value ? _state | bmask : _state & ~bmask);
320 friend class MouseEvent;
436 #pragma mark Listeners
559 #pragma mark Constructor
581 virtual void dispose()
override;
613 #pragma mark Data Polling
667 #pragma mark Listeners
920 #pragma mark Input Device
952 virtual void queryEvents(std::vector<Uint32>& eventset)
override;
bool flipped
Definition: CUMouse.h:370
bool addDragListener(Uint32 key, MotionListener listener)
std::unordered_map< Uint32, WheelListener > _wheelListeners
Definition: CUMouse.h:557
MouseWheelEvent(const Vec2 &offset, const Timestamp &stamp, bool flip=false)
Definition: CUMouse.h:384
virtual void clearState() override
virtual bool updateState(const SDL_Event &event, const Timestamp &stamp) override
ButtonState _lastState
Definition: CUMouse.h:536
bool addPressListener(Uint32 key, ButtonListener listener)
virtual bool requestFocus(Uint32 key) override
Definition: CUMouse.h:328
Vec2 pointerPosition() const
Definition: CUMouse.h:647
ButtonState _currState
Definition: CUMouse.h:538
virtual ~Mouse()
Definition: CUMouse.h:574
Definition: CUTimestamp.h:61
ButtonState buttonUp() const
Definition: CUMouse.h:626
std::function< void(const MouseEvent &event, Uint8 clicks, bool focus)> ButtonListener
Definition: CUMouse.h:470
std::function< void(const MouseEvent &event, const Vec2 &previous, bool focus)> MotionListener
Definition: CUMouse.h:502
Timestamp timestamp
Definition: CUMouse.h:331
bool addWheelListener(Uint32 key, WheelListener listener)
virtual void queryEvents(std::vector< Uint32 > &eventset) override
PointerAwareness getPointerAwareness() const
Definition: CUMouse.h:594
Timestamp timestamp
Definition: CUMouse.h:366
Vec2 pointerOffset() const
Definition: CUMouse.h:656
Vec2 direction
Definition: CUMouse.h:368
const ButtonListener getPressListener(Uint32 key) const
Vec2 _wheelOffset
Definition: CUMouse.h:546
ButtonState buttonReleased() const
Definition: CUMouse.h:640
std::unordered_map< Uint32, ButtonListener > _pressListeners
Definition: CUMouse.h:549
ButtonState buttonPressed() const
Definition: CUMouse.h:633
std::unordered_map< Uint32, ButtonListener > _releaseListeners
Definition: CUMouse.h:551
Vec2 _lastPoint
Definition: CUMouse.h:541
MouseWheelEvent()
Definition: CUMouse.h:375
virtual void dispose() override
Definition: CUMouse.h:363
bool removeWheelListener(Uint32 key)
ButtonState buttons
Definition: CUMouse.h:333
bool addReleaseListener(Uint32 key, ButtonListener listener)
Vec2 position
Definition: CUMouse.h:335
ButtonState buttonDown() const
Definition: CUMouse.h:619
Definition: CUMouse.h:417
void setPointerAwareness(PointerAwareness awareness)
Definition: CUMouse.h:610
const WheelListener getWheelListener(Uint32 key) const
MouseEvent()
Definition: CUMouse.h:340
bool isListener(Uint32 key) const
MouseEvent(Uint32 state, const Vec2 &point, const Timestamp &stamp)
Definition: CUMouse.h:349
PointerAwareness _awareness
Definition: CUMouse.h:533
bool removeDragListener(Uint32 key)
Vec2 wheelDirection() const
Definition: CUMouse.h:665
bool removeReleaseListener(Uint32 key)
bool removeMotionListener(Uint32 key)
const MotionListener getDragListener(Uint32 key) const
Vec2 _currPoint
Definition: CUMouse.h:543
std::unordered_map< Uint32, MotionListener > _dragListeners
Definition: CUMouse.h:555
bool removePressListener(Uint32 key)
std::unordered_map< Uint32, MotionListener > _moveListeners
Definition: CUMouse.h:553
std::function< void(const MouseWheelEvent &event, bool focus)> WheelListener
Definition: CUMouse.h:529
Mouse()
Definition: CUMouse.h:569
PointerAwareness
Definition: CUMouse.h:427
bool addMotionListener(Uint32 key, MotionListener listener)
const ButtonListener getReleaseListener(Uint32 key) const
const MotionListener getMotionListener(Uint32 key) const