X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4374783e912d1a9385a41d7649d33f19e8eb96b3..b1d4a0b06608906144928198f66062705a8041fd:/lib/gui/eslider.cpp diff --git a/lib/gui/eslider.cpp b/lib/gui/eslider.cpp index 9dd21d0a..dd2aac9e 100644 --- a/lib/gui/eslider.cpp +++ b/lib/gui/eslider.cpp @@ -1,10 +1,21 @@ #include eSlider::eSlider(eWidget *parent) - :eWidget(parent), m_orientation(orHorizontal), m_start(0), m_border_width(0), m_have_border_color(false) + :eWidget(parent), m_have_border_color(false), m_start(0), m_orientation(orHorizontal), m_border_width(0) { } +void eSlider::setPixmap(ePtr &pixmap) +{ + setPixmap(pixmap.operator->()); +} + +void eSlider::setPixmap(gPixmap *pixmap) +{ + m_pixmap = pixmap; + event(evtChangedSlider); +} + void eSlider::setBorderWidth(int pixel) { m_border_width=pixel; @@ -25,14 +36,20 @@ int eSlider::event(int event, void *data, void *data2) case evtPaint: { ePtr style; - gPainter &painter = *(gPainter*)data2; eSize s(size()); - getStyle(style); - style->paintBackground(painter, ePoint(0,0), s); + /* paint background */ + eWidget::event(evtPaint, data, data2); + + gPainter &painter = *(gPainter*)data2; + 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, isTransparent() ? gPainter::BT_ALPHATEST : 0); // border if (m_have_border_color)