From 6b8abcd63fce0ab5a3b60588cb6b4fd77873a0b5 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Sat, 9 Oct 2010 11:37:08 +0300 Subject: [PATCH] Fixed ticket #91 --- gui/builtinStatsViews/resourcesViewFull.py | 5 ++-- gui/pygauge.py | 33 ++++++++++++---------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/gui/builtinStatsViews/resourcesViewFull.py b/gui/builtinStatsViews/resourcesViewFull.py index 264adb426..ee417f16f 100644 --- a/gui/builtinStatsViews/resourcesViewFull.py +++ b/gui/builtinStatsViews/resourcesViewFull.py @@ -115,7 +115,8 @@ class ResourcesViewFull(StatsView): # Gauges modif. - Darriele - gauge = PG.PyGauge(parent, wx.ID_ANY, 100) + gauge = PG.PyGauge(parent, wx.ID_ANY, 1) + gauge.SetRange(1,True) gauge.SetMinSize((self.getTextExtentW("1.999M/1.99M MW"), 23)) gauge.SetFractionDigits(2) @@ -173,7 +174,7 @@ class ResourcesViewFull(StatsView): gauge = getattr(self, "gauge%s%s" % (panel, capitalizedType)) - gauge.SetRange(100) + gauge.SetRange(0.01,True) gauge.SetValue(0) i+=1 diff --git a/gui/pygauge.py b/gui/pygauge.py index d3c58b8c4..538db261f 100644 --- a/gui/pygauge.py +++ b/gui/pygauge.py @@ -66,7 +66,7 @@ class PyGauge(wx.PyWindow): self.SetBackgroundColour(wx.Colour(51,51,51)) self._tooltip = wx.ToolTip("") self.SetToolTip(self._tooltip) - self._tooltip.SetTip("0/100") + self._tooltip.SetTip("0/0") self.Bind(wx.EVT_PAINT, self.OnPaint) self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) @@ -155,7 +155,7 @@ class PyGauge(wx.PyWindow): self._animStep = 0 self._timer.Start(self._period) - def SetRange(self, range): + def SetRange(self, range, reinit = False): """ Sets the range of the gauge. The gauge length is its value as a proportion of the range. @@ -168,17 +168,20 @@ class PyGauge(wx.PyWindow): range = float(range) - if range <= 0: - self._range = 1 + if reinit is False: + self._oldPercentage = self._percentage + self._percentage = (self._value/self._range) * 100 else: - self._range = range - - self._oldPercentage = self._percentage - self._percentage = (self._value/self._range) * 100 - + self._oldPercentage = self._percentage + self._percentage = 0 + self._value = 0 self.Animate() - self._tooltip.SetTip("%.2f/%.2f" % (self._value, self._range)) + if range <= 0: + self._range = 0.01 + else: + self._range = range + self._tooltip.SetTip("%.2f/%.2f" % (self._value, self._range if self._range >0.01 else 0)) def GetValue(self): @@ -321,15 +324,15 @@ class PyGauge(wx.PyWindow): if ((t) < (1/2.75)): return c*(7.5625*t*t) + b - else: + else: if (t < (2/2.75)): t-=(1.5/2.75) - return c*(7.5625*t*t + .75) + b - else: + return c*(7.5625*t*t + .75) + b + else: if (t < (2.5/2.75)): t-=(2.25/2.75) - return c*(7.5625*(t)*t + .9375) + b - else: + return c*(7.5625*(t)*t + .9375) + b + else: t-=(2.625/2.75) return c*(7.5625*(t)*t + .984375) + b