Merge branch 'master' of evefit.org:pyfa
This commit is contained in:
301
gui/PFSearchBox.py
Normal file
301
gui/PFSearchBox.py
Normal file
@@ -0,0 +1,301 @@
|
||||
import wx
|
||||
import gui.utils.colorUtils as colorUtils
|
||||
import gui.utils.drawUtils as drawUtils
|
||||
from gui import bitmapLoader
|
||||
|
||||
|
||||
SearchButton, EVT_SEARCH_BTN = wx.lib.newevent.NewEvent()
|
||||
CancelButton, EVT_CANCEL_BTN = wx.lib.newevent.NewEvent()
|
||||
TextEnter, EVT_TEXT_ENTER = wx.lib.newevent.NewEvent()
|
||||
TextTyped, EVT_TEXT = wx.lib.newevent.NewEvent()
|
||||
|
||||
class PFSearchBox(wx.Window):
|
||||
def __init__(self, parent, id = wx.ID_ANY, value = "", pos = wx.DefaultPosition, size = wx.Size(-1,24), style = 0):
|
||||
wx.Window.__init__(self, parent, id, pos, size, style = 0)
|
||||
|
||||
self.isSearchButtonVisible = False
|
||||
self.isCancelButtonVisible = False
|
||||
|
||||
self.descriptiveText = "Search"
|
||||
|
||||
self.searchBitmap = None
|
||||
self.cancelBitmap = None
|
||||
self.bkBitmap = None
|
||||
|
||||
self.resized = True
|
||||
|
||||
self.searchButtonX = 0
|
||||
self.searchButtonY = 0
|
||||
self.searchButtonPressed = False
|
||||
|
||||
self.cancelButtonX = 0
|
||||
self.cancelButtonY = 0
|
||||
self.cancelButtonPressed = False
|
||||
|
||||
self.editX = 0
|
||||
self.editY = 0
|
||||
|
||||
|
||||
self.padding = 4
|
||||
|
||||
self._hl = False
|
||||
|
||||
w,h = size
|
||||
self.EditBox = wx.TextCtrl(self, wx.ID_ANY, "", wx.DefaultPosition, (-1, h - 2 if 'wxGTK' in wx.PlatformInfo else -1 ), wx.TE_PROCESS_ENTER | (wx.BORDER_NONE if 'wxGTK' in wx.PlatformInfo else 0))
|
||||
|
||||
self.Bind(wx.EVT_PAINT, self.OnPaint)
|
||||
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBk)
|
||||
self.Bind(wx.EVT_SIZE, self.OnSize)
|
||||
|
||||
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
|
||||
self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
|
||||
self.Bind(wx.EVT_MOTION, self.OnMouseMove)
|
||||
|
||||
self.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterLeaveWindow)
|
||||
self.Bind(wx.EVT_LEAVE_WINDOW, self.OnEnterLeaveWindow)
|
||||
|
||||
# self.EditBox.ChangeValue(self.descriptiveText)
|
||||
|
||||
self.EditBox.Bind(wx.EVT_SET_FOCUS, self.OnEditSetFocus)
|
||||
self.EditBox.Bind(wx.EVT_KILL_FOCUS, self.OnEditKillFocus)
|
||||
|
||||
self.EditBox.Bind(wx.EVT_TEXT, self.OnText)
|
||||
self.EditBox.Bind(wx.EVT_TEXT_ENTER, self.OnTextEnter)
|
||||
|
||||
self.SetMinSize(size)
|
||||
|
||||
def OnEnterLeaveWindow(self, event):
|
||||
self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
|
||||
self._hl = False
|
||||
|
||||
def OnText(self, event):
|
||||
wx.PostEvent(self, TextTyped())
|
||||
|
||||
def OnTextEnter(self, event):
|
||||
wx.PostEvent(self, TextEnter())
|
||||
|
||||
def OnEditSetFocus(self, event):
|
||||
# value = self.EditBox.GetValue()
|
||||
# if value == self.descriptiveText:
|
||||
# self.EditBox.ChangeValue("")
|
||||
pass
|
||||
|
||||
def OnEditKillFocus(self, event):
|
||||
if self.EditBox.GetValue() == "":
|
||||
self.Clear()
|
||||
|
||||
def Clear(self):
|
||||
self.EditBox.Clear()
|
||||
# self.EditBox.ChangeValue(self.descriptiveText)
|
||||
|
||||
def SetValue(self, value):
|
||||
self.EditBox.SetValue(value)
|
||||
|
||||
def ChangeValue(self, value):
|
||||
self.EditBox.ChangeValue(value)
|
||||
|
||||
def GetValue(self):
|
||||
return self.EditBox.GetValue()
|
||||
|
||||
def GetLineText(self, lineno):
|
||||
return self.EditBox.GetLineText(lineno)
|
||||
|
||||
def HitTest(self, target, position, area):
|
||||
x, y = target
|
||||
px, py = position
|
||||
aX, aY = area
|
||||
if (px > x and px < x + aX) and (py > y and py < y + aY):
|
||||
return True
|
||||
return False
|
||||
|
||||
def GetButtonsPos(self):
|
||||
btnpos = []
|
||||
btnpos.append( (self.searchButtonX, self.searchButtonY) )
|
||||
btnpos.append( (self.cancelButtonX, self.cancelButtonY) )
|
||||
return btnpos
|
||||
|
||||
def GetButtonsSize(self):
|
||||
btnsize = []
|
||||
|
||||
if self.searchBitmap:
|
||||
sw = self.searchBitmap.GetWidth()
|
||||
sh = self.searchBitmap.GetHeight()
|
||||
else:
|
||||
sw = 0
|
||||
sh = 0
|
||||
|
||||
if self.cancelBitmap:
|
||||
cw = self.cancelBitmap.GetWidth()
|
||||
ch = self.cancelBitmap.GetHeight()
|
||||
else:
|
||||
cw = 0
|
||||
ch = 0
|
||||
|
||||
btnsize.append( (sw,sh))
|
||||
btnsize.append( (cw,ch))
|
||||
return btnsize
|
||||
|
||||
def OnMouseMove(self, event):
|
||||
btnpos = self.GetButtonsPos()
|
||||
btnsize = self.GetButtonsSize()
|
||||
for btn in xrange(2):
|
||||
if self.HitTest(btnpos[btn], event.GetPosition(), btnsize[btn]):
|
||||
if not self._hl:
|
||||
self.SetCursor(wx.StockCursor(wx.CURSOR_HAND))
|
||||
self._hl = True
|
||||
break
|
||||
else:
|
||||
if self._hl:
|
||||
self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
|
||||
self._hl = False
|
||||
|
||||
def OnLeftDown(self, event):
|
||||
btnpos = self.GetButtonsPos()
|
||||
btnsize = self.GetButtonsSize()
|
||||
|
||||
self.CaptureMouse()
|
||||
for btn in xrange(2):
|
||||
if self.HitTest(btnpos[btn], event.GetPosition(), btnsize[btn]):
|
||||
if btn == 0:
|
||||
if not self.searchButtonPressed:
|
||||
self.searchButtonPressed = True
|
||||
self.Refresh()
|
||||
if btn == 1:
|
||||
if not self.cancelButtonPressed:
|
||||
self.cancelButtonPressed = True
|
||||
self.Refresh()
|
||||
|
||||
def OnLeftUp(self, event):
|
||||
btnpos = self.GetButtonsPos()
|
||||
btnsize = self.GetButtonsSize()
|
||||
|
||||
if self.HasCapture():
|
||||
self.ReleaseMouse()
|
||||
|
||||
for btn in xrange(2):
|
||||
if self.HitTest(btnpos[btn], event.GetPosition(), btnsize[btn]):
|
||||
if btn == 0:
|
||||
if self.searchButtonPressed:
|
||||
self.searchButtonPressed = False
|
||||
self.Refresh()
|
||||
self.SetFocus()
|
||||
wx.PostEvent(self, SearchButton())
|
||||
if btn == 1:
|
||||
if self.cancelButtonPressed:
|
||||
self.cancelButtonPressed = False
|
||||
self.Refresh()
|
||||
self.SetFocus()
|
||||
wx.PostEvent(self, CancelButton())
|
||||
else:
|
||||
if btn == 0:
|
||||
if self.searchButtonPressed:
|
||||
self.searchButtonPressed = False
|
||||
self.Refresh()
|
||||
if btn == 1:
|
||||
if self.cancelButtonPressed:
|
||||
self.cancelButtonPressed = False
|
||||
self.Refresh()
|
||||
|
||||
def OnSize(self, event):
|
||||
self.resized = True
|
||||
self.Refresh()
|
||||
|
||||
def OnEraseBk(self, event):
|
||||
pass
|
||||
|
||||
def UpdateElementsPos(self, dc):
|
||||
rect = self.GetRect()
|
||||
|
||||
if self.searchBitmap and self.isSearchButtonVisible:
|
||||
sw = self.searchBitmap.GetWidth()
|
||||
sh = self.searchBitmap.GetHeight()
|
||||
else:
|
||||
sw = 0
|
||||
sh = 0
|
||||
|
||||
if self.cancelBitmap and self.isCancelButtonVisible:
|
||||
cw = self.cancelBitmap.GetWidth()
|
||||
ch = self.cancelBitmap.GetHeight()
|
||||
else:
|
||||
cw = 0
|
||||
ch = 0
|
||||
|
||||
cwidth = rect.width
|
||||
cheight = rect.height
|
||||
|
||||
self.searchButtonX = self.padding
|
||||
self.searchButtonY = (cheight - sh) / 2
|
||||
self.cancelButtonX = cwidth - self.padding - cw
|
||||
self.cancelButtonY = (cheight - ch) / 2
|
||||
|
||||
self.editX = self.searchButtonX + self.padding + sw
|
||||
|
||||
editWidth, editHeight = self.EditBox.GetSize()
|
||||
|
||||
self.editY = (cheight - editHeight)/2
|
||||
self.EditBox.SetPosition((self.editX, self.editY))
|
||||
self.EditBox.SetSize( (self.cancelButtonX - self.padding - self.editX, -1))
|
||||
|
||||
def OnPaint(self, event):
|
||||
dc = wx.BufferedPaintDC(self)
|
||||
|
||||
bkColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||
sepColor = colorUtils.GetSuitableColor(bkColor, 0.2)
|
||||
rect = self.GetRect()
|
||||
|
||||
if self.resized:
|
||||
self.bkBitmap = drawUtils.RenderGradientBar(bkColor, rect.width, rect.height, 0.1, 0.1, 0.2, 2)
|
||||
self.UpdateElementsPos(dc)
|
||||
self.resized = False
|
||||
|
||||
dc.DrawBitmap(self.bkBitmap, 0, 0)
|
||||
|
||||
if self.isSearchButtonVisible:
|
||||
if self.searchBitmap:
|
||||
if self.searchButtonPressed:
|
||||
spad = 1
|
||||
else:
|
||||
spad = 0
|
||||
|
||||
dc.DrawBitmap(self.searchBitmapShadow, self.searchButtonX + 1, self.searchButtonY + 1)
|
||||
dc.DrawBitmap(self.searchBitmap, self.searchButtonX + spad, self.searchButtonY + spad)
|
||||
|
||||
|
||||
if self.isCancelButtonVisible:
|
||||
if self.cancelBitmap:
|
||||
if self.cancelButtonPressed:
|
||||
cpad = 1
|
||||
else:
|
||||
cpad = 0
|
||||
dc.DrawBitmap(self.cancelBitmapShadow, self.cancelButtonX + 1, self.cancelButtonY + 1)
|
||||
dc.DrawBitmap(self.cancelBitmap, self.cancelButtonX + cpad, self.cancelButtonY + cpad)
|
||||
|
||||
dc.SetPen(wx.Pen(sepColor,1))
|
||||
dc.DrawLine(0,rect.height - 1, rect.width, rect.height - 1)
|
||||
|
||||
def SetSearchBitmap(self, bitmap):
|
||||
self.searchBitmap = bitmap
|
||||
self.searchBitmapShadow = drawUtils.CreateDropShadowBitmap(bitmap, 0.2)
|
||||
|
||||
def SetCancelBitmap(self, bitmap):
|
||||
self.cancelBitmap = bitmap
|
||||
self.cancelBitmapShadow = drawUtils.CreateDropShadowBitmap(bitmap, 0.2)
|
||||
|
||||
def IsSearchButtonVisible(self):
|
||||
return self.isSearchButtonVisible
|
||||
|
||||
def IsCancelButtonVisible(self):
|
||||
return self.isCancelButtonVisible
|
||||
|
||||
def ShowSearchButton(self, show = True):
|
||||
self.isSearchButtonVisible = show
|
||||
|
||||
def ShowCancelButton(self, show = True):
|
||||
self.isCancelButtonVisible = show
|
||||
|
||||
def SetDescriptiveText(self, text):
|
||||
self.descriptiveText = text
|
||||
|
||||
def GetDescriptiveText(self):
|
||||
return self.descriptiveText
|
||||
|
||||
@@ -37,13 +37,28 @@ class BoosterView(d.Display):
|
||||
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
|
||||
self.mainFrame.Bind(mb.ITEM_SELECTED, self.addItem)
|
||||
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem)
|
||||
self.Bind(wx.EVT_LEFT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
|
||||
|
||||
if "__WXGTK__" in wx.PlatformInfo:
|
||||
self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu)
|
||||
else:
|
||||
self.Bind(wx.EVT_RIGHT_DOWN, self.scheduleMenu)
|
||||
|
||||
def kbEvent(self,event):
|
||||
keycode = event.GetKeyCode()
|
||||
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
cFit = service.Fit.getInstance()
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
cFit.removeBooster(fitID, self.GetItemData(row))
|
||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||
|
||||
event.Skip()
|
||||
|
||||
def fitChanged(self, event):
|
||||
|
||||
#Clear list and get out if current fitId is None
|
||||
|
||||
@@ -57,6 +57,8 @@ class DroneView(d.Display):
|
||||
self.mainFrame.Bind(mb.ITEM_SELECTED, self.addItem)
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem)
|
||||
self.Bind(wx.EVT_LEFT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
|
||||
|
||||
if "__WXGTK__" in wx.PlatformInfo:
|
||||
self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu)
|
||||
else:
|
||||
@@ -66,6 +68,20 @@ class DroneView(d.Display):
|
||||
self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag)
|
||||
self.SetDropTarget(DroneViewDrop(self.mergeDrones))
|
||||
|
||||
def kbEvent(self, event):
|
||||
keycode = event.GetKeyCode()
|
||||
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
|
||||
row = self.GetFirstSelected()
|
||||
firstSel = row
|
||||
if row != -1:
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
cFit = service.Fit.getInstance()
|
||||
drone = self.drones[self.GetItemData(row)]
|
||||
cFit.removeDrone(fitID, self.original.index(drone))
|
||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||
|
||||
event.Skip()
|
||||
|
||||
def startDrag(self, event):
|
||||
row = event.GetIndex()
|
||||
if row != -1:
|
||||
|
||||
@@ -37,8 +37,9 @@ class ImplantView(d.Display):
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
|
||||
self.mainFrame.Bind(mb.ITEM_SELECTED, self.addItem)
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem)
|
||||
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
|
||||
self.Bind(wx.EVT_LEFT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
|
||||
|
||||
if "__WXGTK__" in wx.PlatformInfo:
|
||||
self.Bind(wx.EVT_RIGHT_UP, self.scheduleMenu)
|
||||
else:
|
||||
@@ -52,8 +53,8 @@ class ImplantView(d.Display):
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
cFit.removeImplant(fitID, self.GetItemData(row))
|
||||
row = self.GetNextSelected(row)
|
||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||
event.Skip()
|
||||
|
||||
def fitChanged(self, event):
|
||||
#Clear list and get out if current fitId is None
|
||||
|
||||
@@ -22,7 +22,9 @@ import service
|
||||
import gui.display as d
|
||||
from gui.cachingImageList import CachingImageList
|
||||
from gui.contextMenu import ContextMenu
|
||||
import gui.PFSearchBox as SBox
|
||||
|
||||
from gui import bitmapLoader
|
||||
|
||||
ItemSelected, ITEM_SELECTED = wx.lib.newevent.NewEvent()
|
||||
|
||||
@@ -32,19 +34,9 @@ class MarketBrowser(wx.Panel):
|
||||
vbox = wx.BoxSizer(wx.VERTICAL)
|
||||
self.SetSizer(vbox)
|
||||
|
||||
# Add a search button on top
|
||||
|
||||
# Add a WHOLE panel for ONE SINGLE search button
|
||||
# We have to be able to give the search more size, which can't be done in another way.
|
||||
# (That I found)
|
||||
p = wx.Panel(self)
|
||||
sizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
p.SetSizer(sizer)
|
||||
|
||||
vbox.Add(p, 0, wx.EXPAND)
|
||||
self.search = SearchBox(p)
|
||||
sizer.Add(self.search, 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 2)
|
||||
p.SetMinSize((wx.SIZE_AUTO_WIDTH, 33))
|
||||
# Add a search box on top
|
||||
self.search = SearchBox(self)
|
||||
vbox.Add(self.search, 0, wx.EXPAND)
|
||||
|
||||
self.splitter = wx.SplitterWindow(self, style = wx.SP_LIVE_UPDATE)
|
||||
vbox.Add(self.splitter, 1, wx.EXPAND)
|
||||
@@ -107,10 +99,15 @@ class MarketBrowser(wx.Panel):
|
||||
def jump(self, item):
|
||||
self.marketView.jump(item)
|
||||
|
||||
class SearchBox(wx.SearchCtrl):
|
||||
class SearchBox(SBox.PFSearchBox):
|
||||
def __init__(self, parent):
|
||||
wx.SearchCtrl.__init__(self, parent, wx.ID_ANY, style=wx.TE_PROCESS_ENTER)
|
||||
self.ShowCancelButton(True)
|
||||
SBox.PFSearchBox.__init__(self, parent)
|
||||
cancelBitmap = bitmapLoader.getBitmap("fit_delete_small","icons")
|
||||
searchBitmap = bitmapLoader.getBitmap("fsearch_small","icons")
|
||||
self.SetSearchBitmap(searchBitmap)
|
||||
self.SetCancelBitmap(cancelBitmap)
|
||||
self.ShowSearchButton()
|
||||
self.ShowCancelButton()
|
||||
|
||||
class MarketTree(wx.TreeCtrl):
|
||||
def __init__(self, parent, marketBrowser):
|
||||
@@ -211,10 +208,10 @@ class ItemView(d.Display):
|
||||
self.marketView = marketBrowser.marketView
|
||||
|
||||
# Make sure our search actually does interesting stuff
|
||||
self.marketBrowser.search.Bind(wx.EVT_TEXT_ENTER, self.scheduleSearch)
|
||||
self.marketBrowser.search.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN, self.scheduleSearch)
|
||||
self.marketBrowser.search.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN, self.clearSearch)
|
||||
self.marketBrowser.search.Bind(wx.EVT_TEXT, self.scheduleSearch)
|
||||
self.marketBrowser.search.Bind(SBox.EVT_TEXT_ENTER, self.scheduleSearch)
|
||||
self.marketBrowser.search.Bind(SBox.EVT_SEARCH_BTN, self.scheduleSearch)
|
||||
self.marketBrowser.search.Bind(SBox.EVT_CANCEL_BTN, self.clearSearch)
|
||||
self.marketBrowser.search.Bind(SBox.EVT_TEXT, self.scheduleSearch)
|
||||
|
||||
# Make sure WE do interesting stuff too
|
||||
self.Bind(wx.EVT_CONTEXT_MENU, self.contextMenu)
|
||||
|
||||
@@ -56,11 +56,25 @@ class ProjectedView(d.Display):
|
||||
self.Bind(wx.EVT_LEFT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_RIGHT_DOWN, self.click)
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.remove)
|
||||
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
|
||||
|
||||
self.droneView = gui.droneView.DroneView
|
||||
|
||||
self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.startDrag)
|
||||
self.SetDropTarget(ProjectedViewDrop(self.mergeDrones))
|
||||
|
||||
def kbEvent(self,event):
|
||||
keycode = event.GetKeyCode()
|
||||
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
|
||||
fitID = self.mainFrame.getActiveFit()
|
||||
cFit = service.Fit.getInstance()
|
||||
row = self.GetFirstSelected()
|
||||
if row != -1:
|
||||
cFit.removeProjected(fitID, self.get(row))
|
||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||
|
||||
event.Skip()
|
||||
|
||||
def handleDrag(self, type, fitID):
|
||||
#Those are drags coming from pyfa sources, NOT builtin wx drags
|
||||
if type == "fit":
|
||||
|
||||
@@ -216,7 +216,7 @@ class RaceSelector(wx.Window):
|
||||
|
||||
windowColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||
bkColor = colorUtils.GetSuitableColor(windowColor, 0.1)
|
||||
sepColor = colorUtils.GetSuitableColor(windowColor, 0.6)
|
||||
sepColor = colorUtils.GetSuitableColor(windowColor, 0.2)
|
||||
|
||||
mdc = wx.BufferedPaintDC(self)
|
||||
|
||||
@@ -244,18 +244,25 @@ class RaceSelector(wx.Window):
|
||||
mdc.DrawBitmap(dropShadow, rect.width - self.buttonsPadding - bmp.GetWidth() + 1, y + 1)
|
||||
mdc.DrawBitmap(bmp, rect.width - self.buttonsPadding - bmp.GetWidth(), y)
|
||||
y+=raceBmp.GetHeight() + self.buttonsPadding
|
||||
mdc.SetPen(wx.Pen(sepColor,1))
|
||||
mdc.DrawLine(rect.width - 1, 0, rect.width -1, rect.height)
|
||||
else:
|
||||
mdc.DrawBitmap(dropShadow, x + 1, self.buttonsPadding + 1)
|
||||
mdc.DrawBitmap(bmp, x, self.buttonsPadding)
|
||||
x+=raceBmp.GetWidth() + self.buttonsPadding
|
||||
mdc.SetPen(wx.Pen(sepColor,1))
|
||||
mdc.DrawLine(0, 0, rect.width, 0)
|
||||
|
||||
if self.direction < 1:
|
||||
if self.layout == wx.VERTICAL:
|
||||
mdc.DrawBitmap(self.bmpArrow, -2, (rect.height - self.bmpArrow.GetHeight()) / 2)
|
||||
else:
|
||||
mdc.SetPen(wx.Pen(sepColor,1))
|
||||
mdc.DrawLine(0, 0, rect.width, 0)
|
||||
mdc.DrawBitmap(self.bmpArrow, (rect.width - self.bmpArrow.GetWidth()) / 2, -2)
|
||||
|
||||
|
||||
|
||||
def OnTimer(self,event):
|
||||
if event.GetId() == self.animTimerID:
|
||||
start = 0
|
||||
@@ -324,11 +331,11 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
self.resetBmpH = bitmapLoader.getBitmap("freset_small","icons")
|
||||
self.switchBmpH = bitmapLoader.getBitmap("fit_switch_view_mode_small","icons")
|
||||
|
||||
self.resetBmp = self.AdjustAlphaChannel(self.resetBmpH)
|
||||
self.rewBmp = self.AdjustAlphaChannel(self.rewBmpH)
|
||||
self.searchBmp = self.AdjustAlphaChannel(self.searchBmpH)
|
||||
self.switchBmp = self.AdjustAlphaChannel(self.switchBmpH)
|
||||
self.newBmp = self.AdjustAlphaChannel(self.newBmpH)
|
||||
self.resetBmp = self.AdjustChannels(self.resetBmpH)
|
||||
self.rewBmp = self.AdjustChannels(self.rewBmpH)
|
||||
self.searchBmp = self.AdjustChannels(self.searchBmpH)
|
||||
self.switchBmp = self.AdjustChannels(self.switchBmpH)
|
||||
self.newBmp = self.AdjustChannels(self.newBmpH)
|
||||
|
||||
self.toolbar.AddButton(self.resetBmp, "Ship groups", clickCallback = self.OnHistoryReset, hoverBitmap = self.resetBmpH)
|
||||
self.toolbar.AddButton(self.rewBmp, "Back", clickCallback = self.OnHistoryBack, hoverBitmap = self.rewBmpH)
|
||||
@@ -342,8 +349,8 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
self.inSearch = False
|
||||
|
||||
self.fontSmall = wx.FontFromPixelSize((0,12),wx.SWISS, wx.NORMAL, wx.NORMAL, False)
|
||||
|
||||
self.BrowserSearchBox = wx.TextCtrl(self, wx.ID_ANY, "", wx.DefaultPosition, (-1,-1), wx.TE_PROCESS_ENTER)
|
||||
w,h = size
|
||||
self.BrowserSearchBox = wx.TextCtrl(self, wx.ID_ANY, "", wx.DefaultPosition, (-1, h - 2 if 'wxGTK' in wx.PlatformInfo else -1 ), wx.TE_PROCESS_ENTER | (wx.BORDER_NONE if 'wxGTK' in wx.PlatformInfo else 0))
|
||||
self.BrowserSearchBox.Show(False)
|
||||
|
||||
self.BrowserSearchBox.Bind(wx.EVT_TEXT_ENTER, self.OnBrowserSearchBoxEnter)
|
||||
@@ -440,10 +447,11 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
stage,data = self.shipBrowser.browseHist.pop()
|
||||
self.gotoStage(stage,data)
|
||||
|
||||
def AdjustAlphaChannel(self, bitmap):
|
||||
def AdjustChannels(self, bitmap):
|
||||
img = wx.ImageFromBitmap(bitmap)
|
||||
img = img.AdjustChannels(1,1,1,0.4)
|
||||
img = img.AdjustChannels(1.05,1.05,1.05,1)
|
||||
return wx.BitmapFromImage(img)
|
||||
|
||||
def UpdateElementsPos(self, mdc):
|
||||
rect = self.GetRect()
|
||||
|
||||
@@ -462,13 +470,14 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
bEditBoxWidth, bEditBoxHeight = self.BrowserSearchBox.GetSize()
|
||||
self.browserBoxY = (rect.height - bEditBoxHeight) / 2
|
||||
|
||||
self.bEditBoxWidth = rect.width - self.browserBoxX
|
||||
self.bEditBoxWidth = rect.width - self.browserBoxX - self.padding
|
||||
|
||||
def DrawItem(self, mdc):
|
||||
rect = self.GetRect()
|
||||
|
||||
windowColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||
textColor = colorUtils.GetSuitableColor(windowColor, 1)
|
||||
sepColor = colorUtils.GetSuitableColor(windowColor, 0.2)
|
||||
|
||||
mdc.SetTextForeground(textColor)
|
||||
|
||||
@@ -479,6 +488,8 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
self.toolbar.SetPosition((self.toolbarx, self.toolbary))
|
||||
mdc.SetFont(self.fontSmall)
|
||||
mdc.DrawText(self.toolbar.hoverLabel, self.thoverx, self.thovery)
|
||||
mdc.SetPen(wx.Pen(sepColor,1))
|
||||
mdc.DrawLine(0,rect.height - 1, rect.width, rect.height - 1)
|
||||
|
||||
def RenderBackground(self):
|
||||
rect = self.GetRect()
|
||||
|
||||
Reference in New Issue
Block a user