Richard Parker / EALCD
Committer:
richardparker
Date:
Wed Mar 31 22:22:21 2010 +0000
Revision:
3:24fbf4dbd7e5
Parent:
1:f04bcaea1d60

        

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 3:24fbf4dbd7e5 11 class EAHitHandler;
richardparker 1:f04bcaea1d60 12
richardparker 1:f04bcaea1d60 13 /**
richardparker 1:f04bcaea1d60 14 * Class to handle detection of a hit in an area of the screen.
richardparker 1:f04bcaea1d60 15 * @author Richard Parker
richardparker 1:f04bcaea1d60 16 */
richardparker 1:f04bcaea1d60 17 class EAHitBox
richardparker 1:f04bcaea1d60 18 {
richardparker 1:f04bcaea1d60 19 public:
richardparker 1:f04bcaea1d60 20 typedef void (*ActionFunction)(EAHitBox*, short, short) ;
richardparker 1:f04bcaea1d60 21
richardparker 1:f04bcaea1d60 22 EAHitBox();
richardparker 1:f04bcaea1d60 23
richardparker 1:f04bcaea1d60 24 ~EAHitBox();
richardparker 1:f04bcaea1d60 25
richardparker 1:f04bcaea1d60 26 inline unsigned short width() const { return _width; }
richardparker 1:f04bcaea1d60 27 inline unsigned short height() const { return _height; }
richardparker 1:f04bcaea1d60 28
richardparker 1:f04bcaea1d60 29 inline void setWidth(unsigned int w) { _width = w; }
richardparker 1:f04bcaea1d60 30 inline void setHeight(unsigned int h) { _height = h; }
richardparker 1:f04bcaea1d60 31
richardparker 1:f04bcaea1d60 32 inline unsigned short x() const { return _x; }
richardparker 1:f04bcaea1d60 33 inline unsigned short y() const { return _y; }
richardparker 1:f04bcaea1d60 34
richardparker 1:f04bcaea1d60 35 inline void setX(short x) { _x = x; }
richardparker 1:f04bcaea1d60 36 inline void setY(short y) { _y = y; }
richardparker 1:f04bcaea1d60 37
richardparker 1:f04bcaea1d60 38 inline EAHitBox* next() const { return _next; }
richardparker 1:f04bcaea1d60 39 inline void setNext(EAHitBox* value) { _next = value; }
richardparker 1:f04bcaea1d60 40
richardparker 1:f04bcaea1d60 41 bool checkContains(short x, short y);
richardparker 1:f04bcaea1d60 42
richardparker 1:f04bcaea1d60 43 inline void setAction(EAHitBox::ActionFunction action) { _action = action; }
richardparker 1:f04bcaea1d60 44
richardparker 3:24fbf4dbd7e5 45 inline EAHitHandler* handler() const { return _handler; }
richardparker 3:24fbf4dbd7e5 46 inline void setHandler(EAHitHandler* value) { _handler = value; }
richardparker 3:24fbf4dbd7e5 47
richardparker 3:24fbf4dbd7e5 48 inline bool enabled() { return _enabled; }
richardparker 3:24fbf4dbd7e5 49 inline void setEnabled(bool yes) { _enabled = yes; }
richardparker 1:f04bcaea1d60 50
richardparker 1:f04bcaea1d60 51 private:
richardparker 1:f04bcaea1d60 52 EAHitBox* _next;
richardparker 1:f04bcaea1d60 53
richardparker 3:24fbf4dbd7e5 54 EAHitHandler* _handler;
richardparker 1:f04bcaea1d60 55
richardparker 1:f04bcaea1d60 56 unsigned short _width;
richardparker 1:f04bcaea1d60 57 unsigned short _height;
richardparker 1:f04bcaea1d60 58
richardparker 1:f04bcaea1d60 59 short _x;
richardparker 1:f04bcaea1d60 60 short _y;
richardparker 1:f04bcaea1d60 61
richardparker 3:24fbf4dbd7e5 62 bool _enabled;
richardparker 3:24fbf4dbd7e5 63
richardparker 1:f04bcaea1d60 64 ActionFunction _action;
richardparker 1:f04bcaea1d60 65
richardparker 1:f04bcaea1d60 66 };
richardparker 1:f04bcaea1d60 67
richardparker 1:f04bcaea1d60 68 #endif