Merge branch 'master' of evefit.org:pyfa
This commit is contained in:
@@ -26,6 +26,10 @@ class FleetView(wx.gizmos.TreeListCtrl):
|
|||||||
wx.gizmos.TreeListCtrl.__init__(self, parent, size = size)
|
wx.gizmos.TreeListCtrl.__init__(self, parent, size = size)
|
||||||
|
|
||||||
self.tabManager = parent
|
self.tabManager = parent
|
||||||
|
|
||||||
|
self.fleetId = None
|
||||||
|
self.fleetImg = bitmapLoader.getImage("53_16", "pack")
|
||||||
|
|
||||||
self.imageList = wx.ImageList(16, 16)
|
self.imageList = wx.ImageList(16, 16)
|
||||||
self.SetImageList(self.imageList)
|
self.SetImageList(self.imageList)
|
||||||
|
|
||||||
@@ -39,17 +43,45 @@ class FleetView(wx.gizmos.TreeListCtrl):
|
|||||||
self.icons[icon] = self.imageList.Add(bitmapLoader.getBitmap("fleet_%s_small" % icon, "icons"))
|
self.icons[icon] = self.imageList.Add(bitmapLoader.getBitmap("fleet_%s_small" % icon, "icons"))
|
||||||
|
|
||||||
self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.checkNew)
|
self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.checkNew)
|
||||||
|
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||||
|
|
||||||
|
self.mainFrame.Bind(gui.fleetBrowser.EVT_FLEET_RENAMED, self.fleetRenamed)
|
||||||
|
self.mainFrame.Bind(gui.fleetBrowser.EVT_FLEET_REMOVED, self.fleetRemoved)
|
||||||
|
|
||||||
|
def Destroy(self):
|
||||||
|
self.mainFrame.Unbind(gui.fleetBrowser.EVT_FLEET_REMOVED, handler = self.fleetRemoved)
|
||||||
|
self.mainFrame.Unbind(gui.fleetBrowser.EVT_FLEET_RENAMED, handler = self.fleetRenamed)
|
||||||
|
wx.gizmos.TreeListCtrl.Destroy(self)
|
||||||
|
|
||||||
|
def fleetRenamed(self, event):
|
||||||
|
if event.fleetID == self.fleetId:
|
||||||
|
sFleet = service.Fleet.getInstance()
|
||||||
|
f = sFleet.getFleetByID(event.fleetID)
|
||||||
|
self.UpdateTab(f.name, self.fleetImg)
|
||||||
|
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
def fleetRemoved(self, event):
|
||||||
|
if event.fleetID == self.fleetId:
|
||||||
|
self.tabManager.DeletePage(self.tabManager.GetPageIndex(self))
|
||||||
|
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
def checkNew(self, event):
|
def checkNew(self, event):
|
||||||
data = self.GetPyData(event.Item)
|
data = self.GetPyData(event.Item)
|
||||||
if data and isinstance(data, tuple) and data[0] == "add":
|
if data and isinstance(data, tuple) and data[0] == "add":
|
||||||
layer = data[1]
|
layer = data[1]
|
||||||
|
|
||||||
|
|
||||||
|
def UpdateTab(self, name, img):
|
||||||
|
self.tabManager.SetPageTextIcon(self.tabManager.GetSelection(), name, img)
|
||||||
|
|
||||||
def populate(self, fleetID):
|
def populate(self, fleetID):
|
||||||
sFleet = service.Fleet.getInstance()
|
sFleet = service.Fleet.getInstance()
|
||||||
f = sFleet.getFleetByID(fleetID)
|
f = sFleet.getFleetByID(fleetID)
|
||||||
self.tabManager.SetPageTextIcon(self.tabManager.GetSelection(), f.name)
|
self.fleetId = fleetID
|
||||||
|
|
||||||
|
self.UpdateTab( f.name, self.fleetImg)
|
||||||
self.fleet = f
|
self.fleet = f
|
||||||
self.DeleteAllItems()
|
self.DeleteAllItems()
|
||||||
root = self.AddRoot("")
|
root = self.AddRoot("")
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
# --------------------------------------------------------------------------------- #
|
# --------------------------------------------------------------------------------- #
|
||||||
|
|
||||||
import wx
|
import wx
|
||||||
|
import wx.lib.newevent
|
||||||
import copy
|
import copy
|
||||||
import time
|
import time
|
||||||
import gui.utils.colorUtils as colorUtils
|
import gui.utils.colorUtils as colorUtils
|
||||||
|
|||||||
@@ -8,7 +8,15 @@ from gui.utils.drawUtils import GetPartialText
|
|||||||
|
|
||||||
from wx.lib.buttons import GenBitmapButton
|
from wx.lib.buttons import GenBitmapButton
|
||||||
|
|
||||||
|
import gui.utils.colorUtils as colorUtils
|
||||||
|
import gui.utils.drawUtils as drawUtils
|
||||||
|
|
||||||
|
import gui.sfBrowserItem as SFItem
|
||||||
|
|
||||||
FleetSelected, EVT_FLEET_SELECTED = wx.lib.newevent.NewEvent()
|
FleetSelected, EVT_FLEET_SELECTED = wx.lib.newevent.NewEvent()
|
||||||
|
FleetRenamed, EVT_FLEET_RENAMED = wx.lib.newevent.NewEvent()
|
||||||
|
FleetRemoved, EVT_FLEET_REMOVED = wx.lib.newevent.NewEvent()
|
||||||
|
|
||||||
|
|
||||||
FleetItemSelect, EVT_FLEET_ITEM_SELECT = wx.lib.newevent.NewEvent()
|
FleetItemSelect, EVT_FLEET_ITEM_SELECT = wx.lib.newevent.NewEvent()
|
||||||
FleetItemDelete, EVT_FLEET_ITEM_DELETE = wx.lib.newevent.NewEvent()
|
FleetItemDelete, EVT_FLEET_ITEM_DELETE = wx.lib.newevent.NewEvent()
|
||||||
@@ -86,16 +94,19 @@ class FleetBrowser(wx.Panel):
|
|||||||
newFleetName = event.fleetName
|
newFleetName = event.fleetName
|
||||||
|
|
||||||
self.sFleet.renameFleet(fleet, newFleetName)
|
self.sFleet.renameFleet(fleet, newFleetName)
|
||||||
|
wx.PostEvent(self.mainFrame, FleetRenamed(fleetID = fleet.ID))
|
||||||
|
|
||||||
def DeleteFleetItem(self, event):
|
def DeleteFleetItem(self, event):
|
||||||
self.sFleet.deleteFleetByID(event.fleetID)
|
self.sFleet.deleteFleetByID(event.fleetID)
|
||||||
self.PopulateFleetList()
|
self.PopulateFleetList()
|
||||||
|
wx.PostEvent(self.mainFrame, FleetRemoved(fleetID = event.fleetID))
|
||||||
|
|
||||||
def AddItem (self, ID, name, count):
|
def AddItem (self, ID, name, count):
|
||||||
self.fleetItemContainer.AddWidget(FleetItem(self, ID, name, count))
|
self.fleetItemContainer.AddWidget(FleetItem(self, ID, name, count))
|
||||||
widget = self.fleetItemContainer.GetWidgetByFleetID(ID)
|
widget = self.fleetItemContainer.GetWidgetByFleetID(ID)
|
||||||
self.fleetItemContainer.RefreshList(True)
|
self.fleetItemContainer.RefreshList(True)
|
||||||
self.fleetItemContainer.ScrollChildIntoView(widget)
|
self.fleetItemContainer.ScrollChildIntoView(widget)
|
||||||
|
wx.PostEvent(self, FleetItemSelect(fleetID = ID))
|
||||||
|
|
||||||
def PopulateFleetList(self):
|
def PopulateFleetList(self):
|
||||||
self.Freeze()
|
self.Freeze()
|
||||||
@@ -234,31 +245,22 @@ class PFFleetItemContainer(PFListPane):
|
|||||||
def OnLeftUp(self, event):
|
def OnLeftUp(self, event):
|
||||||
event.Skip()
|
event.Skip()
|
||||||
|
|
||||||
class FleetItem(wx.Window):
|
class FleetItem(SFItem.SFBrowserItem):
|
||||||
def __init__(self, parent, fleetID, fleetName, fleetCount,
|
def __init__(self, parent, fleetID, fleetName, fleetCount,
|
||||||
id=wx.ID_ANY, pos=wx.DefaultPosition,
|
id=wx.ID_ANY, pos=wx.DefaultPosition,
|
||||||
size=(0,32), style=0):
|
size=(0,40), style=0):
|
||||||
wx.Window.__init__(self, parent, id, pos, size, style)
|
SFItem.SFBrowserItem.__init__(self, parent, size = size)
|
||||||
|
|
||||||
# self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
|
||||||
# self.fleetBrowser = self.mainFrame.fleetBrowser
|
|
||||||
# print self.fleetBrowser
|
|
||||||
self.fleetBrowser = self.Parent
|
self.fleetBrowser = self.Parent
|
||||||
self.fleetID = fleetID
|
self.fleetID = fleetID
|
||||||
self.fleetName = fleetName
|
self.fleetName = fleetName
|
||||||
self.fleetCount = fleetCount
|
self.fleetCount = fleetCount
|
||||||
self.highlighted = 0
|
|
||||||
|
|
||||||
self.buttonsTip = ""
|
self.padding = 4
|
||||||
self.selected = False
|
|
||||||
self.padding = 5
|
|
||||||
self.editHasFocus = False
|
|
||||||
|
|
||||||
self.cleanupTimer = None
|
|
||||||
self.cleanupTimerId = wx.NewId()
|
|
||||||
|
|
||||||
self.fontBig = wx.FontFromPixelSize((0,15),wx.SWISS, wx.NORMAL, wx.BOLD, False)
|
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)
|
self.fontNormal = wx.FontFromPixelSize((0,14),wx.SWISS, wx.NORMAL, wx.NORMAL, False)
|
||||||
|
self.fontSmall = wx.FontFromPixelSize((0,12),wx.SWISS, wx.NORMAL, wx.NORMAL, False)
|
||||||
|
|
||||||
self.copyBmp = bitmapLoader.getBitmap("fit_add_small", "icons")
|
self.copyBmp = bitmapLoader.getBitmap("fit_add_small", "icons")
|
||||||
self.renameBmp = bitmapLoader.getBitmap("fit_rename_small", "icons")
|
self.renameBmp = bitmapLoader.getBitmap("fit_rename_small", "icons")
|
||||||
@@ -266,29 +268,18 @@ class FleetItem(wx.Window):
|
|||||||
self.acceptBmp = bitmapLoader.getBitmap("faccept_small", "icons")
|
self.acceptBmp = bitmapLoader.getBitmap("faccept_small", "icons")
|
||||||
self.fleetBmp = bitmapLoader.getBitmap("fleet_item_big", "icons")
|
self.fleetBmp = bitmapLoader.getBitmap("fleet_item_big", "icons")
|
||||||
|
|
||||||
self.copyBmpGrey = self.GreyBitmap(self.copyBmp)
|
fleetImg = self.fleetBmp.ConvertToImage()
|
||||||
self.renameBmpGrey = self.GreyBitmap(self.renameBmp)
|
fleetImg = fleetImg.Blur(2)
|
||||||
self.deleteBmpGrey = self.GreyBitmap(self.deleteBmp)
|
|
||||||
self.acceptBmpGrey = self.GreyBitmap(self.acceptBmp)
|
|
||||||
|
|
||||||
self.btnSize = (18,18)
|
if not fleetImg.HasAlpha():
|
||||||
|
fleetImg.InitAlpha()
|
||||||
|
|
||||||
if 'wxMac' in wx.PlatformInfo:
|
fleetImg = fleetImg.AdjustChannels(1, 1, 1, 0.5)
|
||||||
self.btnbgcolour = wx.Colour(0, 0, 0, 0)
|
self.fleetEffBmp = wx.BitmapFromImage(fleetImg)
|
||||||
else:
|
|
||||||
self.btnbgcolour = wx.SystemSettings.GetColour( wx.SYS_COLOUR_3DFACE)
|
|
||||||
|
|
||||||
self.btnCopy = PFGenBitmapButton( self, wx.ID_ANY, self.copyBmp, wx.DefaultPosition, self.btnSize, wx.BORDER_NONE )
|
self.toolbar.AddButton(self.copyBmp, "Copy", self.CopyFleetCB)
|
||||||
self.btnCopy.Show(False)
|
self.toolbar.AddButton(self.renameBmp, "Rename", self.RenameFleetCB)
|
||||||
self.btnCopy.SetBackgroundColour( self.btnbgcolour )
|
self.toolbar.AddButton(self.deleteBmp, "Delete", self.DeleteFleetCB)
|
||||||
|
|
||||||
self.btnRename = PFGenBitmapButton( self, wx.ID_ANY, self.renameBmp, wx.DefaultPosition, self.btnSize, wx.BORDER_NONE )
|
|
||||||
self.btnRename.Show(False)
|
|
||||||
self.btnRename.SetBackgroundColour( self.btnbgcolour )
|
|
||||||
|
|
||||||
self.btnDelete = PFGenBitmapButton( self, wx.ID_ANY, self.deleteBmp, wx.DefaultPosition, self.btnSize, wx.BORDER_NONE )
|
|
||||||
self.btnDelete.Show(False)
|
|
||||||
self.btnDelete.SetBackgroundColour( self.btnbgcolour )
|
|
||||||
|
|
||||||
self.editWidth = 150
|
self.editWidth = 150
|
||||||
self.tcFleetName = wx.TextCtrl(self, wx.ID_ANY, "%s" % self.fleetName, wx.DefaultPosition, (self.editWidth,-1), wx.TE_PROCESS_ENTER)
|
self.tcFleetName = wx.TextCtrl(self, wx.ID_ANY, "%s" % self.fleetName, wx.DefaultPosition, (self.editWidth,-1), wx.TE_PROCESS_ENTER)
|
||||||
@@ -298,270 +289,147 @@ class FleetItem(wx.Window):
|
|||||||
else:
|
else:
|
||||||
self.tcFleetName.SetFocus()
|
self.tcFleetName.SetFocus()
|
||||||
self.tcFleetName.SelectAll()
|
self.tcFleetName.SelectAll()
|
||||||
self.btnRename.SetBitmapLabel(self.acceptBmp, False)
|
|
||||||
self.editHasFocus = True
|
|
||||||
self.fleetBrowser.fleetIDMustEditName = -1
|
self.fleetBrowser.fleetIDMustEditName = -1
|
||||||
|
self.selected = True
|
||||||
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.OnSelect)
|
|
||||||
|
|
||||||
self.btnCopy.Bind(wx.EVT_ENTER_WINDOW, self.OnBtnEnterWindow)
|
|
||||||
self.btnRename.Bind(wx.EVT_ENTER_WINDOW, self.OnBtnEnterWindow)
|
|
||||||
self.btnDelete.Bind(wx.EVT_ENTER_WINDOW, self.OnBtnEnterWindow)
|
|
||||||
|
|
||||||
self.btnDelete.Bind(wx.EVT_BUTTON, self.OnDeleteBtn)
|
|
||||||
self.btnCopy.Bind(wx.EVT_BUTTON, self.OnCopyBtn)
|
|
||||||
self.btnRename.Bind(wx.EVT_BUTTON, self.OnRenameBtn)
|
|
||||||
|
|
||||||
self.tcFleetName.Bind(wx.EVT_KILL_FOCUS, self.OnEditLostFocus)
|
self.tcFleetName.Bind(wx.EVT_KILL_FOCUS, self.OnEditLostFocus)
|
||||||
self.tcFleetName.Bind(wx.EVT_TEXT_ENTER, self.RenameFit)
|
self.tcFleetName.Bind(wx.EVT_TEXT_ENTER, self.RenameFleet)
|
||||||
self.tcFleetName.Bind(wx.EVT_KEY_DOWN, self.EditCheckEsc)
|
self.tcFleetName.Bind(wx.EVT_KEY_DOWN, self.EditCheckEsc)
|
||||||
|
|
||||||
self.Bind(wx.EVT_TIMER, self.OnTimer)
|
|
||||||
|
|
||||||
def OnSelect(self, event):
|
self.animCount = 0
|
||||||
if self.editHasFocus:
|
|
||||||
self.HideEdit()
|
def MouseLeftUp(self, event):
|
||||||
|
if self.tcFleetName.IsShown():
|
||||||
|
self.tcFleetName.Show(False)
|
||||||
else:
|
else:
|
||||||
wx.PostEvent(self.fleetBrowser, FleetItemSelect(fleetID = self.fleetID))
|
wx.PostEvent(self.fleetBrowser, FleetItemSelect(fleetID = self.fleetID))
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def OnRenameBtn(self, event):
|
def CopyFleetCB(self):
|
||||||
if self.tcFleetName.IsShown():
|
if self.tcFleetName.IsShown():
|
||||||
self.HideEdit()
|
self.tcFleetName.Show(False)
|
||||||
self.btnRename.SetBitmapLabel(self.renameBmp, False)
|
return
|
||||||
self.RenameFit(None)
|
|
||||||
else:
|
|
||||||
if not self.editHasFocus:
|
|
||||||
self.btnRename.SetBitmapLabel(self.acceptBmp,False)
|
|
||||||
self.tcFleetName.Show(True)
|
|
||||||
self.tcFleetName.SetFocus()
|
|
||||||
self.tcFleetName.SelectAll()
|
|
||||||
self.editHasFocus = True
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def OnDeleteBtn(self, event):
|
wx.PostEvent(self.fleetBrowser, FleetItemCopy(fleetID = self.fleetID))
|
||||||
if self.editHasFocus:
|
|
||||||
self.HideEdit()
|
|
||||||
else:
|
|
||||||
wx.PostEvent(self.fleetBrowser, FleetItemDelete(fleetID = self.fleetID))
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def OnCopyBtn(self, event):
|
def RenameFleetCB(self):
|
||||||
if self.editHasFocus:
|
|
||||||
self.HideEdit()
|
|
||||||
else:
|
|
||||||
wx.PostEvent(self.fleetBrowser, FleetItemCopy(fleetID = self.fleetID))
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def RenameFit(self, event):
|
if self.tcFleetName.IsShown():
|
||||||
self.HideEdit()
|
self.tcFleetName.Show(False)
|
||||||
|
self.RenameFleet(None)
|
||||||
|
else:
|
||||||
|
self.tcFleetName.SetValue(self.fleetName)
|
||||||
|
self.tcFleetName.Show()
|
||||||
|
|
||||||
|
self.tcFleetName.SetFocus()
|
||||||
|
self.tcFleetName.SelectAll()
|
||||||
|
|
||||||
|
self.Refresh()
|
||||||
|
|
||||||
|
def RenameFleet(self, event):
|
||||||
|
|
||||||
newFleetName = self.tcFleetName.GetValue()
|
newFleetName = self.tcFleetName.GetValue()
|
||||||
self.fleetName = newFleetName
|
self.fleetName = newFleetName
|
||||||
|
|
||||||
|
self.tcFleetName.Show(False)
|
||||||
|
|
||||||
wx.PostEvent(self.fleetBrowser, FleetItemRename(fleetID = self.fleetID, fleetName = self.fleetName))
|
wx.PostEvent(self.fleetBrowser, FleetItemRename(fleetID = self.fleetID, fleetName = self.fleetName))
|
||||||
self.Refresh()
|
self.Refresh()
|
||||||
|
|
||||||
|
def DeleteFleetCB(self):
|
||||||
|
if self.tcFleetName.IsShown():
|
||||||
|
self.tcFleetName.Show(False)
|
||||||
|
return
|
||||||
|
wx.PostEvent(self.fleetBrowser, FleetItemDelete(fleetID = self.fleetID))
|
||||||
|
|
||||||
|
def OnEditLostFocus(self, event):
|
||||||
|
self.tcFleetName.Show(False)
|
||||||
|
self.Refresh()
|
||||||
|
|
||||||
|
def EditCheckEsc(self, event):
|
||||||
|
if event.GetKeyCode() == wx.WXK_ESCAPE:
|
||||||
|
self.tcFleetName.Show(False)
|
||||||
|
else:
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
def IsSelected(self):
|
def IsSelected(self):
|
||||||
return self.selected
|
return self.selected
|
||||||
|
|
||||||
def SetSelected(self, state = True):
|
def UpdateElementsPos(self, mdc):
|
||||||
self.selected = state
|
|
||||||
|
|
||||||
def OnPaint(self, event):
|
|
||||||
rect = self.GetRect()
|
rect = self.GetRect()
|
||||||
|
|
||||||
#Bitmap for our buffered DC
|
self.toolbarx = rect.width - self.toolbar.GetWidth() - self.padding
|
||||||
canvas = wx.EmptyBitmap(rect.width, rect.height)
|
self.toolbary = (rect.height - self.toolbar.GetHeight()) / 2
|
||||||
|
|
||||||
#Buffered DC
|
self.toolbarx = self.toolbarx + self.animCount
|
||||||
bdc = wx.BufferedPaintDC(self)
|
|
||||||
bdc.SelectObject(canvas)
|
|
||||||
|
|
||||||
#gradient rect - clear the window
|
self.fleetBmpx = self.padding + (rect.height - self.fleetBmp.GetWidth()) / 2
|
||||||
grect = copy.copy(rect)
|
self.fleetBmpy = (rect.height - self.fleetBmp.GetHeight()) / 2
|
||||||
grect.top = grect.left = 0
|
|
||||||
|
|
||||||
grect.height = grect.height / 2
|
self.fleetBmpx -= self.animCount
|
||||||
|
|
||||||
if self.highlighted:
|
self.textStartx = self.fleetBmpx + self.fleetBmp.GetWidth() + self.padding
|
||||||
|
|
||||||
sr = 221
|
self.fleetNamey = (rect.height - self.fleetBmp.GetHeight()) / 2
|
||||||
sg = 221
|
|
||||||
sb = 221
|
|
||||||
|
|
||||||
startColor = (sr,sg,sb)
|
mdc.SetFont(self.fontBig)
|
||||||
|
wtext, htext = mdc.GetTextExtent(self.fleetName)
|
||||||
|
|
||||||
bdc.GradientFillLinear(grect, startColor, wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW),wx.SOUTH)
|
self.fleetCounty = self.fleetNamey + htext
|
||||||
grect.top = grect.height
|
|
||||||
bdc.GradientFillLinear(grect, startColor, wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW),wx.NORTH)
|
|
||||||
bdc.SetTextForeground(wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOWTEXT ))
|
|
||||||
|
|
||||||
else:
|
mdc.SetFont(self.fontSmall)
|
||||||
if self.selected:
|
|
||||||
bkcolor = wx.Colour(221,221,221)
|
|
||||||
else:
|
|
||||||
bkcolor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
|
||||||
|
|
||||||
bdc.SetBackground(wx.Brush(bkcolor))
|
wlabel,hlabel = mdc.GetTextExtent(self.toolbar.hoverLabel)
|
||||||
bdc.SetTextForeground(wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOWTEXT ))
|
|
||||||
bdc.Clear()
|
self.thoverx = self.toolbarx - self.padding - wlabel
|
||||||
|
self.thovery = (rect.height - hlabel)/2
|
||||||
|
self.thoverw = wlabel
|
||||||
|
|
||||||
|
def DrawItem(self, mdc):
|
||||||
|
rect = self.GetRect()
|
||||||
|
|
||||||
|
windowColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||||
|
textColor = colorUtils.GetSuitableColor(windowColor, 1)
|
||||||
|
|
||||||
|
mdc.SetTextForeground(textColor)
|
||||||
|
|
||||||
|
self.UpdateElementsPos(mdc)
|
||||||
|
|
||||||
|
self.toolbar.SetPosition((self.toolbarx, self.toolbary))
|
||||||
|
mdc.DrawBitmap(self.fleetEffBmp, self.fleetBmpx + 3, self.fleetBmpy + 2)
|
||||||
|
mdc.DrawBitmap(self.fleetBmp, self.fleetBmpx,self.fleetBmpy)
|
||||||
|
|
||||||
|
mdc.SetFont(self.fontNormal)
|
||||||
|
|
||||||
bdc.DrawBitmap(self.fleetBmp, 0, (rect.height - self.fleetBmp.GetHeight())/2)
|
|
||||||
textStart = self.padding + self.fleetBmp.GetWidth()
|
|
||||||
suffix = "%d ships" % self.fleetCount if self.fleetCount >1 else "%d ship" % self.fleetCount if self.fleetCount == 1 else "No ships"
|
suffix = "%d ships" % self.fleetCount if self.fleetCount >1 else "%d ship" % self.fleetCount if self.fleetCount == 1 else "No ships"
|
||||||
fleetCount = "Fleet size: %s" % suffix
|
fleetCount = "Fleet size: %s" % suffix
|
||||||
|
fleetCount = drawUtils.GetPartialText(mdc, fleetCount, self.toolbarx - self.textStartx - self.padding * 2 - self.thoverw)
|
||||||
|
|
||||||
btnWidth,btnHeight = self.btnSize
|
mdc.DrawText(fleetCount, self.textStartx, self.fleetCounty)
|
||||||
self.deletePosX = rect.width - btnWidth - self.padding
|
|
||||||
self.renamePosX = self.deletePosX - btnWidth
|
|
||||||
# - self.padding
|
|
||||||
self.copyPosX = self.renamePosX - btnWidth
|
|
||||||
# - self.padding
|
|
||||||
self.renamePosY = self.deletePosY = self.copyPosY = (rect.height - btnHeight) / 2
|
|
||||||
|
|
||||||
bdc.SetFont(self.fontSmall)
|
mdc.SetFont(self.fontSmall)
|
||||||
tx,ty = bdc.GetTextExtent(self.buttonsTip)
|
mdc.DrawText(self.toolbar.hoverLabel, self.thoverx, self.thovery)
|
||||||
|
|
||||||
bdc.SetFont(self.fontBig)
|
mdc.SetFont(self.fontBig)
|
||||||
fnx,fny = bdc.GetTextExtent(self.fleetName)
|
|
||||||
pfn = GetPartialText(bdc, self.fleetName, self.copyPosX - 16 - self.padding - tx - textStart)
|
|
||||||
bdc.DrawText(pfn, textStart, (rect.height/2 - fny) / 2)
|
|
||||||
|
|
||||||
bdc.SetFont(self.fontSmall)
|
pfname = drawUtils.GetPartialText(mdc, self.fleetName, self.toolbarx - self.textStartx - self.padding * 2 - self.thoverw)
|
||||||
fcx,fcy = bdc.GetTextExtent(fleetCount)
|
mdc.DrawText(pfname, self.textStartx, self.fleetNamey)
|
||||||
pfc = GetPartialText(bdc, fleetCount, self.copyPosX - 16 - self.padding - tx - textStart)
|
|
||||||
bdc.DrawText(pfc, textStart, rect.height/2 + (rect.height/2 -fcy) / 2 )
|
|
||||||
|
|
||||||
bdc.SetFont(self.fontSmall)
|
if self.tcFleetName.IsShown():
|
||||||
|
self.AdjustControlSizePos(self.tcFleetName, self.textStartx, self.toolbarx - self.editWidth - self.padding)
|
||||||
|
|
||||||
if self.highlighted:
|
def AdjustControlSizePos(self, editCtl, start, end):
|
||||||
brush = wx.Brush(self.btnbgcolour)
|
fnEditSize = editCtl.GetSize()
|
||||||
pen = wx.Pen(self.btnbgcolour)
|
|
||||||
|
|
||||||
bdc.SetPen(pen)
|
|
||||||
bdc.SetBrush(brush)
|
|
||||||
|
|
||||||
bdc.DrawRoundedRectangle(self.copyPosX - 8 - tx - self.padding, self.copyPosY-1, rect.width,20, 8)
|
|
||||||
bdc.DrawText(self.buttonsTip,self.copyPosX - tx - self.padding, self.copyPosY + 8 - ty/2)
|
|
||||||
|
|
||||||
self.btnCopy.SetPosition((self.copyPosX, self.copyPosY))
|
|
||||||
self.btnRename.SetPosition((self.renamePosX, self.renamePosY))
|
|
||||||
self.btnDelete.SetPosition((self.deletePosX, self.deletePosY))
|
|
||||||
|
|
||||||
self.btnCopy.Show()
|
|
||||||
self.btnRename.Show()
|
|
||||||
self.btnDelete.Show()
|
|
||||||
|
|
||||||
else:
|
|
||||||
self.btnCopy.Show(False)
|
|
||||||
self.btnRename.Show(False)
|
|
||||||
self.btnDelete.Show(False)
|
|
||||||
|
|
||||||
bdc.DrawBitmap(self.copyBmpGrey, self.copyPosX + 1, self.copyPosY + 1 )
|
|
||||||
|
|
||||||
if self.editHasFocus:
|
|
||||||
bdc.DrawBitmap(self.acceptBmpGrey, self.renamePosX + 1, self.renamePosY + 1 )
|
|
||||||
else:
|
|
||||||
bdc.DrawBitmap(self.renameBmpGrey, self.renamePosX + 1, self.renamePosY + 1 )
|
|
||||||
|
|
||||||
bdc.DrawBitmap(self.deleteBmpGrey, self.deletePosX + 1, self.deletePosY + 1 )
|
|
||||||
|
|
||||||
|
|
||||||
self.AdjustFleetNameEditSize(textStart, self.copyPosX - self.editWidth - self.padding)
|
|
||||||
|
|
||||||
def AdjustFleetNameEditSize(self, start,end):
|
|
||||||
fnEditSize = self.tcFleetName.GetSize()
|
|
||||||
wSize = self.GetSize()
|
wSize = self.GetSize()
|
||||||
fnEditPosX = end
|
fnEditPosX = end
|
||||||
fnEditPosY = (wSize.height - fnEditSize.height)/2
|
fnEditPosY = (wSize.height - fnEditSize.height)/2
|
||||||
if fnEditPosX < start:
|
if fnEditPosX < start:
|
||||||
self.tcFleetName.SetSize((self.editWidth + fnEditPosX - start,-1))
|
editCtl.SetSize((self.editWidth + fnEditPosX - start,-1))
|
||||||
self.tcFleetName.SetPosition((start,fnEditPosY))
|
editCtl.SetPosition((start,fnEditPosY))
|
||||||
else:
|
else:
|
||||||
self.tcFleetName.SetSize((self.editWidth,-1))
|
editCtl.SetSize((self.editWidth,-1))
|
||||||
self.tcFleetName.SetPosition((fnEditPosX,fnEditPosY))
|
editCtl.SetPosition((fnEditPosX,fnEditPosY))
|
||||||
|
|
||||||
def OnEditLostFocus(self, event):
|
|
||||||
if self.highlighted == 1:
|
|
||||||
self.editHasFocus = True
|
|
||||||
else:
|
|
||||||
self.HideEdit()
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def EditCheckEsc(self, event):
|
|
||||||
if event.GetKeyCode() == wx.WXK_ESCAPE:
|
|
||||||
self.HideEdit()
|
|
||||||
else:
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def HideEdit(self):
|
|
||||||
self.tcFleetName.Show(False)
|
|
||||||
self.editHasFocus = False
|
|
||||||
self.btnRename.SetBitmapLabel(self.renameBmp, False)
|
|
||||||
self.Refresh()
|
|
||||||
|
|
||||||
|
|
||||||
def OnBtnEnterWindow(self, event):
|
|
||||||
btn = event.GetEventObject()
|
|
||||||
if btn == self.btnCopy:
|
|
||||||
self.buttonsTip = "Copy Fleet"
|
|
||||||
elif btn == self.btnDelete:
|
|
||||||
self.buttonsTip = "Delete Fleet"
|
|
||||||
elif btn == self.btnRename:
|
|
||||||
self.buttonsTip = "Rename Fleet"
|
|
||||||
else:
|
|
||||||
self.buttonsTip = ""
|
|
||||||
self.Refresh()
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
|
|
||||||
def EnterWindow(self, event):
|
|
||||||
if not self.cleanupTimer:
|
|
||||||
self.cleanupTimer = wx.Timer(self, self.cleanupTimerId)
|
|
||||||
if not self.cleanupTimer.IsRunning():
|
|
||||||
self.cleanupTimer.Start(50)
|
|
||||||
|
|
||||||
self.highlighted = 1
|
|
||||||
self.buttonsTip = ""
|
|
||||||
self.Refresh()
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def LeaveWindow(self, event):
|
|
||||||
mposx, mposy = wx.GetMousePosition()
|
|
||||||
rect = self.GetRect()
|
|
||||||
rect.top = rect.left = 0
|
|
||||||
cx,cy = self.ScreenToClient((mposx,mposy))
|
|
||||||
if not rect.Contains((cx,cy)):
|
|
||||||
self.highlighted = 0
|
|
||||||
self.Refresh()
|
|
||||||
if self.cleanupTimer:
|
|
||||||
if self.cleanupTimer.IsRunning():
|
|
||||||
self.cleanupTimer.Stop()
|
|
||||||
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def OnTimer(self, event):
|
|
||||||
if event.GetId() == self.cleanupTimerId:
|
|
||||||
mposx, mposy = wx.GetMousePosition()
|
|
||||||
rect = self.GetRect()
|
|
||||||
rect.top = rect.left = 0
|
|
||||||
cx,cy = self.ScreenToClient((mposx,mposy))
|
|
||||||
if not rect.Contains((cx,cy)):
|
|
||||||
self.highlighted = 0
|
|
||||||
self.Refresh()
|
|
||||||
self.cleanupTimer.Stop()
|
|
||||||
event.Skip()
|
|
||||||
|
|
||||||
def GreyBitmap(self, bitmap):
|
|
||||||
img = bitmap.ConvertToImage()
|
|
||||||
img = img.ConvertToGreyscale()
|
|
||||||
return wx.BitmapFromImage(img)
|
|
||||||
|
|
||||||
class PFGenBitmapButton(GenBitmapButton):
|
class PFGenBitmapButton(GenBitmapButton):
|
||||||
def __init__(self, parent, id, bitmap, pos, size, style):
|
def __init__(self, parent, id, bitmap, pos, size, style):
|
||||||
|
|||||||
@@ -18,11 +18,21 @@
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
import os.path
|
||||||
|
|
||||||
import sqlalchemy
|
import sqlalchemy
|
||||||
import wx
|
import wx
|
||||||
|
|
||||||
|
from wx._core import PyDeadObjectError
|
||||||
|
from wx.lib.wordwrap import wordwrap
|
||||||
|
|
||||||
import service
|
import service
|
||||||
import config
|
import config
|
||||||
|
|
||||||
|
import gui.aboutData
|
||||||
|
import gui.chromeTabs
|
||||||
|
import gui.utils.animUtils as animUtils
|
||||||
|
|
||||||
from gui import bitmapLoader
|
from gui import bitmapLoader
|
||||||
from gui.mainMenuBar import MainMenuBar
|
from gui.mainMenuBar import MainMenuBar
|
||||||
from gui.additionsPane import AdditionsPane
|
from gui.additionsPane import AdditionsPane
|
||||||
@@ -30,20 +40,15 @@ from gui.marketBrowser import MarketBrowser
|
|||||||
from gui.multiSwitch import MultiSwitch
|
from gui.multiSwitch import MultiSwitch
|
||||||
from gui.statsPane import StatsPane
|
from gui.statsPane import StatsPane
|
||||||
from gui.shipBrowser import ShipBrowser, FitSelected
|
from gui.shipBrowser import ShipBrowser, FitSelected
|
||||||
from wx.lib.wordwrap import wordwrap
|
|
||||||
from gui.characterEditor import CharacterEditor
|
from gui.characterEditor import CharacterEditor
|
||||||
from gui.characterSelection import CharacterSelection
|
from gui.characterSelection import CharacterSelection
|
||||||
from gui.patternEditor import DmgPatternEditorDlg
|
from gui.patternEditor import DmgPatternEditorDlg
|
||||||
from gui.preferenceDialog import PreferenceDialog
|
from gui.preferenceDialog import PreferenceDialog
|
||||||
from gui.graphFrame import GraphFrame
|
from gui.graphFrame import GraphFrame
|
||||||
from gui.copySelectDialog import CopySelectDialog
|
from gui.copySelectDialog import CopySelectDialog
|
||||||
import gui.aboutData
|
|
||||||
from wx._core import PyDeadObjectError
|
|
||||||
import os.path
|
|
||||||
import gui.chromeTabs
|
|
||||||
from gui.utils.clipboard import toClipboard, fromClipboard
|
from gui.utils.clipboard import toClipboard, fromClipboard
|
||||||
from builtinViews import *
|
|
||||||
from gui.fleetBrowser import FleetBrowser
|
from gui.fleetBrowser import FleetBrowser
|
||||||
|
from builtinViews import *
|
||||||
|
|
||||||
#dummy panel no paint no erasebk
|
#dummy panel no paint no erasebk
|
||||||
class PFPanel(wx.Panel):
|
class PFPanel(wx.Panel):
|
||||||
@@ -451,8 +456,6 @@ class MainFrame(wx.Frame):
|
|||||||
saveDialog.Destroy()
|
saveDialog.Destroy()
|
||||||
|
|
||||||
def closeWaitDialog(self):
|
def closeWaitDialog(self):
|
||||||
if self.waitDialog.timer.IsRunning():
|
|
||||||
self.waitDialog.timer.Stop()
|
|
||||||
self.waitDialog.Destroy()
|
self.waitDialog.Destroy()
|
||||||
|
|
||||||
def openGraphFrame(self, event):
|
def openGraphFrame(self, event):
|
||||||
@@ -478,30 +481,19 @@ class MainFrame(wx.Frame):
|
|||||||
wnd = self
|
wnd = self
|
||||||
InspectionTool().Show(wnd, True)
|
InspectionTool().Show(wnd, True)
|
||||||
|
|
||||||
|
|
||||||
class WaitDialog(wx.Dialog):
|
class WaitDialog(wx.Dialog):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
wx.Dialog.__init__ (self, parent, id=wx.ID_ANY, title=u"Please wait ...", size=(200,30),
|
wx.Dialog.__init__ (self, parent, id=wx.ID_ANY, title=u"Please wait ...", size=(300,30),
|
||||||
style=wx.NO_BORDER)
|
style=wx.NO_BORDER)
|
||||||
mainSizer = wx.BoxSizer( wx.HORIZONTAL )
|
mainSizer = wx.BoxSizer( wx.HORIZONTAL )
|
||||||
|
|
||||||
self.progress = wx.Gauge( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL | wx.GA_SMOOTH )
|
self.progress = animUtils.LoadAnimation(self,label = "Processing", size=(300,30))
|
||||||
mainSizer.Add( self.progress, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 0 )
|
mainSizer.Add( self.progress, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 0 )
|
||||||
self.progress.SetRange(20)
|
|
||||||
self.progress.SetValue(0)
|
|
||||||
self.cycle = 0
|
|
||||||
self.SetSizer( mainSizer )
|
self.SetSizer( mainSizer )
|
||||||
self.Layout()
|
self.Layout()
|
||||||
self.timer = wx.Timer(self,wx.ID_ANY)
|
|
||||||
self.timer.Start(100)
|
|
||||||
self.Bind(wx.EVT_CLOSE,self.OnClose)
|
self.Bind(wx.EVT_CLOSE,self.OnClose)
|
||||||
self.Bind(wx.EVT_TIMER,self.OnTimer)
|
|
||||||
self.CenterOnParent()
|
self.CenterOnParent()
|
||||||
|
|
||||||
def OnTimer(self, event):
|
|
||||||
self.cycle += 1
|
|
||||||
if self.cycle > self.progress.GetRange():
|
|
||||||
self.cycle = 0
|
|
||||||
self.progress.SetValue(self.cycle)
|
|
||||||
|
|
||||||
def OnClose(self, event):
|
def OnClose(self, event):
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from wx.lib.buttons import GenBitmapButton
|
|||||||
|
|
||||||
import gui.utils.colorUtils as colorUtils
|
import gui.utils.colorUtils as colorUtils
|
||||||
import gui.utils.drawUtils as drawUtils
|
import gui.utils.drawUtils as drawUtils
|
||||||
|
import gui.utils.animUtils as animUtils
|
||||||
import gui.sfBrowserItem as SFItem
|
import gui.sfBrowserItem as SFItem
|
||||||
|
|
||||||
FitRenamed, EVT_FIT_RENAMED = wx.lib.newevent.NewEvent()
|
FitRenamed, EVT_FIT_RENAMED = wx.lib.newevent.NewEvent()
|
||||||
@@ -26,6 +27,23 @@ class PFWidgetsContainer(PFListPane):
|
|||||||
def __init__(self,parent):
|
def __init__(self,parent):
|
||||||
PFListPane.__init__(self,parent)
|
PFListPane.__init__(self,parent)
|
||||||
|
|
||||||
|
self.anim = animUtils.LoadAnimation(self,label = "", size=(100,12))
|
||||||
|
self.anim.Stop()
|
||||||
|
self.anim.Show(False)
|
||||||
|
|
||||||
|
def ShowLoading(self, mode = True):
|
||||||
|
if mode:
|
||||||
|
aweight,aheight = self.anim.GetSize()
|
||||||
|
cweight,cheight = self.GetSize()
|
||||||
|
ax = (cweight - aweight)/2
|
||||||
|
ay = (cheight - aheight)/2
|
||||||
|
self.anim.SetPosition((ax,ay))
|
||||||
|
self.anim.Show()
|
||||||
|
self.anim.Play()
|
||||||
|
else:
|
||||||
|
self.anim.Stop()
|
||||||
|
self.anim.Show(False)
|
||||||
|
|
||||||
def IsWidgetSelectedByContext(self, widget):
|
def IsWidgetSelectedByContext(self, widget):
|
||||||
mainFrame = gui.mainFrame.MainFrame.getInstance()
|
mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||||
stage = self.Parent.GetActiveStage()
|
stage = self.Parent.GetActiveStage()
|
||||||
@@ -162,6 +180,7 @@ class ShipBrowser(wx.Panel):
|
|||||||
else:
|
else:
|
||||||
self.lpane.AddWidget(ShipItem(self.lpane, ID, (name, fits), race))
|
self.lpane.AddWidget(ShipItem(self.lpane, ID, (name, fits), race))
|
||||||
|
|
||||||
|
self.lpane.ShowLoading(False)
|
||||||
self.lpane.RefreshList()
|
self.lpane.RefreshList()
|
||||||
|
|
||||||
def stage2(self, event):
|
def stage2(self, event):
|
||||||
@@ -175,6 +194,9 @@ class ShipBrowser(wx.Panel):
|
|||||||
|
|
||||||
|
|
||||||
self.lpane.RemoveAllChildren()
|
self.lpane.RemoveAllChildren()
|
||||||
|
|
||||||
|
self.lpane.ShowLoading()
|
||||||
|
|
||||||
sMarket = service.Market.getInstance()
|
sMarket = service.Market.getInstance()
|
||||||
sMarket.getShipListDelayed(self.stage2Callback, categoryID)
|
sMarket.getShipListDelayed(self.stage2Callback, categoryID)
|
||||||
|
|
||||||
|
|||||||
86
gui/utils/animUtils.py
Normal file
86
gui/utils/animUtils.py
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
import wx
|
||||||
|
import gui.utils.colorUtils as colorUtils
|
||||||
|
|
||||||
|
class LoadAnimation(wx.Window):
|
||||||
|
def __init__ (self, parent, id = wx.ID_ANY, label = "", pos = wx.DefaultPosition, size = wx.DefaultSize, style = 0):
|
||||||
|
wx.Window.__init__(self, parent, id, pos = pos, size = size, style = style)
|
||||||
|
|
||||||
|
self.label = label
|
||||||
|
|
||||||
|
self.animTimerId = wx.NewId()
|
||||||
|
self.animTimer = wx.Timer(self, self.animTimerId)
|
||||||
|
self.animTimerPeriod = 50
|
||||||
|
|
||||||
|
self.animCount = 0
|
||||||
|
self.animDir = 1
|
||||||
|
self.bars = 10
|
||||||
|
self.padding = 2
|
||||||
|
|
||||||
|
|
||||||
|
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
|
||||||
|
self.Bind(wx.EVT_TIMER, self.OnTimer)
|
||||||
|
self.Bind(wx.EVT_PAINT, self.OnPaint)
|
||||||
|
|
||||||
|
self.animTimer.Start(self.animTimerPeriod)
|
||||||
|
|
||||||
|
def Play(self):
|
||||||
|
if self.animTimer.IsRunning():
|
||||||
|
self.animTimer.Stop()
|
||||||
|
self.animCount = 0
|
||||||
|
self.animTimer.Start(self.animTimerPeriod)
|
||||||
|
|
||||||
|
def Stop(self):
|
||||||
|
if self.animTimer.IsRunning():
|
||||||
|
self.animTimer.Stop()
|
||||||
|
|
||||||
|
def OnTimer(self, event):
|
||||||
|
self.animCount += self.animDir
|
||||||
|
|
||||||
|
if self.animCount >= self.bars:
|
||||||
|
self.animCount = self.bars - 1
|
||||||
|
self.animDir = -1
|
||||||
|
|
||||||
|
if self.animCount < 0:
|
||||||
|
self.animCount = 0
|
||||||
|
self.animDir = 1
|
||||||
|
|
||||||
|
self.Refresh()
|
||||||
|
|
||||||
|
def OnEraseBackground(self, event):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def OnPaint(self, event):
|
||||||
|
rect = self.GetClientRect()
|
||||||
|
dc = wx.BufferedPaintDC(self)
|
||||||
|
windowColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||||
|
dc.SetBackground(wx.Brush(windowColor))
|
||||||
|
dc.Clear()
|
||||||
|
|
||||||
|
barColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOWTEXT)
|
||||||
|
shadeColor = colorUtils.GetSuitableColor(barColor, 0.75)
|
||||||
|
|
||||||
|
barWidth = (rect.width) / self.bars
|
||||||
|
barHeight = rect.height - self.padding * 2
|
||||||
|
|
||||||
|
x = self.padding
|
||||||
|
|
||||||
|
for bar in xrange(self.bars):
|
||||||
|
if bar != self.animCount:
|
||||||
|
dc.SetPen(wx.Pen(shadeColor))
|
||||||
|
dc.SetBrush(wx.Brush(shadeColor))
|
||||||
|
bh = barHeight
|
||||||
|
y = self.padding
|
||||||
|
else:
|
||||||
|
barColor = colorUtils.GetSuitableColor(barColor,float(self.animCount/2)/10)
|
||||||
|
dc.SetPen(wx.Pen(barColor))
|
||||||
|
dc.SetBrush(wx.Brush(barColor))
|
||||||
|
bh = rect.height
|
||||||
|
y = 0
|
||||||
|
|
||||||
|
dc.DrawRectangle(x, y, barWidth, bh)
|
||||||
|
x += barWidth
|
||||||
|
|
||||||
|
textColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOWTEXT)
|
||||||
|
dc.SetTextForeground(textColor)
|
||||||
|
dc.DrawLabel(self.label,rect,wx.ALIGN_CENTER)
|
||||||
|
|
||||||
Reference in New Issue
Block a user