Foundation classes for a basic GUI implementing simple widgets and events. (Fork for custom changes.)
Fork of SimpleGUI by
Font/Font.h@20:ef07d42ea062, 2016-10-18 (annotated)
- 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?
User | Revision | Line number | New 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 |