SPKT

Dependents:   Player

Committer:
phungductung
Date:
Fri Jun 07 05:06:42 2019 +0000
Revision:
0:4e245f4bc8ac
spkt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
phungductung 0:4e245f4bc8ac 1 //-----------------------------------------------------------
phungductung 0:4e245f4bc8ac 2 // NumericLabel class -- derived class of Label class
phungductung 0:4e245f4bc8ac 3 //
phungductung 0:4e245f4bc8ac 4 // 2016/11/07, Copyright (c) 2016 MIKAMI, Naoki
phungductung 0:4e245f4bc8ac 5 //-----------------------------------------------------------
phungductung 0:4e245f4bc8ac 6
phungductung 0:4e245f4bc8ac 7 #ifndef F746_NUMERIC_LABEL_HPP
phungductung 0:4e245f4bc8ac 8 #define F746_NUMERIC_LABEL_HPP
phungductung 0:4e245f4bc8ac 9
phungductung 0:4e245f4bc8ac 10 #include "Label.hpp"
phungductung 0:4e245f4bc8ac 11
phungductung 0:4e245f4bc8ac 12 namespace Mikami
phungductung 0:4e245f4bc8ac 13 {
phungductung 0:4e245f4bc8ac 14 template <typename T> class NumericLabel : public Label
phungductung 0:4e245f4bc8ac 15 {
phungductung 0:4e245f4bc8ac 16 public:
phungductung 0:4e245f4bc8ac 17 // Constructor without drawing value
phungductung 0:4e245f4bc8ac 18 NumericLabel(uint16_t x, uint16_t y,
phungductung 0:4e245f4bc8ac 19 const char fmt[],
phungductung 0:4e245f4bc8ac 20 TextAlignMode mode = LEFT,
phungductung 0:4e245f4bc8ac 21 sFONT &fonts = Font12,
phungductung 0:4e245f4bc8ac 22 uint32_t textColor = GuiBase::ENUM_TEXT,
phungductung 0:4e245f4bc8ac 23 uint32_t backColor = GuiBase::ENUM_BACK)
phungductung 0:4e245f4bc8ac 24 : Label(x, y, "", mode, fonts, textColor, backColor), FMT_(fmt) {}
phungductung 0:4e245f4bc8ac 25
phungductung 0:4e245f4bc8ac 26 // Constructor with drawing value
phungductung 0:4e245f4bc8ac 27 NumericLabel(uint16_t x, uint16_t y,
phungductung 0:4e245f4bc8ac 28 const char fmt[], T val,
phungductung 0:4e245f4bc8ac 29 TextAlignMode mode = LEFT,
phungductung 0:4e245f4bc8ac 30 sFONT &fonts = Font12,
phungductung 0:4e245f4bc8ac 31 uint32_t textColor = GuiBase::ENUM_TEXT,
phungductung 0:4e245f4bc8ac 32 uint32_t backColor = GuiBase::ENUM_BACK)
phungductung 0:4e245f4bc8ac 33 : Label(x, y, "", mode, fonts, textColor, backColor), FMT_(fmt)
phungductung 0:4e245f4bc8ac 34 { Draw(val); }
phungductung 0:4e245f4bc8ac 35
phungductung 0:4e245f4bc8ac 36 // Draw value using format specified in constructor
phungductung 0:4e245f4bc8ac 37 void Draw(T val)
phungductung 0:4e245f4bc8ac 38 {
phungductung 0:4e245f4bc8ac 39 sprintf(str_, FMT_, val);
phungductung 0:4e245f4bc8ac 40 Label::Draw(str_);
phungductung 0:4e245f4bc8ac 41 }
phungductung 0:4e245f4bc8ac 42
phungductung 0:4e245f4bc8ac 43 // Draw value
phungductung 0:4e245f4bc8ac 44 void Draw(const char fmt[], T val)
phungductung 0:4e245f4bc8ac 45 {
phungductung 0:4e245f4bc8ac 46 sprintf(str_, fmt, val);
phungductung 0:4e245f4bc8ac 47 Label::Draw(str_);
phungductung 0:4e245f4bc8ac 48 }
phungductung 0:4e245f4bc8ac 49
phungductung 0:4e245f4bc8ac 50 // Draw previous value with specified color
phungductung 0:4e245f4bc8ac 51 void Redraw(uint32_t color)
phungductung 0:4e245f4bc8ac 52 { Label::Draw(str_, color); }
phungductung 0:4e245f4bc8ac 53
phungductung 0:4e245f4bc8ac 54 private:
phungductung 0:4e245f4bc8ac 55 const char *const FMT_;
phungductung 0:4e245f4bc8ac 56 char str_[81];
phungductung 0:4e245f4bc8ac 57
phungductung 0:4e245f4bc8ac 58 // disallow copy constructor and assignment operator
phungductung 0:4e245f4bc8ac 59 NumericLabel(const NumericLabel&);
phungductung 0:4e245f4bc8ac 60 NumericLabel& operator=(const NumericLabel&);
phungductung 0:4e245f4bc8ac 61 };
phungductung 0:4e245f4bc8ac 62 }
phungductung 0:4e245f4bc8ac 63 #endif // F746_NUMERIC_LABEL_HPP
phungductung 0:4e245f4bc8ac 64