00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #pragma once
00024
00025 #include "cinder/Vector.h"
00026
00027 namespace cinder { namespace app {
00028
00030 class MouseEvent {
00031 public:
00032 MouseEvent() {}
00033 MouseEvent( int aInitiator, int aX, int aY, unsigned int aModifiers, float aWheelIncrement, uint32_t aNativeModifiers )
00034 : mInitiator( aInitiator ), mX( aX ), mY( aY ), mModifiers( aModifiers ), mWheelIncrement( aWheelIncrement ), mNativeModifiers( aNativeModifiers )
00035 {}
00036
00038 int getX() const { return mX; }
00040 int getY() const { return mY; }
00042 Vec2i getPos() const { return Vec2i( mX, mY ); }
00044 bool isLeft() const { return ( mInitiator & LEFT_DOWN ) ? true : false; }
00046 bool isRight() const { return ( mInitiator & RIGHT_DOWN ) ? true : false; }
00048 bool isMiddle() const { return ( mInitiator & MIDDLE_DOWN ) ? true : false; }
00050 bool isLeftDown() const { return (mModifiers & LEFT_DOWN) ? true : false; }
00052 bool isRightDown() const { return (mModifiers & RIGHT_DOWN) ? true : false; }
00054 bool isMiddleDown() const { return (mModifiers & MIDDLE_DOWN) ? true : false; }
00056 bool isShiftDown() const { return (mModifiers & SHIFT_DOWN) ? true : false; }
00058 bool isAltDown() const { return (mModifiers & ALT_DOWN) ? true : false; }
00060 bool isControlDown() const { return (mModifiers & CTRL_DOWN) ? true : false; }
00062 bool isMetaDown() const { return (mModifiers & META_DOWN) ? true : false; }
00064 bool isAccelDown() const { return (mModifiers & ACCEL_DOWN) ? true : false; }
00066 float getWheelIncrement() const { return mWheelIncrement; }
00067
00069 uint32_t getNativeModifiers() const { return mNativeModifiers; }
00070
00071 enum { LEFT_DOWN = 0x0001,
00072 RIGHT_DOWN = 0x0002,
00073 MIDDLE_DOWN = 0x0004,
00074 SHIFT_DOWN = 0x0008,
00075 ALT_DOWN = 0x0010,
00076 CTRL_DOWN = 0x0020,
00077 META_DOWN = 0x0040,
00078 #if defined( CINDER_MSW )
00079 ACCEL_DOWN = CTRL_DOWN
00080 #else
00081 ACCEL_DOWN = META_DOWN
00082 #endif
00083 };
00084
00085 private:
00086 int mInitiator;
00087 int mX, mY;
00088 unsigned int mModifiers;
00089 float mWheelIncrement;
00090 uint32_t mNativeModifiers;
00091 };
00092
00093 } }