diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-07-20 14:48:33 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-07-20 14:48:33 +0000 |
| commit | ec648cb137f7a02e63752b54be2ce3ac959c7c86 (patch) | |
| tree | 9cb6cf17cc4dbeb7d4b717fad977ea72cb6859dc | |
| parent | 3c91232d1ade05d5b7bd393ec41c1673c80b8f45 (diff) | |
| download | enigma2-ec648cb137f7a02e63752b54be2ce3ac959c7c86.tar.gz enigma2-ec648cb137f7a02e63752b54be2ce3ac959c7c86.zip | |
don't display track when no foreground is set in position gauge
| -rw-r--r-- | data/skin.xml | 2 | ||||
| -rw-r--r-- | lib/gui/epositiongauge.cpp | 31 | ||||
| -rw-r--r-- | 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 @@ <widget source="CurrentService" render="Label" position="475,60" size="75,20" halign="left" backgroundColor="dark" font="Regular;18"> <convert type="ServicePosition">Remaining</convert> </widget> - <widget source="CurrentService" render="PositionGauge" position="247,60" size="225,20" zPosition="2" pointer="position_pointer.png:3,5" > + <widget source="CurrentService" render="PositionGauge" position="247,60" size="225,20" zPosition="2" pointer="position_pointer.png:3,5" foregroundColor="#225b7395"> <convert type="ServicePosition">Gauge</convert> </widget> </screen> 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<cueEntry> m_cue_entries; int scale(const pts_t &val); + + int m_have_foreground_color; + gRGB m_foreground_color; #endif }; |
