pygauge: Smooth colour transition 0 - 100 : 100 - 105 +

This commit is contained in:
HomeWorld
2010-09-15 03:54:08 +03:00
parent d1ffb1fd8b
commit 9a50f19002

View File

@@ -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