Foundation classes for a basic GUI implementing simple widgets and events. (Fork for custom changes.)

Fork of SimpleGUI by Duncan McIntyre

Committer:
elh
Date:
Tue Oct 18 19:43:15 2016 +0000
Revision:
20:ef07d42ea062
Parent:
8:a460cabc85ac
Initialize Textwidgets _text to NULL preventing crash if widget is draw until a text was set.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
duncanFrance 7:303850a4b30c 1 #ifndef SIMPLEGUI_FONT_H
duncanFrance 7:303850a4b30c 2 #define SIMPLEGUI_FONT_H
duncanFrance 7:303850a4b30c 3
duncanFrance 7:303850a4b30c 4 #include "mbed.h"
duncanFrance 7:303850a4b30c 5
duncanFrance 7:303850a4b30c 6 /**
duncanFrance 7:303850a4b30c 7 * Interface defining a Font
duncanFrance 7:303850a4b30c 8 * This is used by both the UniGraphic and FastFont implementations.
duncanFrance 7:303850a4b30c 9 *
duncanFrance 7:303850a4b30c 10 **/
duncanFrance 7:303850a4b30c 11 class Font
duncanFrance 7:303850a4b30c 12 {
duncanFrance 7:303850a4b30c 13 public:
duncanFrance 7:303850a4b30c 14
duncanFrance 7:303850a4b30c 15 Font() : _zoomX(1), _zoomY(1) {};
duncanFrance 7:303850a4b30c 16
duncanFrance 7:303850a4b30c 17 virtual uint8_t firstAscii() = 0;
duncanFrance 7:303850a4b30c 18 virtual uint8_t lastAscii() = 0;
duncanFrance 7:303850a4b30c 19
duncanFrance 7:303850a4b30c 20 /**
duncanFrance 7:303850a4b30c 21 * The unzoomed width of the character
duncanFrance 7:303850a4b30c 22 **/
duncanFrance 7:303850a4b30c 23 virtual uint8_t widthOf(char c) = 0;
duncanFrance 7:303850a4b30c 24 virtual uint8_t zoomedWidthOf(char c) =0;
duncanFrance 7:303850a4b30c 25
duncanFrance 7:303850a4b30c 26 /**
duncanFrance 7:303850a4b30c 27 * The unzoomed height of a character
duncanFrance 7:303850a4b30c 28 **/
duncanFrance 7:303850a4b30c 29 virtual uint8_t height() =0;
duncanFrance 7:303850a4b30c 30 virtual uint8_t zoomedHeight() =0;
duncanFrance 7:303850a4b30c 31
duncanFrance 7:303850a4b30c 32 virtual bool isProportional() =0;
duncanFrance 7:303850a4b30c 33
duncanFrance 7:303850a4b30c 34 bool contains(char c) {
duncanFrance 7:303850a4b30c 35 return c>= firstAscii() && c <= lastAscii();
duncanFrance 7:303850a4b30c 36 }
duncanFrance 7:303850a4b30c 37
duncanFrance 7:303850a4b30c 38 void setZoom(uint8_t xmul, uint8_t ymul) {
duncanFrance 7:303850a4b30c 39 _zoomX=((xmul==0) ? 1:xmul);
duncanFrance 7:303850a4b30c 40 _zoomY=((ymul==0) ? 1:ymul);
duncanFrance 7:303850a4b30c 41 }
duncanFrance 7:303850a4b30c 42
duncanFrance 7:303850a4b30c 43 uint8_t zoomX() {
duncanFrance 7:303850a4b30c 44 return _zoomX;
duncanFrance 7:303850a4b30c 45 }
duncanFrance 7:303850a4b30c 46
duncanFrance 7:303850a4b30c 47 uint8_t zoomY() {
duncanFrance 7:303850a4b30c 48 return _zoomY;
duncanFrance 7:303850a4b30c 49 }
duncanFrance 7:303850a4b30c 50
duncanFrance 7:303850a4b30c 51 protected:
duncanFrance 7:303850a4b30c 52
duncanFrance 7:303850a4b30c 53 uint8_t _zoomX, _zoomY;
duncanFrance 7:303850a4b30c 54 };
duncanFrance 7:303850a4b30c 55
duncanFrance 7:303850a4b30c 56 #endif