Richard Parker / EALCD
Committer:
richardparker
Date:
Thu Mar 04 10:54:06 2010 +0000
Revision:
1:f04bcaea1d60
Child:
3:24fbf4dbd7e5

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
richardparker 1:f04bcaea1d60 1 // Copyright 2010 Richard Parker
richardparker 1:f04bcaea1d60 2
richardparker 1:f04bcaea1d60 3 #ifndef MBED_EAHITBOX_H
richardparker 1:f04bcaea1d60 4 #define MBED_EAHITBOX_H
richardparker 1:f04bcaea1d60 5
richardparker 1:f04bcaea1d60 6 #include "mbed.h"
richardparker 1:f04bcaea1d60 7
richardparker 1:f04bcaea1d60 8 #include "../widgets/EAWidget.h"
richardparker 1:f04bcaea1d60 9
richardparker 1:f04bcaea1d60 10 class EAHitBox;
richardparker 1:f04bcaea1d60 11
richardparker 1:f04bcaea1d60 12 /**
richardparker 1:f04bcaea1d60 13 * Class to handle detection of a hit in an area of the screen.
richardparker 1:f04bcaea1d60 14 * @author Richard Parker
richardparker 1:f04bcaea1d60 15 */
richardparker 1:f04bcaea1d60 16 class EAHitBox
richardparker 1:f04bcaea1d60 17 {
richardparker 1:f04bcaea1d60 18 public:
richardparker 1:f04bcaea1d60 19 typedef void (*ActionFunction)(EAHitBox*, short, short) ;
richardparker 1:f04bcaea1d60 20
richardparker 1:f04bcaea1d60 21 EAHitBox();
richardparker 1:f04bcaea1d60 22
richardparker 1:f04bcaea1d60 23 ~EAHitBox();
richardparker 1:f04bcaea1d60 24
richardparker 1:f04bcaea1d60 25 inline unsigned short width() const { return _width; }
richardparker 1:f04bcaea1d60 26 inline unsigned short height() const { return _height; }
richardparker 1:f04bcaea1d60 27
richardparker 1:f04bcaea1d60 28 inline void setWidth(unsigned int w) { _width = w; }
richardparker 1:f04bcaea1d60 29 inline void setHeight(unsigned int h) { _height = h; }
richardparker 1:f04bcaea1d60 30
richardparker 1:f04bcaea1d60 31 inline unsigned short x() const { return _x; }
richardparker 1:f04bcaea1d60 32 inline unsigned short y() const { return _y; }
richardparker 1:f04bcaea1d60 33
richardparker 1:f04bcaea1d60 34 inline void setX(short x) { _x = x; }
richardparker 1:f04bcaea1d60 35 inline void setY(short y) { _y = y; }
richardparker 1:f04bcaea1d60 36
richardparker 1:f04bcaea1d60 37 inline EAHitBox* next() const { return _next; }
richardparker 1:f04bcaea1d60 38 inline void setNext(EAHitBox* value) { _next = value; }
richardparker 1:f04bcaea1d60 39
richardparker 1:f04bcaea1d60 40 bool checkContains(short x, short y);
richardparker 1:f04bcaea1d60 41
richardparker 1:f04bcaea1d60 42 inline void setAction(EAHitBox::ActionFunction action) { _action = action; }
richardparker 1:f04bcaea1d60 43
richardparker 1:f04bcaea1d60 44 inline EAWidget* widget() const { return _widget; }
richardparker 1:f04bcaea1d60 45 inline void setWidget(EAWidget* value) { _widget = value; }
richardparker 1:f04bcaea1d60 46
richardparker 1:f04bcaea1d60 47 private:
richardparker 1:f04bcaea1d60 48 EAHitBox* _next;
richardparker 1:f04bcaea1d60 49
richardparker 1:f04bcaea1d60 50 EAWidget* _widget;
richardparker 1:f04bcaea1d60 51
richardparker 1:f04bcaea1d60 52 unsigned short _width;
richardparker 1:f04bcaea1d60 53 unsigned short _height;
richardparker 1:f04bcaea1d60 54
richardparker 1:f04bcaea1d60 55 short _x;
richardparker 1:f04bcaea1d60 56 short _y;
richardparker 1:f04bcaea1d60 57
richardparker 1:f04bcaea1d60 58 ActionFunction _action;
richardparker 1:f04bcaea1d60 59
richardparker 1:f04bcaea1d60 60 };
richardparker 1:f04bcaea1d60 61
richardparker 1:f04bcaea1d60 62 #endif