aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-10-02 23:57:36 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-10-02 23:57:36 +0000
commit6c402c27ba2c8cc2c7c6bb6f5fbb0c2d2d0c0f8b (patch)
tree73e82289f08e6a3ef2bbd8082d4885f845820451
parent2623513b3de1ab9f89bac582ae30c39b4a8b9505 (diff)
downloadenigma2-6c402c27ba2c8cc2c7c6bb6f5fbb0c2d2d0c0f8b.tar.gz
enigma2-6c402c27ba2c8cc2c7c6bb6f5fbb0c2d2d0c0f8b.zip
add seekpointer
-rw-r--r--lib/gui/epositiongauge.cpp38
-rw-r--r--lib/gui/epositiongauge.h16
2 files changed, 44 insertions, 10 deletions
diff --git a/lib/gui/epositiongauge.cpp b/lib/gui/epositiongauge.cpp
index 712bf4a6..0adda5db 100644
--- a/lib/gui/epositiongauge.cpp
+++ b/lib/gui/epositiongauge.cpp
@@ -5,15 +5,19 @@ ePositionGauge::ePositionGauge(eWidget *parent)
: eWidget(parent)
{
m_point_widget = new ePixmap(this);
+ m_seek_point_widget = new ePixmap(this);
m_point_widget->setAlphatest(1);
+ m_seek_point_widget->setAlphatest(1);
m_position = 0;
m_length = 0;
m_have_foreground_color = 0;
+ m_seek_position = 0;
}
ePositionGauge::~ePositionGauge()
{
delete m_point_widget;
+ delete m_seek_point_widget;
}
void ePositionGauge::setLength(const pts_t &len)
@@ -38,11 +42,19 @@ void ePositionGauge::setInColor(const gRGB &color)
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();
}
@@ -161,9 +173,11 @@ int ePositionGauge::event(int event, void *data, void *data2)
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()));
+ 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)
@@ -185,3 +199,19 @@ void ePositionGauge::setForegroundColor(const gRGB &col)
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();
+}
diff --git a/lib/gui/epositiongauge.h b/lib/gui/epositiongauge.h
index 74e972c3..4b202098 100644
--- a/lib/gui/epositiongauge.h
+++ b/lib/gui/epositiongauge.h
@@ -17,10 +17,14 @@ public:
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 enableSeekPointer(int enable);
+ void setSeekPosition(const pts_t &pos);
+
#ifndef SWIG
protected:
int event(int event, void *data=0, void *data2=0);
@@ -30,12 +34,12 @@ private:
{
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
{