diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-04-24 22:58:14 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-04-24 22:58:14 +0000 |
| commit | e8ae3b7fbbf12a0b5b87716f980ae287f330b85d (patch) | |
| tree | ad13e32b1afd51b142da519644f1ecbf16f0473c | |
| parent | ad88a7130bd75fa1f932d4ae45a8ebee78df4fc3 (diff) | |
| download | enigma2-e8ae3b7fbbf12a0b5b87716f980ae287f330b85d.tar.gz enigma2-e8ae3b7fbbf12a0b5b87716f980ae287f330b85d.zip | |
allow using a pixmap as background for slider
| -rw-r--r-- | lib/gui/eslider.cpp | 12 | ||||
| -rw-r--r-- | lib/gui/eslider.h | 2 |
2 files changed, 13 insertions, 1 deletions
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<gPixmap> m_pixmap; gRegion m_currently_filled; gRGB m_border_color; |
