GUI parts for DISCO-F746NG. GuiBase, Button, ButtonGroup, Label, BlinkLabel, NumericLabel, SeekBar, SeekbarGroup

Dependents:   F746_SD_GraphicEqualizer_ren0620

Fork of F746_GUI by 不韋 呂

Label.cpp

Committer:
MikamiUitOpen
Date:
2016-03-31
Revision:
0:a2686ef737c2
Child:
1:d1655f3c8717

File content as of revision 0:a2686ef737c2:

//-----------------------------------------------------------
//  Label class
//
//  2016/03/29, Copyright (c) 2016 MIKAMI, Naoki
//-----------------------------------------------------------

#include "Label.hpp"

namespace Mikami
{
    // Constructor
    Label::Label(uint16_t x, uint16_t y,
                 const string str, TextAlignMode mode, sFONT &fonts,
                 uint32_t textColor, uint32_t backColor)
        : GuiBase(x, y, fonts, textColor, backColor),
          MODE_(mode)
    {
        length_ = str.length();
        lcd_.SetBackColor(backColor);
        lcd_.SetTextColor(textColor);
        lcd_.SetFont(&fonts);
        DrawString(PosX(x), y, str);
    }

    void Label::Draw(const string str)
    {
        // Erase previously-drawn string
        lcd_.SetTextColor(BACK_COLOR_);
        length_ = (length_ > str.length()) ? length_ : str.length();
        lcd_.FillRect(PosX(X_), Y_, FONTS_->Width*length_+1, FONTS_->Height);
        lcd_.SetTextColor(TEXT_COLOR_);

        // Draw new string
        length_ = str.length();
        lcd_.SetFont(FONTS_);
        DrawString(PosX(X_), Y_, str);
    }
}