add seekpointer
authorFelix Domke <tmbinc@elitedvb.net>
Mon, 2 Oct 2006 23:57:36 +0000 (23:57 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Mon, 2 Oct 2006 23:57:36 +0000 (23:57 +0000)
lib/gui/epositiongauge.cpp
lib/gui/epositiongauge.h

index 712bf4a..0adda5d 100644 (file)
@@ -5,15 +5,19 @@ ePositionGauge::ePositionGauge(eWidget *parent)
        : eWidget(parent)
 {
        m_point_widget = new ePixmap(this);
        : eWidget(parent)
 {
        m_point_widget = new ePixmap(this);
+       m_seek_point_widget = new ePixmap(this);
        m_point_widget->setAlphatest(1);
        m_point_widget->setAlphatest(1);
+       m_seek_point_widget->setAlphatest(1);
        m_position = 0;
        m_length = 0;
        m_have_foreground_color = 0;
        m_position = 0;
        m_length = 0;
        m_have_foreground_color = 0;
+       m_seek_position = 0;
 }
 
 ePositionGauge::~ePositionGauge()
 {
        delete m_point_widget;
 }
 
 ePositionGauge::~ePositionGauge()
 {
        delete m_point_widget;
+       delete m_seek_point_widget;
 }
 
 void ePositionGauge::setLength(const pts_t &len)
 }
 
 void ePositionGauge::setLength(const pts_t &len)
@@ -38,11 +42,19 @@ void ePositionGauge::setInColor(const gRGB &color)
        invalidate();
 }
 
        invalidate();
 }
 
-void ePositionGauge::setPointer(gPixmap *pixmap, const ePoint &center)
+void ePositionGauge::setPointer(int which, gPixmap *pixmap, const ePoint &center)
 {
 {
-       m_point_center = center;
-       m_point_widget->setPixmap(pixmap);
-       m_point_widget->resize(pixmap->size());
+       if (which == 0)
+       {
+               m_point_center = center;
+               m_point_widget->setPixmap(pixmap);
+               m_point_widget->resize(pixmap->size());
+       } else
+       {
+               m_seek_point_center = center;
+               m_seek_point_widget->setPixmap(pixmap);
+               m_seek_point_widget->resize(pixmap->size());
+       }
        updatePosition();
 }
 
        updatePosition();
 }
 
@@ -161,9 +173,11 @@ int ePositionGauge::event(int event, void *data, void *data2)
 void ePositionGauge::updatePosition()
 {
        m_pos = scale(m_position);
 void ePositionGauge::updatePosition()
 {
        m_pos = scale(m_position);
+       m_seek_pos = scale(m_seek_position);
        int base = (size().height() - 10) / 2;
        
        m_point_widget->move(ePoint(m_pos - m_point_center.x(), base - m_point_center.y()));
        int base = (size().height() - 10) / 2;
        
        m_point_widget->move(ePoint(m_pos - m_point_center.x(), base - m_point_center.y()));
+       m_seek_point_widget->move(ePoint(m_seek_pos - m_seek_point_center.x(), base - m_seek_point_center.y()));
 }
 
 int ePositionGauge::scale(const pts_t &val)
 }
 
 int ePositionGauge::scale(const pts_t &val)
@@ -185,3 +199,19 @@ void ePositionGauge::setForegroundColor(const gRGB &col)
                invalidate();
        }
 }
                invalidate();
        }
 }
+
+void ePositionGauge::enableSeekPointer(int enable)
+{
+       if (enable)
+               m_seek_point_widget->show();
+       else
+               m_seek_point_widget->hide();
+}
+
+void ePositionGauge::setSeekPosition(const pts_t &pos)
+{
+       if (m_seek_position == pos)
+               return;
+       m_seek_position = pos;
+       updatePosition();
+}
index 74e972c..4b20209 100644 (file)
@@ -17,10 +17,14 @@ public:
        void setPosition(const pts_t &pos);
        
        void setInColor(const gRGB &color); /* foreground? */
        void setPosition(const pts_t &pos);
        
        void setInColor(const gRGB &color); /* foreground? */
-       void setPointer(gPixmap *pixmap, const ePoint &center);
+       void setPointer(int which, gPixmap *pixmap, const ePoint &center);
        
        void setInOutList(PyObject *list);
        void setForegroundColor(const gRGB &col);
        
        void setInOutList(PyObject *list);
        void setForegroundColor(const gRGB &col);
+       
+       void enableSeekPointer(int enable);
+       void setSeekPosition(const pts_t &pos);
+       
 #ifndef SWIG
 protected:
        int event(int event, void *data=0, void *data2=0);
 #ifndef SWIG
 protected:
        int event(int event, void *data=0, void *data2=0);
@@ -30,12 +34,12 @@ private:
        {
                evtChangedPosition = evtUserWidget
        };
        {
                evtChangedPosition = evtUserWidget
        };
-       ePixmap *m_point_widget;
-       ePoint m_point_center;
+       ePixmap *m_point_widget, *m_seek_point_widget;
+       ePoint m_point_center, m_seek_point_center;
+       
+       pts_t m_position, m_length, m_seek_position;
+       int m_pos, m_seek_pos;
        
        
-       pts_t m_position, m_length;
-       int m_pos;
-
                /* TODO: this is duplicated code from lib/service/servicedvb.h */
        struct cueEntry
        {
                /* TODO: this is duplicated code from lib/service/servicedvb.h */
        struct cueEntry
        {