From 6c402c27ba2c8cc2c7c6bb6f5fbb0c2d2d0c0f8b Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 2 Oct 2006 23:57:36 +0000 Subject: [PATCH] add seekpointer --- lib/gui/epositiongauge.cpp | 38 ++++++++++++++++++++++++++++++++++---- lib/gui/epositiongauge.h | 16 ++++++++++------ 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 ¢er) +void ePositionGauge::setPointer(int which, gPixmap *pixmap, const ePoint ¢er) { - 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 ¢er); + void setPointer(int which, gPixmap *pixmap, const ePoint ¢er); 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 { -- 2.30.2