allow using a pixmap as background for slider
authorFelix Domke <tmbinc@elitedvb.net>
Mon, 24 Apr 2006 22:58:14 +0000 (22:58 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Mon, 24 Apr 2006 22:58:14 +0000 (22:58 +0000)
lib/gui/eslider.cpp
lib/gui/eslider.h

index 37b67acf66e94e336a86185c19f32aaccdd4df5d..f699389afb0db9aa0aaf69a23da57202a0f8517f 100644 (file)
@@ -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)
index 145cc165343df4e0de6bbc200c3da2fb3c965152..303977a2574485edcf87322a3bf01a2df38fd75f 100644 (file)
@@ -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;