From 11ae1f582bb2c4a47323338626a65d1685810b47 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Fri, 19 Nov 2010 17:38:09 +0200 Subject: [PATCH] Proto for FleetItem Widget --- gui/fleetBrowser.py | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/gui/fleetBrowser.py b/gui/fleetBrowser.py index 7ad18763e..d0e314226 100644 --- a/gui/fleetBrowser.py +++ b/gui/fleetBrowser.py @@ -1,8 +1,81 @@ import wx +import copy FleetSelected, EVT_FLEET_SELECTED = wx.lib.newevent.NewEvent() +class FleetItem(wx.Window): + def __init__(self, parent, fleetID, fleetName, fleetCount, + id=wx.ID_ANY, pos=wx.DefaultPosition, + size=(0,16), style=0): + wx.Window.__init__(self, parent, id, pos, size, style) + + self.fleetID = fleetID + self.fleetName = fleetName + self.fleetCount = fleetCount + self.highlighted = 0 + + self.Bind(wx.EVT_PAINT, self.OnPaint) + + self.Bind(wx.EVT_LEAVE_WINDOW, self.LeaveWindow) + self.Bind(wx.EVT_ENTER_WINDOW, self.EnterWindow) + + def Rename(self, newName): + self.fleetName = newName + + def Delete(self): + print "Delete stuff..." + + def Copy(self): + print "Copy" + + def OnPaint(self, event): + rect = self.GetRect() + + #Bitmap for our buffered DC + canvas = wx.EmptyBitmap(rect.width, rect.height) + + #Buffered DC + bdc = wx.BufferedPaintDC(self) + bdc.SelectObject(canvas) + + #gradient rect - clear the window + grect = copy.copy(rect) + grect.top = grect.left = 0 + + grect.height = grect.height / 2 + + if self.highlighted: + + sr = 221 + sg = 221 + sb = 221 + + startColor = (sr,sg,sb) + + bdc.GradientFillLinear(grect, startColor, wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW),wx.SOUTH) + 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: + bdc.SetBackground(wx.Brush(wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW))) + bdc.SetTextForeground(wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOWTEXT )) + bdc.Clear() + + def EnterWindow(self, event): + self.highlighted = 1 + self.Refresh() + event.Skip() + + def LeaveWindow(self, event): + self.highlighted = 0 + self.Refresh() + event.Skip() + + + class FleetBrowser(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) self.SetBackgroundColour("pink") + x = FleetItem(self, 1, 1, 1, size = (200,32)) \ No newline at end of file