From 9a50f1900210ce2c2aaf9e6bab97b0d07dd91486 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Wed, 15 Sep 2010 03:54:08 +0300 Subject: [PATCH] pygauge: Smooth colour transition 0 - 100 : 100 - 105 + --- gui/pygauge.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/gui/pygauge.py b/gui/pygauge.py index 7fe72fe6a..2833aac8c 100644 --- a/gui/pygauge.py +++ b/gui/pygauge.py @@ -223,15 +223,7 @@ class PyGauge(wx.PyWindow): rect.Deflate(pad,pad) if self.GetBarGradient(): -# if value > self._range: -# if self._overdriveToggle==-1: -# c1 =wx.Colour(200,0,0) -# c2 =wx.Colour(200,0,0) -# else: -# c1 =wx.Colour(255,0,0) -# c2 =wx.Colour(255,0,0) -# else: c1,c2 = self.GetBarGradient() if value > self._range: w = rect.width @@ -240,13 +232,26 @@ class PyGauge(wx.PyWindow): r = copy.copy(rect) r.width = w r.height = r.height/2+1 - pv= 100 * (float(value if value <= self._range else self._range) / self._range) - if value <= self._range: + pv= 100 * (float(value) / self._range) + + if pv <= 100: c1 = map(lambda t: sum(t), zip(c1, (0,pv/3,-pv,0))) c2 = map(lambda t: sum(t), zip(c2, (0,pv/3,-pv,0))) else: - c1 = map(lambda t: sum(t), zip(c2, (pv/2,-pv/2,-pv/2,0))) - c2 = wx.Colour(255,0,0) + if pv <= 105: + xv = pv -100 + c1 = map(lambda t: sum(t), zip(c1, (0,100/3,-100,0))) + c1 = map(lambda t: sum(t), zip(c1, (xv*10,-xv*20,0,0))) + c2 = map(lambda t: sum(t), zip(c2, (0,100/3,-100,0))) + c2 = map(lambda t: sum(t), zip(c2, (xv*10,-xv*20,0,0))) +# c1 = wx.Colour(170,0,0) + else: + pv = 106 + xv = pv -100 + c2 = map(lambda t: sum(t), zip(c2, (0,100/3,-100,0))) + c2 = map(lambda t: sum(t), zip(c2, (xv*15,-xv*20,0,0))) +# c2 = map(lambda t: sum(t), zip(c2, (2*pv/3,-pv/2,-pv/2,0))) + c1 = wx.Colour(255,0,0) dc.GradientFillLinear(r, c1, c2, wx.SOUTH) r.top = r.height