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

Who changed what in which revision?

UserRevisionLine numberNew contents of line
richardparker 4:f8f7f4f9c58d 1 // Copyright 2010 Richard Parker
richardparker 4:f8f7f4f9c58d 2
richardparker 4:f8f7f4f9c58d 3 #ifndef MBED_EACOMPASS_H
richardparker 4:f8f7f4f9c58d 4 #define MBED_EACOMPASS_H
richardparker 4:f8f7f4f9c58d 5
richardparker 4:f8f7f4f9c58d 6 #include "mbed.h"
richardparker 4:f8f7f4f9c58d 7
richardparker 4:f8f7f4f9c58d 8 #include "EAWidget.h"
richardparker 4:f8f7f4f9c58d 9
richardparker 4:f8f7f4f9c58d 10 class EALCD;
richardparker 4:f8f7f4f9c58d 11
richardparker 4:f8f7f4f9c58d 12 /**
richardparker 4:f8f7f4f9c58d 13 * Class to handle displaying a button on screen with hitbox.
richardparker 4:f8f7f4f9c58d 14 * @author Richard Parker
richardparker 4:f8f7f4f9c58d 15 */
richardparker 4:f8f7f4f9c58d 16 class EACompass: public EAWidget
richardparker 4:f8f7f4f9c58d 17 {
richardparker 4:f8f7f4f9c58d 18 public:
richardparker 4:f8f7f4f9c58d 19 EACompass( short x = 0,
richardparker 4:f8f7f4f9c58d 20 short y = 0,
richardparker 4:f8f7f4f9c58d 21 unsigned short diameter = 0,
richardparker 4:f8f7f4f9c58d 22 unsigned short angle = 0);
richardparker 4:f8f7f4f9c58d 23
richardparker 4:f8f7f4f9c58d 24 ~EACompass();
richardparker 4:f8f7f4f9c58d 25
richardparker 4:f8f7f4f9c58d 26 virtual void paint(EALCD& lcd);
richardparker 4:f8f7f4f9c58d 27 void update(EALCD& lcd, float angle);
richardparker 4:f8f7f4f9c58d 28
richardparker 4:f8f7f4f9c58d 29 inline void setAngle(float angle) { _angle = angle; }
richardparker 4:f8f7f4f9c58d 30 inline float angle() { return _angle; }
richardparker 4:f8f7f4f9c58d 31
richardparker 4:f8f7f4f9c58d 32 inline void setDiameter(unsigned short diameter) { _diameter = diameter; EAWidget::setWidth(diameter); EAWidget::setHeight(diameter);}
richardparker 4:f8f7f4f9c58d 33 inline unsigned short diameter() { return _diameter; }
richardparker 4:f8f7f4f9c58d 34
richardparker 4:f8f7f4f9c58d 35 inline virtual void setWidth(unsigned short w) { setDiameter(w); }
richardparker 4:f8f7f4f9c58d 36 inline virtual void setHeight(unsigned short h) { setDiameter(h); }
richardparker 4:f8f7f4f9c58d 37
richardparker 4:f8f7f4f9c58d 38 private:
richardparker 4:f8f7f4f9c58d 39 float _angle;
richardparker 4:f8f7f4f9c58d 40 unsigned short _diameter;
richardparker 4:f8f7f4f9c58d 41
richardparker 4:f8f7f4f9c58d 42 void _drawPointer(EALCD& lcd);
richardparker 7:6cf21b018420 43 void _drawAngle(EALCD& lcd);
richardparker 4:f8f7f4f9c58d 44
richardparker 4:f8f7f4f9c58d 45 };
richardparker 4:f8f7f4f9c58d 46
richardparker 4:f8f7f4f9c58d 47 #endif