Merge branch 'master' of evefit.org:pyfa

This commit is contained in:
cncfanatics
2010-10-09 13:30:09 +02:00
3 changed files with 88 additions and 24 deletions

View File

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

View File

@@ -124,12 +124,18 @@ class ItemStatsContainer ( wx.Panel ):
self.affectedby = ItemAffectedBy(self.nbContainer, stuff, item)
self.nbContainer.AddPage(self.affectedby, "Affected by")
self.nbContainer.Bind(wx.EVT_LEFT_DOWN, self.mouseHit)
self.SetSizer(mainSizer)
self.Layout()
def __del__( self ):
pass
def mouseHit(self, event):
tab, _ = self.nbContainer.HitTest(event.Position)
if tab != -1:
self.nbContainer.SetSelection(tab)
###########################################################################
## Class AutoListCtrl
###########################################################################
@@ -415,8 +421,12 @@ class ItemAffectedBy (wx.Panel):
wx.Panel.__init__ (self, parent)
self.stuff = stuff
self.item = item
self.toggleView = 1
self.expand = -1
mainSizer = wx.BoxSizer(wx.VERTICAL)
self.affectedBy = wx.TreeCtrl(self, style = wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT | wx.NO_BORDER)
mainSizer.Add(self.affectedBy, 1, wx.ALL|wx.EXPAND, 0)
@@ -425,8 +435,8 @@ class ItemAffectedBy (wx.Panel):
mainSizer.Add( self.m_staticline, 0, wx.EXPAND)
bSizer = wx.BoxSizer( wx.HORIZONTAL )
self.totalAttrsLabel = wx.StaticText( self, wx.ID_ANY, u" ", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer.Add( self.totalAttrsLabel, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT)
self.toggleExpandBtn = wx.ToggleButton( self, wx.ID_ANY, u"Expand / Collapse", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer.Add( self.toggleExpandBtn, 0, wx.ALIGN_CENTER_VERTICAL)
self.toggleViewBtn = wx.ToggleButton( self, wx.ID_ANY, u"Toggle view mode", wx.DefaultPosition, wx.DefaultSize, 0 )
bSizer.Add( self.toggleViewBtn, 0, wx.ALIGN_CENTER_VERTICAL)
@@ -437,11 +447,48 @@ class ItemAffectedBy (wx.Panel):
self.refreshBtn.Bind( wx.EVT_BUTTON, self.RefreshTree )
self.toggleViewBtn.Bind(wx.EVT_TOGGLEBUTTON,self.ToggleViewMode)
self.toggleExpandBtn.Bind(wx.EVT_TOGGLEBUTTON,self.ToggleExpand)
mainSizer.Add( bSizer, 0, wx.ALIGN_RIGHT)
self.SetSizer(mainSizer)
self.PopulateTree()
self.Layout()
def ExpandCollapseTree(self):
self.Freeze()
if self.expand == 1:
self.affectedBy.ExpandAll()
else:
try:
self.affectedBy.CollapseAll()
except:
pass
self.Thaw()
def ToggleExpand(self,event):
self.expand *= -1
self.ExpandCollapseTree()
def ToggleViewTree(self):
self.Freeze()
root = self.affectedBy.GetRootItem()
child,cookie = self.affectedBy.GetFirstChild(root)
while child.IsOk():
item,childcookie = self.affectedBy.GetFirstChild(child)
while item.IsOk():
change = self.affectedBy.GetPyData(item)
display = self.affectedBy.GetItemText(item)
self.affectedBy.SetItemText(item,change)
self.affectedBy.SetPyData(item,display)
item,childcookie = self.affectedBy.GetNextChild(child,childcookie)
child,cookie = self.affectedBy.GetNextChild(root,cookie)
self.Thaw()
def UpdateTree(self):
self.Freeze()
self.affectedBy.DeleteAllItems()
@@ -454,7 +501,7 @@ class ItemAffectedBy (wx.Panel):
def ToggleViewMode(self, event):
self.toggleView *=-1
self.UpdateTree()
self.ToggleViewTree()
event.Skip()
def PopulateTree(self):
@@ -498,7 +545,7 @@ class ItemAffectedBy (wx.Panel):
if counter > 0:
for attrName, attrModifier, attrAmount in attrData:
attrInfo = self.stuff.item.attributes.get(attrName)
displayName = (attrInfo.displayName if self.toggleView ==1 else attrInfo.name) if attrInfo else ""
displayName = attrInfo.displayName if attrInfo else ""
if attrInfo:
if attrInfo.icon is not None:
@@ -515,5 +562,12 @@ class ItemAffectedBy (wx.Panel):
else:
penalized = ""
self.affectedBy.AppendItem(child, "%s %s%.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized), attrIcon)
if self.toggleView == 1:
treeitem = self.affectedBy.AppendItem(child, "%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized), attrIcon)
self.affectedBy.SetPyData(treeitem,"%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized))
else:
treeitem = self.affectedBy.AppendItem(child, "%s %s %.2f %s" % (attrName, attrModifier, attrAmount, penalized), attrIcon)
self.affectedBy.SetPyData(treeitem,"%s %s %.2f %s" % ((displayName if displayName != "" else attrName), attrModifier, attrAmount, penalized))
self.ExpandCollapseTree()

View File

@@ -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):
@@ -295,8 +298,14 @@ class PyGauge(wx.PyWindow):
dc.DrawRectangleRect(r)
dc.SetTextForeground(wx.Colour(255,255,255))
fontLabel = wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL)
dc.SetFont(fontLabel)
if "__WXMAC__" in wx.PlatformInfo :
self.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)
else:
standardFont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
standardFont.SetPointSize(8)
dc.SetFont(standardFont)
formatStr = "{0:." + str(self._fractionDigits) + "f}%"
dc.DrawLabel(formatStr.format(value), rect, wx.ALIGN_CENTER)
@@ -321,15 +330,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