arsa  2.7
CARSAInput.h
Go to the documentation of this file.
1 
51 #ifndef _CARSAINPUT_H_
52 #define _CARSAINPUT_H_
53 
54 // push avoid dll warning
55 #ifdef __WIN32__
56 #pragma warning( push )
57 #pragma warning( disable: 4251 )
58 #endif
59 
60 #include "arsa_begin_code.h"
61 #include <irrlicht.h>
62 
63 namespace irr
64 {
65 const static int TOUCH_MOVE_DIFF = 3;
66 const static int MAX_TOUCH = 5;
68 {
99 };
100 
101 const char* const sBuiltInKeyStateNames[] =
102 {
103  "up",
104  "down",
105  "press",
106  "release",
107  "isleft",
108  "isright",
109  "isup",
110  "isdown",
111  "isdouble",
112  "istripple",
113  "ismoving",
114  "iszoomin",
115  "iszoomout",
116  "getrepeat",
117  "gettime",
118  "gettouchx",
119  "gettouchy",
120  "gettouchx_old",
121  "gettouchy_old",
122  "gettouchx_fromstart",
123  "gettouchy_fromstart",
124  "gettouchxy_diff",
125  "gettouchx_diff",
126  "gettouchy_diff",
127  "gettouchx_diff_fromstart",
128  "gettouchy_diff_fromstart",
129  "limit",
130  "limitclear",
131  "clear",
132  0
133 };
134 
135 typedef void CARSAInputLogCB(const irr::core::stringc& msg );
136 
141 {
142 
143  protected:
149 
151  E_KEY_STATE mouseButtonState[2]; //Left(0), Middle(1) and Right(2) Buttons.
152 
155 
157  {
158  int data1;
159  int data2;
160  };
162 
164  struct mouseData
165  {
166  int X;
167  int Y;
169  float wheel;
170  };
171  struct mouseData mouse;
172 
173  struct touchData
174  {
176  {
177  clear();
178  }
179  bool isOk() const
180  {
181  return ID != -1?true:false;
182  }
183  void clear()
184  {
185  X = 0;
186  Y = 0;
187  StartX = 0;
188  StartY = 0;
189  OldX = 0;
190  OldY = 0;
191  ID = -1;
192  startTime = 0;
193  endTime = 0;
194  touchState = EKS_UP;
195  }
196 
198  int OldX, OldY;
199  int X, Y, ID;
202  };
203 
206  touchData touch[MAX_TOUCH];
218 
221 
222  s32 getExistTouchSlot( s32 id, bool equalid = false );
223  virtual bool OnEvent(const SEvent& event);
224 
226  // Public functions
228  public:
229 
230  CARSAInput();
231  virtual void setLogCB(CARSAInputLogCB* cb);
233  virtual const core::stringc getKeyNameFromState(irr::E_KEY_STATE state) const;
234  virtual float mouseWheel();
235  virtual int mouseX();
236  virtual int mouseY();
237  virtual bool leftMouseReleased();
238  virtual bool leftMouseUp();
239  virtual bool leftMousePressed();
240  virtual bool leftMouseDown();
241  virtual bool middleMouseReleased();
242  virtual bool middleMouseUp();
243  virtual bool middleMousePressed();
244  virtual bool middleMouseDown();
245  virtual bool rightMouseReleased();
246  virtual bool rightMouseUp();
247  virtual bool rightMousePressed();
248  virtual bool rightMouseDown();
249  virtual bool keyPressed(unsigned char keycode);
250  virtual bool keyDown(unsigned char keycode);
251  virtual bool keyUp(unsigned char keycode);
252  virtual bool keyReleased(unsigned char keycode);
253  virtual int isKeyDown( );
254  virtual int isKeyPressed( );
255  virtual u8 getKeyState(unsigned char keycode) const; // return E_KEY_STATE
256  virtual void endEventProcess( u32 timeMs = 0 );
257  virtual void startEventProcess();
258  virtual void init( void );
259  virtual void clear( void );
260  virtual bool isTouchOk( u8 id ) const;
263  virtual u8 getTouchState( u8 id ) const;
264  virtual s32 getTouchId( u8 id ) const;
265  virtual bool isTouchLeft( u8 id, int diff = TOUCH_MOVE_DIFF, bool fromstart = false ) const;
266  virtual bool isTouchRight( u8 id, int diff = TOUCH_MOVE_DIFF, bool fromstart = false) const;
267  virtual bool isTouchUp( u8 id, int diff = TOUCH_MOVE_DIFF, bool fromstart = false) const;
268  virtual bool isTouchDown( u8 id, int diff = TOUCH_MOVE_DIFF, bool fromstart = false) const;
270  virtual f32 getTouchTimeSec( u8 id ) const;
271  virtual int getTouchStartX( u8 id ) const;
272  virtual int getTouchStartY( u8 id ) const;
273  virtual int getTouchOldX( u8 id ) const;
274  virtual int getTouchOldY( u8 id ) const;
275  virtual int getTouchX( u8 id ) const;
276  virtual int getTouchY( u8 id ) const;
277  virtual int getTouchDiffXY( u8 id ) const;
278  virtual int getTouchDiffX( u8 id ) const;
279  virtual int getTouchDiffY( u8 id ) const;
280  virtual int getTouchDiffFromStartX( u8 id ) const;
281  virtual int getTouchDiffFromStartY( u8 id ) const;
282  virtual bool isTouchMoving( u8 id ) const;
283  virtual bool isTouchZoomIn() const;
284  virtual bool isTouchZoomOut() const;
285  virtual int getTouchRepeatCount( ) const;
286  virtual void setScreenSize( const core::dimension2du& size, const core::dimension2du& wantsize = core::dimension2du() );
287  virtual bool ManualUpdate(const SEvent& event);
288  virtual int getUserEventData1() const;
289  virtual int getUserEventData2() const;
291  virtual const irr::core::array<irr::core::stringc>& getDragFiles() const;
293  virtual const irr::core::dimension2du getReSize() const;
294 
296  virtual irr::u32 limitAdd(const irr::core::stringc& str);
297  virtual const irr::core::stringc limitGet(irr::u32 num) const;
298  virtual irr::u32 limitCount() const;
299  virtual void limitClear();
300  virtual bool limitIsExist(const irr::core::stringc& str) const;
301  virtual bool limitEmpty() const;
302 };
306 
307 } // irr
308 
309  // pop avoid dll warning
310 #ifdef __WIN32__
311 #pragma warning( pop )
312 #endif
313 
314 #endif // _CARSAINPUT_H_
virtual void startEventProcess()
virtual bool rightMouseDown()
virtual bool leftMouseUp()
virtual int getTouchDiffXY(u8 id) const
virtual bool middleMouseUp()
virtual int getTouchStartY(u8 id) const
virtual bool isTouchLeft(u8 id, int diff=TOUCH_MOVE_DIFF, bool fromstart=false) const
virtual bool limitIsExist(const irr::core::stringc &str) const
virtual int getUserEventData1() const
SEvents hold information about an event. See irr::IEventReceiver for details on event handling.
GLuint num
virtual bool keyReleased(unsigned char keycode)
virtual int isKeyPressed()
virtual irr::u32 limitCount() const
virtual bool OnEvent(const SEvent &event)
Called if an event happened.
core::dimension2du wantSize
Definition: CARSAInput.h:213
void CARSAInputLogCB(const irr::core::stringc &msg)
Definition: CARSAInput.h:135
float f32
32 bit floating point variable.
Definition: irrTypes.h:108
virtual bool limitEmpty() const
virtual void limitClear()
virtual int getUserEventData2() const
virtual bool isTouchUp(u8 id, int diff=TOUCH_MOVE_DIFF, bool fromstart=false) const
E_KEY_STATE mouseButtonState[2]
Mouse button states.
Definition: CARSAInput.h:151
int TouchZoomFlags
1 = zoomin, 2 = zoomout
Definition: CARSAInput.h:208
virtual void init(void)
struct mouseData mouse
Definition: CARSAInput.h:171
virtual int isKeyDown()
virtual bool isTouchMoving(u8 id) const
E_KEY_STATE keyState[KEY_KEY_CODES_COUNT]
Keyboard key states.
Definition: CARSAInput.h:154
virtual const irr::core::array< irr::core::stringc > & getDragFiles() const
virtual bool leftMouseReleased()
virtual int getTouchStartX(u8 id) const
Everything in the Irrlicht Engine can be found in this namespace.
Definition: CARSADPad.h:6
Main header file of the irrlicht, the only file needed to include.
virtual bool leftMousePressed()
virtual bool keyPressed(unsigned char keycode)
virtual f32 getTouchTimeSec(u8 id) const
return second
GLsizeiptr size
virtual int getTouchOldY(u8 id) const
virtual bool middleMousePressed()
Mouse X/Y coordinates and Wheel data.
Definition: CARSAInput.h:164
virtual bool isTouchDown(u8 id, int diff=TOUCH_MOVE_DIFF, bool fromstart=false) const
virtual u8 getTouchState(u8 id) const
virtual float mouseWheel()
Very simple string class with some useful features.
Definition: irrString.h:37
irr::core::array< irr::core::stringc > limitStrings
Definition: CARSAInput.h:217
unsigned char u8
8 bit unsigned variable.
Definition: irrTypes.h:22
virtual int getTouchDiffFromStartX(u8 id) const
virtual bool keyDown(unsigned char keycode)
touchData touch[MAX_TOUCH]
max touch
Definition: CARSAInput.h:206
virtual void setLogCB(CARSAInputLogCB *cb)
Interface of an object which can receive events.
processStateENUM processState
STARTED = handling events, ENDED = not handling events.
Definition: CARSAInput.h:220
virtual int getTouchDiffY(u8 id) const
virtual bool ManualUpdate(const SEvent &event)
virtual int getTouchDiffX(u8 id) const
virtual int getTouchY(u8 id) const
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
virtual bool middleMouseReleased()
virtual irr::E_KEY_STATE getKeyStateFromName(const irr::core::stringc &str)
virtual s32 getTouchId(u8 id) const
struct _cl_event * event
struct userEventData userevt
Definition: CARSAInput.h:161
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:62
virtual const irr::core::dimension2du getReSize() const
virtual bool keyUp(unsigned char keycode)
float wheel
wheel is how far the wheel has moved
Definition: CARSAInput.h:169
virtual int getTouchRepeatCount() const
virtual bool middleMouseDown()
virtual u8 getKeyState(unsigned char keycode) const
virtual bool isTouchRight(u8 id, int diff=TOUCH_MOVE_DIFF, bool fromstart=false) const
core::dimension2du screenSize
Definition: CARSAInput.h:212
virtual bool leftMouseDown()
virtual int getTouchDiffFromStartY(u8 id) const
virtual void setScreenSize(const core::dimension2du &size, const core::dimension2du &wantsize=core::dimension2du())
virtual const irr::core::stringc limitGet(irr::u32 num) const
Self reallocating template array (like stl vector) with additional features.
Definition: irrArray.h:22
virtual bool isTouchZoomIn() const
virtual int getTouchX(u8 id) const
virtual const core::stringc getKeyNameFromState(irr::E_KEY_STATE state) const
virtual void endEventProcess(u32 timeMs=0)
E_KEY_STATE
Definition: CARSAInput.h:67
virtual irr::u32 limitAdd(const irr::core::stringc &str)
limit
virtual int mouseY()
virtual int mouseX()
virtual bool rightMouseReleased()
s32 getExistTouchSlot(s32 id, bool equalid=false)
virtual bool rightMouseUp()
virtual bool rightMousePressed()
virtual void clear(void)
virtual bool isTouchZoomOut() const
virtual bool isTouchOk(u8 id) const
irr::core::dimension2du reSize
Definition: CARSAInput.h:216
const char *const sBuiltInKeyStateNames[]
Definition: CARSAInput.h:101
irr::core::array< irr::core::stringc > dragFiles
Definition: CARSAInput.h:215
CARSAInputLogCB * logCB
Definition: CARSAInput.h:214
virtual int getTouchOldX(u8 id) const