diff --git a/gui/PfListPane.py b/gui/PFListPane.py
similarity index 96%
rename from gui/PfListPane.py
rename to gui/PFListPane.py
index 584af5ca0..1f6c94fa7 100644
--- a/gui/PfListPane.py
+++ b/gui/PFListPane.py
@@ -1,153 +1,153 @@
-#===============================================================================
-# Copyright (C) 2010 Diego Duclos
-#
-# This file is part of pyfa.
-#
-# pyfa is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# pyfa is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with pyfa. If not, see .
-#===============================================================================
-
-import wx
-import gui.mainFrame
-
-class PFListPane(wx.ScrolledWindow):
- def __init__(self, parent):
- wx.ScrolledWindow.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(1, 1), style=wx.TAB_TRAVERSAL)
-
- self._wList = []
- self._wCount = 0
-
- self.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW))
-
-
- self.SetVirtualSize((1, 1))
- self.SetScrollRate(0, 1)
-
- self.Bind(wx.EVT_SCROLLWIN_LINEUP, self.MScrollUp)
- self.Bind(wx.EVT_SCROLLWIN_LINEDOWN, self.MScrollDown)
- self.Bind(wx.EVT_CHILD_FOCUS, self.OnChildFocus)
-
- def OnChildFocus(self, event):
- event.Skip()
- child = event.GetWindow()
- self.ScrollChildIntoView(child)
-
- def MScrollUp(self, event):
-
- posy = self.GetScrollPos(wx.VERTICAL)
- posy -= 12
- self.Scroll(0, posy)
-
- event.Skip()
-
- def MScrollDown(self, event):
-
- posy = self.GetScrollPos(wx.VERTICAL)
- posy += 12
- self.Scroll(0, posy)
-
- event.Skip()
-
-
- def ScrollChildIntoView(self, child):
- """
- Scrolls the panel such that the specified child window is in view.
- """
- sppu_x, sppu_y = self.GetScrollPixelsPerUnit()
- vs_x, vs_y = self.GetViewStart()
- cr = child.GetRect()
- clntsz = self.GetSize()
- new_vs_x, new_vs_y = -1, -1
-
- # is it before the left edge?
- if cr.x < 0 and sppu_x > 0:
- new_vs_x = vs_x + (cr.x / sppu_x)
-
- # is it above the top?
- if cr.y < 0 and sppu_y > 0:
- new_vs_y = vs_y + (cr.y / sppu_y)
-
- # For the right and bottom edges, scroll enough to show the
- # whole control if possible, but if not just scroll such that
- # the top/left edges are still visible
-
- # is it past the right edge ?
- if cr.right > clntsz.width and sppu_x > 0:
- diff = (cr.right - clntsz.width + 1) / sppu_x
- if cr.x - diff * sppu_x > 0:
- new_vs_x = vs_x + diff
- else:
- new_vs_x = vs_x + (cr.x / sppu_x)
-
- # is it below the bottom ?
- if cr.bottom > clntsz.height and sppu_y > 0:
- diff = (cr.bottom - clntsz.height + 1) / sppu_y
- if cr.y - diff * sppu_y > 0:
- new_vs_y = vs_y + diff
- else:
- new_vs_y = vs_y + (cr.y / sppu_y)
-
- # if we need to adjust
- if new_vs_x != -1 or new_vs_y != -1:
- self.Scroll(new_vs_x, new_vs_y)
-
-
-
- def AddWidget(self, widget):
- widget.Reparent(self)
- self._wList.append(widget)
- self._wCount += 1
-
- # Override this method if needed ( return False by default if we do not want to scroll to selected widget)
- def IsWidgetSelectedByContext(self, widget):
- return False
-
- def RefreshList(self, doRefresh = False):
- ypos = 0
- maxy = 0
- scrollTo = 0
-
- selected = None
- for i in xrange( len(self._wList) ):
- iwidth, iheight = self._wList[i].GetSize()
- xa, ya = self.CalcScrolledPosition((0, maxy))
- self._wList[i].SetPosition((xa, ya))
- if self.IsWidgetSelectedByContext(i):
- selected = self._wList[i]
- maxy += iheight
-
- self.SetVirtualSize((1, maxy))
- cwidth, cheight = self.GetVirtualSize()
-
- if selected:
- self.ScrollChildIntoView(selected)
-
- clientW,clientH = self.GetSize()
- for i in xrange( len(self._wList) ):
- iwidth, iheight = self._wList[i].GetSize()
- itemX,itemY = self._wList[i].GetPosition()
- self._wList[i].SetSize((cwidth, iheight))
- if doRefresh == True:
- if itemY >=-iheight and itemY< clientH:
- self._wList[i].Refresh()
-
- def RemoveWidget(self, child):
- child.Destroy()
- self._wList.remove(child)
-
-
- def RemoveAllChildren(self):
- for widget in self._wList:
- widget.Destroy()
-
- self._wList = []
+#===============================================================================
+# Copyright (C) 2010 Diego Duclos
+#
+# This file is part of pyfa.
+#
+# pyfa is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# pyfa is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with pyfa. If not, see .
+#===============================================================================
+
+import wx
+import gui.mainFrame
+
+class PFListPane(wx.ScrolledWindow):
+ def __init__(self, parent):
+ wx.ScrolledWindow.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(1, 1), style=wx.TAB_TRAVERSAL)
+
+ self._wList = []
+ self._wCount = 0
+
+ self.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW))
+
+
+ self.SetVirtualSize((1, 1))
+ self.SetScrollRate(0, 1)
+
+ self.Bind(wx.EVT_SCROLLWIN_LINEUP, self.MScrollUp)
+ self.Bind(wx.EVT_SCROLLWIN_LINEDOWN, self.MScrollDown)
+ self.Bind(wx.EVT_CHILD_FOCUS, self.OnChildFocus)
+
+ def OnChildFocus(self, event):
+ event.Skip()
+ child = event.GetWindow()
+ self.ScrollChildIntoView(child)
+
+ def MScrollUp(self, event):
+
+ posy = self.GetScrollPos(wx.VERTICAL)
+ posy -= 12
+ self.Scroll(0, posy)
+
+ event.Skip()
+
+ def MScrollDown(self, event):
+
+ posy = self.GetScrollPos(wx.VERTICAL)
+ posy += 12
+ self.Scroll(0, posy)
+
+ event.Skip()
+
+
+ def ScrollChildIntoView(self, child):
+ """
+ Scrolls the panel such that the specified child window is in view.
+ """
+ sppu_x, sppu_y = self.GetScrollPixelsPerUnit()
+ vs_x, vs_y = self.GetViewStart()
+ cr = child.GetRect()
+ clntsz = self.GetSize()
+ new_vs_x, new_vs_y = -1, -1
+
+ # is it before the left edge?
+ if cr.x < 0 and sppu_x > 0:
+ new_vs_x = vs_x + (cr.x / sppu_x)
+
+ # is it above the top?
+ if cr.y < 0 and sppu_y > 0:
+ new_vs_y = vs_y + (cr.y / sppu_y)
+
+ # For the right and bottom edges, scroll enough to show the
+ # whole control if possible, but if not just scroll such that
+ # the top/left edges are still visible
+
+ # is it past the right edge ?
+ if cr.right > clntsz.width and sppu_x > 0:
+ diff = (cr.right - clntsz.width + 1) / sppu_x
+ if cr.x - diff * sppu_x > 0:
+ new_vs_x = vs_x + diff
+ else:
+ new_vs_x = vs_x + (cr.x / sppu_x)
+
+ # is it below the bottom ?
+ if cr.bottom > clntsz.height and sppu_y > 0:
+ diff = (cr.bottom - clntsz.height + 1) / sppu_y
+ if cr.y - diff * sppu_y > 0:
+ new_vs_y = vs_y + diff
+ else:
+ new_vs_y = vs_y + (cr.y / sppu_y)
+
+ # if we need to adjust
+ if new_vs_x != -1 or new_vs_y != -1:
+ self.Scroll(new_vs_x, new_vs_y)
+
+
+
+ def AddWidget(self, widget):
+ widget.Reparent(self)
+ self._wList.append(widget)
+ self._wCount += 1
+
+ # Override this method if needed ( return False by default if we do not want to scroll to selected widget)
+ def IsWidgetSelectedByContext(self, widget):
+ return False
+
+ def RefreshList(self, doRefresh = False):
+ ypos = 0
+ maxy = 0
+ scrollTo = 0
+
+ selected = None
+ for i in xrange( len(self._wList) ):
+ iwidth, iheight = self._wList[i].GetSize()
+ xa, ya = self.CalcScrolledPosition((0, maxy))
+ self._wList[i].SetPosition((xa, ya))
+ if self.IsWidgetSelectedByContext(i):
+ selected = self._wList[i]
+ maxy += iheight
+
+ self.SetVirtualSize((1, maxy))
+ cwidth, cheight = self.GetVirtualSize()
+
+ if selected:
+ self.ScrollChildIntoView(selected)
+
+ clientW,clientH = self.GetSize()
+ for i in xrange( len(self._wList) ):
+ iwidth, iheight = self._wList[i].GetSize()
+ itemX,itemY = self._wList[i].GetPosition()
+ self._wList[i].SetSize((cwidth, iheight))
+ if doRefresh == True:
+ if itemY >=-iheight and itemY< clientH:
+ self._wList[i].Refresh()
+
+ def RemoveWidget(self, child):
+ child.Destroy()
+ self._wList.remove(child)
+
+
+ def RemoveAllChildren(self):
+ for widget in self._wList:
+ widget.Destroy()
+
+ self._wList = []