Fleet widget graphic stuff

This commit is contained in:
HomeWorld
2010-11-22 17:03:40 +02:00
parent 6475a8b6e3
commit 1b45f30628
2 changed files with 76 additions and 22 deletions

View File

@@ -355,17 +355,6 @@ class PFTabRenderer:
self.tabRegion = None
self.closeBtnRegion = None
# self.leftZoneSpline = []
# self.rightZoneSpline = []
#
# self.lrZoneWidth = self.inclination * 3
# if not skipLRzones:
# self.CreateLRZoneSplines()
#
# self.leftRegion = self.CreateLeftRegion()
# self.rightRegion = self.CreateRightRegion()
self.font = wx.FontFromPixelSize((0, self.fontSize), wx.SWISS, wx.NORMAL, wx.NORMAL, False)
self.InitColors()
@@ -496,7 +485,7 @@ class PFTabRenderer:
count +=1
else:
break
if count > 2:
if count > 0:
# text = "%s%s" % (text[:count],".." if len(text)>count else "")
text = "%s" % text[:count]

View File

@@ -199,6 +199,9 @@ class FleetItem(wx.Window):
self.fleetName = fleetName
self.fleetCount = fleetCount
self.highlighted = 0
self.buttonsHovering = 0
self.buttonsTip = ""
self.selected = False
self.padding = 5
self.fontBig = wx.FontFromPixelSize((0,15),wx.SWISS, wx.NORMAL, wx.BOLD, False)
@@ -208,6 +211,25 @@ class FleetItem(wx.Window):
self.renameBmp = bitmapLoader.getBitmap("fit_rename_small", "icons")
self.deleteBmp = bitmapLoader.getBitmap("fit_delete_small","icons")
self.btnSize = (18,18)
if 'wxMac' in wx.PlatformInfo:
self.btnbgcolour = wx.Colour(0, 0, 0, 0)
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.btnCopy.Show(False)
self.btnCopy.SetBackgroundColour( self.btnbgcolour )
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.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_ERASE_BACKGROUND, lambda event: None)
@@ -215,8 +237,25 @@ class FleetItem(wx.Window):
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)
def OnBtnEnterWindow(self, event):
btn = event.GetEventObject()
self.buttonsHovering = 1
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 OnSelect(self, event):
# self.Parent.SelectWidget(self)
wx.PostEvent(self.Parent.Parent, FleetItemSelect(fleetID = self.fleetID))
event.Skip()
@@ -286,24 +325,50 @@ class FleetItem(wx.Window):
fcx,fcy = bdc.GetTextExtent(fleetCount)
bdc.DrawText(fleetCount, self.padding, rect.height/2 + (rect.height/2 -fcy) / 2 )
btnWidth,btnHeight = self.btnSize
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
self.deletePosX = rect.width - self.deleteBmp.GetWidth() - self.padding
self.renamePosX = self.deletePosX - self.renameBmp.GetWidth() - self.padding
self.copyPosX = self.renamePosX - self.copyBmp.GetWidth() - self.padding
self.renamePosY = self.deletePosY = self.copyPosY = (rect.height - self.renameBmp.GetHeight()) / 2
if self.highlighted:
brush = wx.Brush(self.btnbgcolour)
pen = wx.Pen(self.btnbgcolour)
bdc.DrawBitmap(self.copyBmp, self.copyPosX, self.copyPosY, 0)
bdc.DrawBitmap(self.renameBmp, self.renamePosX, self.renamePosY, 0)
bdc.DrawBitmap(self.deleteBmp, self.deletePosX, self.deletePosY, 0)
bdc.SetPen(pen)
bdc.SetBrush(brush)
tx,ty = bdc.GetTextExtent(self.buttonsTip)
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)
def EnterWindow(self, event):
self.highlighted = 1
self.buttonsHovering = 0
self.buttonsTip = ""
self.Refresh()
event.Skip()
def LeaveWindow(self, event):
self.highlighted = 0
self.Refresh()
if self.buttonsHovering == 0:
self.highlighted = 0
self.Refresh()
event.Skip()