From 11cc82a7ac38768ff5d5f84d05201c269f5023b2 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 8 Feb 2016 21:41:13 +0100 Subject: [PATCH] [Horus] UI bugfix --- radio/src/gui/horus/layout.h | 19 ++++++++++++------- radio/src/gui/horus/layouts/layout2+1.cpp | 2 +- radio/src/gui/horus/layouts/layout2x2.cpp | 2 +- radio/src/gui/horus/layouts/layout2x4.cpp | 2 +- radio/src/gui/horus/screens_setup.cpp | 2 +- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/radio/src/gui/horus/layout.h b/radio/src/gui/horus/layout.h index e5a876e34..f56089ceb 100644 --- a/radio/src/gui/horus/layout.h +++ b/radio/src/gui/horus/layout.h @@ -93,33 +93,37 @@ void registerLayout(const LayoutFactory * factory); class LayoutFactory { public: - LayoutFactory(const char * name, const char * bitmap): - name(name), - bitmap(bitmap) + LayoutFactory(const char * name): + name(name) { registerLayout(this); } const char * getName() const { return name; } - const char * getBitmap() const { return bitmap; } + virtual void drawThumb(uint16_t x, uint16_t y, uint32_t flags) = 0; virtual const ZoneOption * getOptions() const = 0; virtual Layout * create(Layout::PersistentData * persistentData) const = 0; virtual Layout * load(Layout::PersistentData * persistentData) const = 0; protected: const char * name; - const char * bitmap; }; template class BaseLayoutFactory: public LayoutFactory { public: - BaseLayoutFactory(const char * name, const char * bitmap, const ZoneOption * options): - LayoutFactory(name, bitmap), + BaseLayoutFactory(const char * name, const uint8_t * bitmap, const ZoneOption * options): + LayoutFactory(name), + bitmap(bitmap), options(options) { } + virtual void drawThumb(uint16_t x, uint16_t y, uint32_t flags) + { + extern void lcdDrawBitmapPattern(int x, int y, const uint8_t * bitmap, uint32_t flags, int width=0, int offset=0); + lcdDrawBitmapPattern(x, y, bitmap, flags); + } virtual const ZoneOption * getOptions() const { return options; @@ -140,6 +144,7 @@ class BaseLayoutFactory: public LayoutFactory } protected: + const uint8_t * bitmap; const ZoneOption * options; }; diff --git a/radio/src/gui/horus/layouts/layout2+1.cpp b/radio/src/gui/horus/layouts/layout2+1.cpp index 9969ef34a..15a9fa328 100644 --- a/radio/src/gui/horus/layouts/layout2+1.cpp +++ b/radio/src/gui/horus/layouts/layout2+1.cpp @@ -100,4 +100,4 @@ void Layout2P1::refresh(bool setup) Layout::refresh(setup); } -BaseLayoutFactory layout2P1("Layout2P1", "", Layout2P1::options); +BaseLayoutFactory layout2P1("Layout2P1", NULL, Layout2P1::options); diff --git a/radio/src/gui/horus/layouts/layout2x2.cpp b/radio/src/gui/horus/layouts/layout2x2.cpp index f362c3f48..92959bdc5 100644 --- a/radio/src/gui/horus/layouts/layout2x2.cpp +++ b/radio/src/gui/horus/layouts/layout2x2.cpp @@ -83,4 +83,4 @@ void Layout2x2::refresh(bool setup) Layout::refresh(setup); } -BaseLayoutFactory layout2x2("Layout2x2", "", Layout2x2::options); +BaseLayoutFactory layout2x2("Layout2x2", NULL, Layout2x2::options); diff --git a/radio/src/gui/horus/layouts/layout2x4.cpp b/radio/src/gui/horus/layouts/layout2x4.cpp index 942c9f4c8..04a9d62af 100644 --- a/radio/src/gui/horus/layouts/layout2x4.cpp +++ b/radio/src/gui/horus/layouts/layout2x4.cpp @@ -116,4 +116,4 @@ void Layout2x4::refresh(bool setup) Layout::refresh(setup); } -BaseLayoutFactory layout2x4("Layout2x4", "", Layout2x4::options); +BaseLayoutFactory layout2x4("Layout2x4", NULL, Layout2x4::options); diff --git a/radio/src/gui/horus/screens_setup.cpp b/radio/src/gui/horus/screens_setup.cpp index 1280afc0e..8d251d3eb 100644 --- a/radio/src/gui/horus/screens_setup.cpp +++ b/radio/src/gui/horus/screens_setup.cpp @@ -44,7 +44,7 @@ ZoneOptionValue editZoneOption(coord_t y, const ZoneOption * option, ZoneOptionV } } else if (option->type == ZoneOption::String) { - editName(SCREENS_SETUP_2ND_COLUMN, y, value.stringValue, sizeof(value.stringValue), event, attr|EE_MODEL); + editName(SCREENS_SETUP_2ND_COLUMN, y, value.stringValue, sizeof(value.stringValue), event, attr); } else if (option->type == ZoneOption::TextSize) { lcdDrawTextAtIndex(SCREENS_SETUP_2ND_COLUMN, y, "\010StandardTiny\0 Small\0 Mid\0 Double", value.unsignedValue, attr);