From ec648cb137f7a02e63752b54be2ce3ac959c7c86 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Thu, 20 Jul 2006 14:48:33 +0000 Subject: [PATCH] don't display track when no foreground is set in position gauge --- data/skin.xml | 2 +- lib/gui/epositiongauge.cpp | 31 +++++++++++++++++++++++++------ lib/gui/epositiongauge.h | 4 ++++ 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/data/skin.xml b/data/skin.xml index af37dbdf..6f727af5 100644 --- a/data/skin.xml +++ b/data/skin.xml @@ -186,7 +186,7 @@ Remaining - + Gauge diff --git a/lib/gui/epositiongauge.cpp b/lib/gui/epositiongauge.cpp index 012fd87b..712bf4a6 100644 --- a/lib/gui/epositiongauge.cpp +++ b/lib/gui/epositiongauge.cpp @@ -8,6 +8,7 @@ ePositionGauge::ePositionGauge(eWidget *parent) m_point_widget->setAlphatest(1); m_position = 0; m_length = 0; + m_have_foreground_color = 0; } ePositionGauge::~ePositionGauge() @@ -117,18 +118,26 @@ int ePositionGauge::event(int event, void *data, void *data2) } } - painter.setForegroundColor(gRGB(0x225b7395)); - int xi = scale(in), xo = scale(out); - painter.fill(eRect(xi, 10, xo-xi, s.height()-14)); + if (m_have_foreground_color) + { + painter.setForegroundColor(gRGB(m_foreground_color)); + int xi = scale(in), xo = scale(out); + painter.fill(eRect(xi, 10, xo-xi, s.height()-14)); + } + in = m_length; if (i == m_cue_entries.end()) break; } // painter.setForegroundColor(gRGB(0x00000000)); - painter.setForegroundColor(gRGB(0x225b7395)); - painter.fill(eRect(s.width() - 2, 2, s.width() - 1, s.height() - 4)); - painter.fill(eRect(0, 2, 2, s.height() - 4)); + + if (m_have_foreground_color) + { + painter.setForegroundColor(gRGB(0x225b7395)); + painter.fill(eRect(s.width() - 2, 2, s.width() - 1, s.height() - 4)); + painter.fill(eRect(0, 2, 2, s.height() - 4)); + } #if 0 // border @@ -166,3 +175,13 @@ int ePositionGauge::scale(const pts_t &val) return width * val / m_length; } + +void ePositionGauge::setForegroundColor(const gRGB &col) +{ + if ((!m_have_foreground_color) || !(m_foreground_color == col)) + { + m_foreground_color = col; + m_have_foreground_color = 1; + invalidate(); + } +} diff --git a/lib/gui/epositiongauge.h b/lib/gui/epositiongauge.h index 49ea3b3c..74e972c3 100644 --- a/lib/gui/epositiongauge.h +++ b/lib/gui/epositiongauge.h @@ -20,6 +20,7 @@ public: void setPointer(gPixmap *pixmap, const ePoint ¢er); void setInOutList(PyObject *list); + void setForegroundColor(const gRGB &col); #ifndef SWIG protected: int event(int event, void *data=0, void *data2=0); @@ -53,6 +54,9 @@ private: std::multiset m_cue_entries; int scale(const pts_t &val); + + int m_have_foreground_color; + gRGB m_foreground_color; #endif }; -- 2.30.2