: eWidget(parent)
{
m_point_widget = new ePixmap(this);
+ m_seek_point_widget = new ePixmap(this);
+ m_seek_point_widget->hide();
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)
invalidate();
}
-void ePositionGauge::setPointer(gPixmap *pixmap, const ePoint ¢er)
+void ePositionGauge::setPointer(int which, ePtr<gPixmap> &pixmap, const ePoint ¢er)
{
- m_point_center = center;
- m_point_widget->setPixmap(pixmap);
- m_point_widget->resize(pixmap->size());
+ setPointer(which, pixmap.operator->(), center);
+}
+
+void ePositionGauge::setPointer(int which, gPixmap *pixmap, const ePoint ¢er)
+{
+ 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();
}
-void ePositionGauge::setInOutList(PyObject *list)
+void ePositionGauge::setInOutList(ePyObject list)
{
if (!PyList_Check(list))
return;
for (i=0; i<size; ++i)
{
- PyObject *tuple = PyList_GetItem(list, i);
+ ePyObject tuple = PyList_GET_ITEM(list, i);
if (!PyTuple_Check(tuple))
continue;
if (PyTuple_Size(tuple) != 2)
continue;
- PyObject *ppts = PyTuple_GetItem(tuple, 0), *ptype = PyTuple_GetItem(tuple, 1);
+ ePyObject ppts = PyTuple_GET_ITEM(tuple, 0), ptype = PyTuple_GET_ITEM(tuple, 1);
if (!(PyLong_Check(ppts) && PyInt_Check(ptype)))
continue;
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)
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();
+}