Tiny graphics library for STM32F746G-DISCO board

Dependents:   RadarDemo 3DDemo RadarDemoT

Committer:
karpent
Date:
Fri Nov 11 12:05:16 2016 +0000
Revision:
3:1ddc4aa1e5cb
Parent:
2:02b7b78e8510
Missing method DrawChar() added, DrawText() corrected.

Who changed what in which revision?

UserRevisionLine numberNew 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 };