Richard Parker / EALCD
Committer:
richardparker
Date:
Mon Nov 01 13:07:40 2010 +0000
Revision:
7:6cf21b018420
Parent:
3:24fbf4dbd7e5
Embedded Artists LCD panel:- Version 0.7

Who changed what in which revision?

UserRevisionLine numberNew contents of line
richardparker 3:24fbf4dbd7e5 1 // Copyright 2010 Richard Parker
richardparker 3:24fbf4dbd7e5 2
richardparker 3:24fbf4dbd7e5 3 #ifndef MBED_EABUTTON_H
richardparker 3:24fbf4dbd7e5 4 #define MBED_EABUTTON_H
richardparker 3:24fbf4dbd7e5 5
richardparker 3:24fbf4dbd7e5 6 #include "mbed.h"
richardparker 7:6cf21b018420 7 #include <string>
richardparker 3:24fbf4dbd7e5 8
richardparker 3:24fbf4dbd7e5 9 #include "EAWidget.h"
richardparker 3:24fbf4dbd7e5 10
richardparker 3:24fbf4dbd7e5 11 class EALCD;
richardparker 3:24fbf4dbd7e5 12 class EAHitBox;
richardparker 3:24fbf4dbd7e5 13 class EATouchManager;
richardparker 3:24fbf4dbd7e5 14 class EAHitHandler;
richardparker 3:24fbf4dbd7e5 15
richardparker 3:24fbf4dbd7e5 16 /**
richardparker 3:24fbf4dbd7e5 17 * Class to handle displaying a button on screen with hitbox.
richardparker 3:24fbf4dbd7e5 18 * @author Richard Parker
richardparker 3:24fbf4dbd7e5 19 */
richardparker 3:24fbf4dbd7e5 20 class EAButton: public EAWidget
richardparker 3:24fbf4dbd7e5 21 {
richardparker 3:24fbf4dbd7e5 22 public:
richardparker 3:24fbf4dbd7e5 23 EAButton( EATouchManager& manager,
richardparker 3:24fbf4dbd7e5 24 short x = 0,
richardparker 3:24fbf4dbd7e5 25 short y = 0,
richardparker 3:24fbf4dbd7e5 26 unsigned short width = 0,
richardparker 3:24fbf4dbd7e5 27 unsigned short height = 0,
richardparker 3:24fbf4dbd7e5 28 char* text = NULL,
richardparker 3:24fbf4dbd7e5 29 EAHitHandler* handler = NULL);
richardparker 3:24fbf4dbd7e5 30
richardparker 3:24fbf4dbd7e5 31 ~EAButton();
richardparker 3:24fbf4dbd7e5 32
richardparker 3:24fbf4dbd7e5 33 virtual void paint(EALCD& lcd);
richardparker 3:24fbf4dbd7e5 34
richardparker 7:6cf21b018420 35 bool setText(const std::string& text);
richardparker 7:6cf21b018420 36 inline const string& text() const { return _text; }
richardparker 3:24fbf4dbd7e5 37
richardparker 3:24fbf4dbd7e5 38 EAHitHandler* handler() const;
richardparker 3:24fbf4dbd7e5 39 void setHandler(EAHitHandler* handler);
richardparker 3:24fbf4dbd7e5 40
richardparker 3:24fbf4dbd7e5 41 bool enabled() const;
richardparker 3:24fbf4dbd7e5 42 void setEnabled(bool yes);
richardparker 3:24fbf4dbd7e5 43
richardparker 3:24fbf4dbd7e5 44 inline virtual void setX(short x) { EAWidget::setX(x); _updateHitBox(); }
richardparker 3:24fbf4dbd7e5 45 inline virtual void setY(short y) { EAWidget::setY(y); _updateHitBox(); }
richardparker 3:24fbf4dbd7e5 46
richardparker 3:24fbf4dbd7e5 47 inline virtual void setWidth(unsigned short w) { EAWidget::setWidth(w); _updateHitBox(); }
richardparker 3:24fbf4dbd7e5 48 inline virtual void setHeight(unsigned short h) { EAWidget::setHeight(h); _updateHitBox(); }
richardparker 3:24fbf4dbd7e5 49
richardparker 3:24fbf4dbd7e5 50 inline EAHitBox* hitBox() const { return _box; }
richardparker 3:24fbf4dbd7e5 51
richardparker 3:24fbf4dbd7e5 52 private:
richardparker 3:24fbf4dbd7e5 53 EATouchManager& _manager;
richardparker 3:24fbf4dbd7e5 54 EAHitBox* _box;
richardparker 3:24fbf4dbd7e5 55
richardparker 7:6cf21b018420 56 std::string _text;
richardparker 3:24fbf4dbd7e5 57
richardparker 3:24fbf4dbd7e5 58 void _updateHitBox();
richardparker 3:24fbf4dbd7e5 59 };
richardparker 3:24fbf4dbd7e5 60
richardparker 3:24fbf4dbd7e5 61 #endif