From bae0d4bcb6a9aca4e0ad1680347286061af3cf50 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Thu, 2 Apr 2020 22:09:03 +0200 Subject: [PATCH] Possibility to scale the bitmap in StaticBitmap widget --- radio/src/thirdparty/libopenui/src/static.h | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/radio/src/thirdparty/libopenui/src/static.h b/radio/src/thirdparty/libopenui/src/static.h index 767bd521b..acfd102d6 100644 --- a/radio/src/thirdparty/libopenui/src/static.h +++ b/radio/src/thirdparty/libopenui/src/static.h @@ -67,20 +67,23 @@ class Subtitle: public StaticText { class StaticBitmap: public Window { public: - StaticBitmap(Window * parent, const rect_t & rect): - Window(parent, rect) + StaticBitmap(Window * parent, const rect_t & rect, bool scale = false): + Window(parent, rect), + scale(scale) { } - StaticBitmap(Window * parent, const rect_t & rect, const char * filename): + StaticBitmap(Window * parent, const rect_t & rect, const char * filename, bool scale = false): Window(parent, rect), - bitmap(BitmapBuffer::loadBitmap(filename)) + bitmap(BitmapBuffer::loadBitmap(filename)), + scale(scale) { } - StaticBitmap(Window * parent, const rect_t & rect, const BitmapBuffer * bitmap): + StaticBitmap(Window * parent, const rect_t & rect, const BitmapBuffer * bitmap, bool scale = false): Window(parent, rect), - bitmap(bitmap) + bitmap(bitmap), + scale(scale) { } @@ -106,12 +109,16 @@ class StaticBitmap: public Window { void paint(BitmapBuffer * dc) override { if (bitmap) { - dc->drawBitmap((width() - bitmap->width()) / 2, (height() - bitmap->height()) / 2, bitmap); + if (scale) + dc->drawScaledBitmap(bitmap, 0, 0, width(), height()); + else + dc->drawBitmap((width() - bitmap->width()) / 2, (height() - bitmap->height()) / 2, bitmap); } } protected: const BitmapBuffer * bitmap = nullptr; + bool scale = false; }; class DynamicText: public StaticText