Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: RadarDemo 3DDemo RadarDemoT
GrFont.h@2:02b7b78e8510, 2016-11-10 (annotated)
- Committer:
- karpent
- Date:
- Thu Nov 10 15:34:43 2016 +0000
- Revision:
- 2:02b7b78e8510
DrawText() method added
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| karpent | 2:02b7b78e8510 | 1 | /* |
| karpent | 2:02b7b78e8510 | 2 | GrFont.h - System font wrapper class |
| karpent | 2:02b7b78e8510 | 3 | |
| karpent | 2:02b7b78e8510 | 4 | Copyright(c) 2016 karpent at gmail.com, MIT License |
| karpent | 2:02b7b78e8510 | 5 | |
| karpent | 2:02b7b78e8510 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the "Software"), |
| karpent | 2:02b7b78e8510 | 7 | to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| karpent | 2:02b7b78e8510 | 8 | and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions : |
| karpent | 2:02b7b78e8510 | 9 | |
| karpent | 2:02b7b78e8510 | 10 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. |
| karpent | 2:02b7b78e8510 | 11 | |
| karpent | 2:02b7b78e8510 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| karpent | 2:02b7b78e8510 | 13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR |
| karpent | 2:02b7b78e8510 | 14 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR |
| karpent | 2:02b7b78e8510 | 15 | THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| karpent | 2:02b7b78e8510 | 16 | */ |
| karpent | 2:02b7b78e8510 | 17 | |
| karpent | 2:02b7b78e8510 | 18 | #pragma once |
| karpent | 2:02b7b78e8510 | 19 | |
| karpent | 2:02b7b78e8510 | 20 | #include "mbed.h" |
| karpent | 2:02b7b78e8510 | 21 | #include "stm32746g_discovery_lcd.h" |
| karpent | 2:02b7b78e8510 | 22 | |
| karpent | 2:02b7b78e8510 | 23 | /** |
| karpent | 2:02b7b78e8510 | 24 | * GrFontType defines available font types |
| karpent | 2:02b7b78e8510 | 25 | */ |
| karpent | 2:02b7b78e8510 | 26 | typedef enum { |
| karpent | 2:02b7b78e8510 | 27 | // Used for array indexes! Don't change the numbers! |
| karpent | 2:02b7b78e8510 | 28 | Courier8 = 0, |
| karpent | 2:02b7b78e8510 | 29 | Courier12 = 1, |
| karpent | 2:02b7b78e8510 | 30 | Courier16 = 2, |
| karpent | 2:02b7b78e8510 | 31 | Courier20 = 3, |
| karpent | 2:02b7b78e8510 | 32 | Courier24 = 4, |
| karpent | 2:02b7b78e8510 | 33 | FontsNumber |
| karpent | 2:02b7b78e8510 | 34 | } GrFontType; |
| karpent | 2:02b7b78e8510 | 35 | |
| karpent | 2:02b7b78e8510 | 36 | |
| karpent | 2:02b7b78e8510 | 37 | /** |
| karpent | 2:02b7b78e8510 | 38 | * @brief System font definition class |
| karpent | 2:02b7b78e8510 | 39 | * to keep system fonts sFONT isolated. |
| karpent | 2:02b7b78e8510 | 40 | * Class will be usefull to handle custom defined fonts. |
| karpent | 2:02b7b78e8510 | 41 | */ |
| karpent | 2:02b7b78e8510 | 42 | class GrFont |
| karpent | 2:02b7b78e8510 | 43 | { |
| karpent | 2:02b7b78e8510 | 44 | |
| karpent | 2:02b7b78e8510 | 45 | public: |
| karpent | 2:02b7b78e8510 | 46 | /** |
| karpent | 2:02b7b78e8510 | 47 | * @brief Constructor sets system font of size 12 as a default font. |
| karpent | 2:02b7b78e8510 | 48 | */ |
| karpent | 2:02b7b78e8510 | 49 | GrFont(); |
| karpent | 2:02b7b78e8510 | 50 | |
| karpent | 2:02b7b78e8510 | 51 | /** |
| karpent | 2:02b7b78e8510 | 52 | * @brief Constructor sets font of type defined by GrFontType (enum EGrFont). |
| karpent | 2:02b7b78e8510 | 53 | */ |
| karpent | 2:02b7b78e8510 | 54 | GrFont(GrFontType fontType); |
| karpent | 2:02b7b78e8510 | 55 | |
| karpent | 2:02b7b78e8510 | 56 | /** |
| karpent | 2:02b7b78e8510 | 57 | * @brief Get a reference to original system font. |
| karpent | 2:02b7b78e8510 | 58 | */ |
| karpent | 2:02b7b78e8510 | 59 | sFONT * GetSystemFont(); |
| karpent | 2:02b7b78e8510 | 60 | |
| karpent | 2:02b7b78e8510 | 61 | /** |
| karpent | 2:02b7b78e8510 | 62 | * @brief Change selected font. |
| karpent | 2:02b7b78e8510 | 63 | */ |
| karpent | 2:02b7b78e8510 | 64 | void SetFontType(GrFontType fontType); |
| karpent | 2:02b7b78e8510 | 65 | |
| karpent | 2:02b7b78e8510 | 66 | /** |
| karpent | 2:02b7b78e8510 | 67 | * @brief Get selected font width in pixels. |
| karpent | 2:02b7b78e8510 | 68 | */ |
| karpent | 2:02b7b78e8510 | 69 | uint16_t Width(); |
| karpent | 2:02b7b78e8510 | 70 | |
| karpent | 2:02b7b78e8510 | 71 | /** |
| karpent | 2:02b7b78e8510 | 72 | * @brief Get selected font height in pixels. |
| karpent | 2:02b7b78e8510 | 73 | */ |
| karpent | 2:02b7b78e8510 | 74 | uint16_t Height(); |
| karpent | 2:02b7b78e8510 | 75 | |
| karpent | 2:02b7b78e8510 | 76 | private: |
| karpent | 2:02b7b78e8510 | 77 | |
| karpent | 2:02b7b78e8510 | 78 | static const sFONT * _fontType[FontsNumber]; |
| karpent | 2:02b7b78e8510 | 79 | |
| karpent | 2:02b7b78e8510 | 80 | GrFontType _fontTypeSelected; |
| karpent | 2:02b7b78e8510 | 81 | }; |