From 3572ed85b2c4d52ae5da7ef3949e8993e3e79f84 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 30 Aug 2010 18:41:19 +0300 Subject: [PATCH 1/2] Gauges now imitates ballz falling on teh floor --- gui/pygauge.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gui/pygauge.py b/gui/pygauge.py index 8361279b6..ddfdd69ae 100644 --- a/gui/pygauge.py +++ b/gui/pygauge.py @@ -51,7 +51,7 @@ class PyGauge(wx.PyWindow): self._oldValue = 0 self._timerOn = 0 - self._animDuration = 300 + self._animDuration = 500 self._animStep = 0 self._period = 25 self._animValue = 0 @@ -308,7 +308,7 @@ class PyGauge(wx.PyWindow): start = 0 end = oldValue - value - step=self.OUT_QUAD(self._animStep, start, end, self._animDuration) + step=self.OUT_BOUNCE(self._animStep, start, end, self._animDuration) self._animStep += self._period if self._timerId == event.GetId(): From ade33d909ec32e5fbcfd85ca6c8dc7dcf2eceebe Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 30 Aug 2010 19:28:55 +0300 Subject: [PATCH 2/2] Gauge overload anim added X > 100% --- gui/pygauge.py | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/gui/pygauge.py b/gui/pygauge.py index ddfdd69ae..dcf56ab19 100644 --- a/gui/pygauge.py +++ b/gui/pygauge.py @@ -48,7 +48,7 @@ class PyGauge(wx.PyWindow): self._skipDigits = True self._timerId = wx.NewId() self._timer = None - + self._timerOver = None self._oldValue = 0 self._timerOn = 0 self._animDuration = 500 @@ -56,7 +56,9 @@ class PyGauge(wx.PyWindow): self._period = 25 self._animValue = 0 self._overdrive = 0 - + self._overdriveTimerId =wx.NewId() + self._overdriveToggle=1 + self._overdriveTimerStarted=False self.SetBarGradient((wx.Colour(153,153,153),wx.Colour(204,204,204))) self.SetBackgroundColour(wx.Colour(102,102,102)) @@ -171,9 +173,16 @@ class PyGauge(wx.PyWindow): if value > self._range: self._overdrive = value self._value = self._range + if not self._timerOver: + self._timerOver = wx.Timer(self, self._overdriveTimerId) + self._timerOver.Start(500) + self._overdriveTimerStarted = True else: self._overdrive = value self._value = value + if self._overdriveTimerStarted: + self._timerOver.Stop() + self._overdriveTimerStarted = False if value < 0: self._value = 0 self._overdrive = 0 @@ -226,8 +235,13 @@ class PyGauge(wx.PyWindow): if self.GetBarGradient(): if self._overdrive > self._range: - c1 =wx.Colour(255,33,33) - c2 =wx.Colour(255,33,33) + if self._overdriveToggle==1: + c1 =wx.Colour(255,33,33) + c2 =wx.Colour(255,33,33) + else: + c1 =wx.Colour(0,0,0) + c2 =wx.Colour(0,0,0) + else: c1,c2 = self.GetBarGradient() @@ -311,7 +325,7 @@ class PyGauge(wx.PyWindow): step=self.OUT_BOUNCE(self._animStep, start, end, self._animDuration) self._animStep += self._period - if self._timerId == event.GetId(): + if self._timerId == event.GetId() and self._overdriveTimerId != event.GetId(): stop_timer = False if self._animStep > self._animDuration: @@ -332,3 +346,6 @@ class PyGauge(wx.PyWindow): self._timer.Stop() self.Refresh() + if self._overdriveTimerId == event.GetId(): + self._overdriveToggle*=-1 + self.Refresh()