From: Felix Domke Date: Mon, 24 Apr 2006 22:58:14 +0000 (+0000) Subject: allow using a pixmap as background for slider X-Git-Tag: 2.6.0~3573 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/e8ae3b7fbbf12a0b5b87716f980ae287f330b85d allow using a pixmap as background for slider --- diff --git a/lib/gui/eslider.cpp b/lib/gui/eslider.cpp index 37b67acf..f699389a 100644 --- a/lib/gui/eslider.cpp +++ b/lib/gui/eslider.cpp @@ -5,6 +5,12 @@ eSlider::eSlider(eWidget *parent) { } +void eSlider::setPixmap(gPixmap *pixmap) +{ + m_pixmap = pixmap; + event(evtChangedSlider); +} + void eSlider::setBorderWidth(int pixel) { m_border_width=pixel; @@ -32,7 +38,11 @@ int eSlider::event(int event, void *data, void *data2) getStyle(style); style->paintBackground(painter, ePoint(0,0), s); style->setStyle(painter, eWindowStyle::styleLabel); // TODO - own style - painter.fill(m_currently_filled); + + if (!m_pixmap) + painter.fill(m_currently_filled); + else + painter.blit(m_pixmap, ePoint(0, 0), m_currently_filled.extends); // border if (m_have_border_color) diff --git a/lib/gui/eslider.h b/lib/gui/eslider.h index 145cc165..303977a2 100644 --- a/lib/gui/eslider.h +++ b/lib/gui/eslider.h @@ -14,6 +14,7 @@ public: void setOrientation(int orientation); void setBorderWidth(int pixel); void setBorderColor(const gRGB &color); + void setPixmap(gPixmap *pixmap); protected: int event(int event, void *data=0, void *data2=0); private: @@ -23,6 +24,7 @@ private: }; bool m_have_border_color; int m_min, m_max, m_value, m_start, m_orientation, m_border_width; + ePtr m_pixmap; gRegion m_currently_filled; gRGB m_border_color;