Merge branch 'master' of evefit.org:pyfa
@@ -108,6 +108,9 @@ class PFListPane(wx.ScrolledWindow):
|
||||
self._wList.append(widget)
|
||||
self._wCount += 1
|
||||
|
||||
def GetWidgetList(self):
|
||||
return self._wList
|
||||
|
||||
# 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
|
||||
|
||||
@@ -27,7 +27,7 @@ import service
|
||||
import gui.mainFrame
|
||||
import gui.builtinViews.fittingView as fv
|
||||
|
||||
EffictiveHpToggled, EFFECTIVE_HP_TOGGLED = wx.lib.newevent.NewEvent()
|
||||
EffectiveHpToggled, EFFECTIVE_HP_TOGGLED = wx.lib.newevent.NewEvent()
|
||||
|
||||
class ResistancesViewFull(StatsView):
|
||||
name = "resistancesViewFull"
|
||||
@@ -89,10 +89,10 @@ class ResistancesViewFull(StatsView):
|
||||
bitmap.SetToolTip(tooltip)
|
||||
sizerResistances.Add(bitmap, wx.GBPosition( row, col ), wx.GBSpan( 1, 1 ), wx.ALIGN_CENTER)
|
||||
col+=1
|
||||
self.stEHPs = wx.StaticText(contentPanel, wx.ID_ANY, "EHP", style = wx.DOUBLE_BORDER if 'wxMSW' in wx.PlatformInfo else wx.SIMPLE_BORDER)
|
||||
self.stEHPs = wx.Button(contentPanel, style = wx.BU_EXACTFIT, label = "EHP")
|
||||
self.stEHPs.SetToolTip(wx.ToolTip("Click to toggle between effective HP and raw HP"))
|
||||
|
||||
self.stEHPs.Bind(wx.EVT_LEFT_UP, self.toggleEHP)
|
||||
self.stEHPs.Bind(wx.EVT_BUTTON, self.toggleEHP)
|
||||
|
||||
|
||||
sizerResistances.Add(self.stEHPs, wx.GBPosition( row, col ), wx.GBSpan( 1, 1 ), wx.ALIGN_CENTER)
|
||||
@@ -156,7 +156,7 @@ class ResistancesViewFull(StatsView):
|
||||
self.stEHPs.SetToolTip(wx.ToolTip("Click to toggle between effective HP and raw HP"))
|
||||
|
||||
def toggleEHP(self, event):
|
||||
wx.PostEvent(self.mainFrame, EffictiveHpToggled(effective=self.stEHPs.GetLabel() == " HP "))
|
||||
wx.PostEvent(self.mainFrame, EffectiveHpToggled(effective=self.stEHPs.GetLabel() == "HP"))
|
||||
|
||||
def ehpSwitch(self, event):
|
||||
self.showEffective = event.effective
|
||||
@@ -168,14 +168,14 @@ class ResistancesViewFull(StatsView):
|
||||
#If we did anything intresting, we'd update our labels to reflect the new fit's stats here
|
||||
if fit is None and not self.showEffective:
|
||||
self.showEffective = True
|
||||
wx.PostEvent(self.mainFrame, EffictiveHpToggled(effective=True))
|
||||
wx.PostEvent(self.mainFrame, EffectiveHpToggled(effective=True))
|
||||
return
|
||||
elif fit is not None and fit.ID != self.activeFit and not self.showEffective:
|
||||
self.showEffective = True
|
||||
wx.PostEvent(self.mainFrame, EffictiveHpToggled(effective=True))
|
||||
wx.PostEvent(self.mainFrame, EffectiveHpToggled(effective=True))
|
||||
return
|
||||
|
||||
self.stEHPs.SetLabel(" EHP " if self.showEffective else " HP ")
|
||||
self.stEHPs.SetLabel("EHP" if self.showEffective else "HP")
|
||||
self.activeFit = fit.ID if fit is not None else None
|
||||
|
||||
for tankType in ("shield", "armor", "hull"):
|
||||
|
||||
0
gui/builtinViews/__init__.py
Executable file → Normal file
@@ -11,6 +11,9 @@ class FleetSpawner(gui.multiSwitch.TabSpawner):
|
||||
mainFrame.Bind(gui.fleetBrowser.EVT_FLEET_SELECTED, self.fleetSelected)
|
||||
|
||||
def fleetSelected(self, event):
|
||||
if self.multiSwitch.GetPageCount() == 0:
|
||||
self.multiSwitch.AddPage(wx.Panel(self.multiSwitch, size = (0,0)), "Empty Tab")
|
||||
|
||||
view = FleetView(self.multiSwitch)
|
||||
self.multiSwitch.ReplaceActivePage(view)
|
||||
view.populate(event.fleetID)
|
||||
@@ -19,8 +22,8 @@ class FleetSpawner(gui.multiSwitch.TabSpawner):
|
||||
FleetSpawner.register()
|
||||
|
||||
class FleetView(wx.gizmos.TreeListCtrl):
|
||||
def __init__(self, parent):
|
||||
wx.gizmos.TreeListCtrl.__init__(self, parent)
|
||||
def __init__(self, parent, size = (0,0)):
|
||||
wx.gizmos.TreeListCtrl.__init__(self, parent, size = size)
|
||||
|
||||
self.tabManager = parent
|
||||
self.imageList = wx.ImageList(16, 16)
|
||||
|
||||
@@ -2,14 +2,69 @@ import wx
|
||||
import copy
|
||||
from gui import bitmapLoader
|
||||
import gui.mainFrame
|
||||
from gui.PFListPane import PFListPane
|
||||
|
||||
FleetSelected, EVT_FLEET_SELECTED = wx.lib.newevent.NewEvent()
|
||||
|
||||
|
||||
class FleetBrowser(wx.Panel):
|
||||
def __init__(self, parent):
|
||||
wx.Panel.__init__(self, parent)
|
||||
self.SetBackgroundColour("pink")
|
||||
x = FleetItem(self, 1, "IMBA Fleet", 23, size = (200,32))
|
||||
|
||||
FleetSelected, EVT_FLEET_SELECTED = wx.lib.newevent.NewEvent()
|
||||
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||
|
||||
self.fleetItemContainer = PFFleetItemContainer(self)
|
||||
for i in xrange(10):
|
||||
self.fleetItemContainer.AddWidget(FleetItem(self, 1, "IMBA Fleet #%d" % i, i, size = (0,32)))
|
||||
|
||||
mainSizer.Add(self.fleetItemContainer, 1, wx.EXPAND)
|
||||
self.SetSizer(mainSizer)
|
||||
self.Layout()
|
||||
self.Bind(wx.EVT_SIZE, self.SizeRefreshList)
|
||||
|
||||
def SizeRefreshList(self, event):
|
||||
ewidth, eheight = event.GetSize()
|
||||
self.Layout()
|
||||
self.fleetItemContainer.Layout()
|
||||
self.fleetItemContainer.RefreshList(True)
|
||||
event.Skip()
|
||||
|
||||
class PFFleetItemContainer(PFListPane):
|
||||
def __init__(self,parent):
|
||||
PFListPane.__init__(self,parent)
|
||||
self.selectedWidget = -1
|
||||
|
||||
def IsWidgetSelectedByContext(self, widget):
|
||||
if self.GetWidgetList()[widget].IsSelected():
|
||||
return True
|
||||
return False
|
||||
|
||||
def GetWidgetIndex(self, widgetWnd):
|
||||
return self.GetWidgetList().index(widgetWnd)
|
||||
|
||||
def SelectWidget(self, widgetWnd):
|
||||
wlist = self.GetWidgetList()
|
||||
if self.selectedWidget != -1:
|
||||
wlist[self.selectedWidget].SetSelected(False)
|
||||
wlist[self.selectedWidget].Refresh()
|
||||
windex = self.GetWidgetIndex(widgetWnd)
|
||||
wlist[windex].SetSelected(True)
|
||||
wlist[windex].Refresh()
|
||||
self.selectedWidget = windex
|
||||
|
||||
def RemoveWidget(self, child):
|
||||
child.Destroy()
|
||||
self.selectedWidget = -1
|
||||
self._wList.remove(child)
|
||||
|
||||
|
||||
def RemoveAllChildren(self):
|
||||
for widget in self._wList:
|
||||
widget.Destroy()
|
||||
|
||||
self.selectedWidget = -1
|
||||
self._wList = []
|
||||
|
||||
|
||||
class FleetItem(wx.Window):
|
||||
def __init__(self, parent, fleetID, fleetName, fleetCount,
|
||||
@@ -22,6 +77,7 @@ class FleetItem(wx.Window):
|
||||
self.fleetName = fleetName
|
||||
self.fleetCount = fleetCount
|
||||
self.highlighted = 0
|
||||
self.selected = False
|
||||
self.padding = 5
|
||||
self.fontBig = wx.FontFromPixelSize((0,15),wx.SWISS, wx.NORMAL, wx.BOLD, False)
|
||||
self.fontSmall = wx.FontFromPixelSize((0,13),wx.SWISS, wx.NORMAL, wx.NORMAL, False)
|
||||
@@ -31,12 +87,15 @@ class FleetItem(wx.Window):
|
||||
self.deleteBmp = bitmapLoader.getBitmap("fit_delete_small","icons")
|
||||
|
||||
self.Bind(wx.EVT_PAINT, self.OnPaint)
|
||||
self.Bind(wx.EVT_ERASE_BACKGROUND, lambda event: None)
|
||||
|
||||
self.Bind(wx.EVT_LEAVE_WINDOW, self.LeaveWindow)
|
||||
self.Bind(wx.EVT_ENTER_WINDOW, self.EnterWindow)
|
||||
self.Bind(wx.EVT_LEFT_UP, self.selected)
|
||||
self.Bind(wx.EVT_LEFT_UP, self.OnSelect)
|
||||
|
||||
def selected(self, event):
|
||||
def OnSelect(self, event):
|
||||
self.Parent.SelectWidget(self)
|
||||
self.Refresh()
|
||||
wx.PostEvent(self.mainFrame, FleetSelected(fleetID=0))
|
||||
event.Skip()
|
||||
|
||||
@@ -49,6 +108,12 @@ class FleetItem(wx.Window):
|
||||
def Copy(self):
|
||||
print "Copy"
|
||||
|
||||
def IsSelected(self):
|
||||
return self.selected
|
||||
|
||||
def SetSelected(self, state = True):
|
||||
self.selected = state
|
||||
|
||||
def OnPaint(self, event):
|
||||
rect = self.GetRect()
|
||||
|
||||
@@ -79,7 +144,12 @@ class FleetItem(wx.Window):
|
||||
bdc.SetTextForeground(wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOWTEXT ))
|
||||
|
||||
else:
|
||||
bdc.SetBackground(wx.Brush(wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)))
|
||||
if self.selected:
|
||||
bkcolor = wx.Colour(221,221,221)
|
||||
else:
|
||||
bkcolor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||
|
||||
bdc.SetBackground(wx.Brush(bkcolor))
|
||||
bdc.SetTextForeground(wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOWTEXT ))
|
||||
bdc.Clear()
|
||||
|
||||
|
||||
@@ -315,14 +315,19 @@ class HeaderPane (wx.Panel):
|
||||
|
||||
mainSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
|
||||
if 'wxMac' in wx.PlatformInfo:
|
||||
bgcolour = wx.Colour(0, 0, 0, 0)
|
||||
else:
|
||||
bgcolour = wx.SystemSettings.GetColour( wx.SYS_COLOUR_BTNFACE )
|
||||
|
||||
self.sbReset = PFGenBitmapButton( self, wx.ID_ANY, self.resetBmp, wx.DefaultPosition, bmpSize, wx.BORDER_NONE )
|
||||
mainSizer.Add(self.sbReset, 0, wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL , 5)
|
||||
self.sbReset.SetBackgroundColour( wx.Colour(0, 0, 0, 0) )
|
||||
self.sbReset.SetBackgroundColour( bgcolour )
|
||||
self.sbReset.SetBitmapSelected(self.resetBmp)
|
||||
|
||||
self.sbRewind = PFGenBitmapButton( self, wx.ID_ANY, self.rewBmp, wx.DefaultPosition, bmpSize, wx.BORDER_NONE )
|
||||
mainSizer.Add(self.sbRewind, 0, wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL , 5)
|
||||
self.sbRewind.SetBackgroundColour( wx.Colour(0, 0, 0, 0) )
|
||||
self.sbRewind.SetBackgroundColour( bgcolour )
|
||||
self.sbRewind.SetBitmapSelected(self.rewBmp)
|
||||
|
||||
self.sl1 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_VERTICAL )
|
||||
@@ -330,11 +335,11 @@ class HeaderPane (wx.Panel):
|
||||
|
||||
self.sbNewFit = PFGenBitmapButton( self, wx.ID_ANY, self.newBmp, wx.DefaultPosition, bmpSize, wx.BORDER_NONE )
|
||||
mainSizer.Add(self.sbNewFit, 0, wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL , 5)
|
||||
self.sbNewFit.SetBackgroundColour( wx.Colour(0, 0, 0, 0) )
|
||||
self.sbNewFit.SetBackgroundColour( bgcolour )
|
||||
|
||||
self.sbSwitchFitView = PFGenBitmapButton( self, wx.ID_ANY, self.switchBmp, wx.DefaultPosition, bmpSize, wx.BORDER_NONE )
|
||||
mainSizer.Add(self.sbSwitchFitView, 0, wx.LEFT | wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL , 5)
|
||||
self.sbSwitchFitView.SetBackgroundColour( wx.Colour(0, 0, 0, 0) )
|
||||
self.sbSwitchFitView.SetBackgroundColour( bgcolour )
|
||||
|
||||
|
||||
self.stStatus = wx.StaticText( self, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
@@ -356,7 +361,7 @@ class HeaderPane (wx.Panel):
|
||||
|
||||
self.sbSearch = PFGenBitmapButton( self, wx.ID_ANY, self.searchBmp, wx.DefaultPosition, bmpSize, wx.BORDER_NONE )
|
||||
mainSizer.Add(self.sbSearch, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL , 5)
|
||||
self.sbSearch.SetBackgroundColour( wx.Colour(0, 0, 0, 0) )
|
||||
self.sbSearch.SetBackgroundColour( bgcolour )
|
||||
|
||||
self.SetSizer(mainSizer)
|
||||
|
||||
|
||||
0
icons/fleet_fb_small.png
Executable file → Normal file
|
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
0
icons/fleet_fc_small.png
Executable file → Normal file
|
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 633 B |
0
icons/fleet_sb_small.png
Executable file → Normal file
|
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 167 B |
0
icons/fleet_sc_small.png
Executable file → Normal file
|
Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 338 B |
0
icons/fleet_wb_small.png
Executable file → Normal file
|
Before Width: | Height: | Size: 325 B After Width: | Height: | Size: 325 B |
0
icons/fleet_wc_small.png
Executable file → Normal file
|
Before Width: | Height: | Size: 510 B After Width: | Height: | Size: 510 B |