Spectral analysis.
Dependencies: Array_Matrix BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG
Fork of F746_GUI by
Label.cpp@34:671f9e9174f3, 2017-08-30 (annotated)
- Committer:
- mladjo1993
- Date:
- Wed Aug 30 07:45:56 2017 +0000
- Revision:
- 34:671f9e9174f3
- Parent:
- 33:f8dbcf3fee79
Final version.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:a2686ef737c2 | 1 | //----------------------------------------------------------- |
MikamiUitOpen | 0:a2686ef737c2 | 2 | // Label class |
MikamiUitOpen | 0:a2686ef737c2 | 3 | // |
MikamiUitOpen | 9:c379410bda15 | 4 | // 2016/04/24, Copyright (c) 2016 MIKAMI, Naoki |
MikamiUitOpen | 0:a2686ef737c2 | 5 | //----------------------------------------------------------- |
MikamiUitOpen | 0:a2686ef737c2 | 6 | |
MikamiUitOpen | 0:a2686ef737c2 | 7 | #include "Label.hpp" |
MikamiUitOpen | 0:a2686ef737c2 | 8 | |
mladjo1993 | 33:f8dbcf3fee79 | 9 | namespace etf |
MikamiUitOpen | 0:a2686ef737c2 | 10 | { |
MikamiUitOpen | 0:a2686ef737c2 | 11 | // Constructor |
MikamiUitOpen | 0:a2686ef737c2 | 12 | Label::Label(uint16_t x, uint16_t y, |
MikamiUitOpen | 0:a2686ef737c2 | 13 | const string str, TextAlignMode mode, sFONT &fonts, |
MikamiUitOpen | 0:a2686ef737c2 | 14 | uint32_t textColor, uint32_t backColor) |
MikamiUitOpen | 0:a2686ef737c2 | 15 | : GuiBase(x, y, fonts, textColor, backColor), |
MikamiUitOpen | 1:d1655f3c8717 | 16 | MODE_(mode), STR_(str) |
MikamiUitOpen | 0:a2686ef737c2 | 17 | { |
MikamiUitOpen | 0:a2686ef737c2 | 18 | length_ = str.length(); |
MikamiUitOpen | 0:a2686ef737c2 | 19 | lcd_.SetBackColor(backColor); |
MikamiUitOpen | 0:a2686ef737c2 | 20 | lcd_.SetTextColor(textColor); |
MikamiUitOpen | 0:a2686ef737c2 | 21 | lcd_.SetFont(&fonts); |
MikamiUitOpen | 0:a2686ef737c2 | 22 | DrawString(PosX(x), y, str); |
MikamiUitOpen | 0:a2686ef737c2 | 23 | } |
MikamiUitOpen | 0:a2686ef737c2 | 24 | |
MikamiUitOpen | 1:d1655f3c8717 | 25 | void Label::Draw(const string str, uint32_t textColor) |
MikamiUitOpen | 0:a2686ef737c2 | 26 | { |
MikamiUitOpen | 0:a2686ef737c2 | 27 | // Erase previously-drawn string |
MikamiUitOpen | 0:a2686ef737c2 | 28 | lcd_.SetTextColor(BACK_COLOR_); |
MikamiUitOpen | 0:a2686ef737c2 | 29 | length_ = (length_ > str.length()) ? length_ : str.length(); |
MikamiUitOpen | 0:a2686ef737c2 | 30 | lcd_.FillRect(PosX(X_), Y_, FONTS_->Width*length_+1, FONTS_->Height); |
MikamiUitOpen | 0:a2686ef737c2 | 31 | |
MikamiUitOpen | 0:a2686ef737c2 | 32 | // Draw new string |
MikamiUitOpen | 0:a2686ef737c2 | 33 | length_ = str.length(); |
MikamiUitOpen | 0:a2686ef737c2 | 34 | lcd_.SetFont(FONTS_); |
MikamiUitOpen | 1:d1655f3c8717 | 35 | lcd_.SetTextColor(textColor); |
MikamiUitOpen | 0:a2686ef737c2 | 36 | DrawString(PosX(X_), Y_, str); |
MikamiUitOpen | 0:a2686ef737c2 | 37 | } |
MikamiUitOpen | 9:c379410bda15 | 38 | |
MikamiUitOpen | 9:c379410bda15 | 39 | uint16_t Label::PosX(uint16_t x) |
MikamiUitOpen | 9:c379410bda15 | 40 | { |
MikamiUitOpen | 9:c379410bda15 | 41 | if (MODE_ == LEFT) return x; |
MikamiUitOpen | 9:c379410bda15 | 42 | else |
MikamiUitOpen | 9:c379410bda15 | 43 | { |
MikamiUitOpen | 9:c379410bda15 | 44 | if (MODE_ == CENTER) |
MikamiUitOpen | 9:c379410bda15 | 45 | return x - length_*FONTS_->Width/2; |
MikamiUitOpen | 9:c379410bda15 | 46 | else |
MikamiUitOpen | 9:c379410bda15 | 47 | return x - length_*FONTS_->Width; |
MikamiUitOpen | 9:c379410bda15 | 48 | } |
MikamiUitOpen | 9:c379410bda15 | 49 | } |
MikamiUitOpen | 0:a2686ef737c2 | 50 | } |