summaryrefslogtreecommitdiff
path: root/Layout
diff options
context:
space:
mode:
Diffstat (limited to 'Layout')
-rw-r--r--Layout/Layout.cpp32
-rw-r--r--Layout/Layout.h9
-rw-r--r--Layout/LayoutStartup.cpp12
3 files changed, 39 insertions, 14 deletions
diff --git a/Layout/Layout.cpp b/Layout/Layout.cpp
index b2ca942..a38cc4f 100644
--- a/Layout/Layout.cpp
+++ b/Layout/Layout.cpp
@@ -35,15 +35,21 @@ void Layout::endUpdate() {
_lcd->endUpdate();
}
-bool Layout::writeField(uint8_t col, uint8_t row, std::string field, bool apply) {
- return writeField(col, row, field.c_str(), field.size(), apply);
+bool Layout::writeLabel(const Label& label) {
+ return writeText(label._col, label._row, label._value.c_str(), label._value.size());
}
-bool Layout::writeField(uint8_t col, uint8_t row, const char* field, size_t size, bool apply) {
+bool Layout::writeField(const Field& field, const std::string& value, bool apply) {
+ bool ret;
+ std::string v = value;
+
if (apply)
startUpdate();
- _lcd->writeText(col*6, row, font_6x8, field, size);
+ while (v.size() < field._maxSize)
+ v += " ";
+
+ ret = writeText(field._col, field._row, v.c_str(), field._maxSize);
if (apply)
endUpdate();
@@ -51,15 +57,29 @@ bool Layout::writeField(uint8_t col, uint8_t row, const char* field, size_t size
return true;
}
-bool Layout::writeImage(uint8_t col, uint8_t row, const uint8_t* bmp, bool apply) {
+bool Layout::writeImage(const Image& image, bool apply) {
+ bool ret;
+
if (apply)
startUpdate();
- _lcd->writeBitmap(col, row, bmp);
+ ret = writeBmp(image._row, image._col, image._bmp);
if (apply)
endUpdate();
+ return ret;
+}
+
+bool Layout::writeText(uint8_t col, uint8_t row, const char* value, size_t size) {
+ _lcd->writeText(col*6, row, font_6x8, value, size);
+
+ return true;
+}
+
+bool Layout::writeBmp(uint8_t col, uint8_t row, const uint8_t* bmp) {
+ _lcd->writeBitmap(col*6, row, bmp);
+
return true;
}
diff --git a/Layout/Layout.h b/Layout/Layout.h
index 5b25458..5e7ece2 100644
--- a/Layout/Layout.h
+++ b/Layout/Layout.h
@@ -42,11 +42,14 @@ class Layout {
void clear();
void startUpdate();
void endUpdate();
- bool writeField(uint8_t col, uint8_t row, std::string field, bool apply = false);
- bool writeField(uint8_t col, uint8_t row, const char* field, size_t size, bool apply = false);
- bool writeImage(uint8_t col, uint8_t row, const uint8_t* bmp, bool apply = false);
+ bool writeLabel(const Label& label);
+ bool writeField(const Field& field, const std::string& value, bool apply = false);
+ bool writeImage(const Image& image, bool apply = false);
private:
+ bool writeText(uint8_t col, uint8_t row, const char* value, size_t size);
+ bool writeBmp(uint8_t col, uint8_t row, const uint8_t* bmp);
+
DOGS102* _lcd;
};
diff --git a/Layout/LayoutStartup.cpp b/Layout/LayoutStartup.cpp
index ea339d6..850ea50 100644
--- a/Layout/LayoutStartup.cpp
+++ b/Layout/LayoutStartup.cpp
@@ -14,14 +14,16 @@ LayoutStartup::LayoutStartup(DOGS102* lcd)
LayoutStartup::~LayoutStartup() {}
void LayoutStartup::display() {
+ std::string version = MTDOT_BOX_VERSION;
+
clear();
startUpdate();
- writeImage(_iLogo._col, _iLogo._row, _iLogo._bmp);
- writeField(_lName._col, _lName._row, _lName._value);
- writeField(_lInfo._col, _lInfo._row, _lInfo._value);
- writeField(_lVersion._col, _lVersion._row, _lVersion._value);
- writeField(_fVersion._col, _fVersion._row, MTDOT_BOX_VERSION, sizeof(MTDOT_BOX_VERSION));
+ writeImage(_iLogo);
+ writeLabel(_lName);
+ writeLabel(_lInfo);
+ writeLabel(_lVersion);
+ writeField(_fVersion, version);
endUpdate();
}