More tinkering to FitItem
This commit is contained in:
@@ -1470,7 +1470,18 @@ class FitItem2(SBItem):
|
||||
self.toolbar.AddButton(self.deleteBmp, "Delete", self.deleteBtnCB)
|
||||
|
||||
self.tcFitName = wx.TextCtrl(self, wx.ID_ANY, "%s" % self.fitName, wx.DefaultPosition, (self.editWidth,-1), wx.TE_PROCESS_ENTER)
|
||||
self.tcFitName.Show(False)
|
||||
|
||||
if self.shipBrowser.fitIDMustEditName != self.fitID:
|
||||
self.tcFitName.Show(False)
|
||||
else:
|
||||
self.tcFitName.SetFocus()
|
||||
self.tcFitName.SelectAll()
|
||||
|
||||
self.tcFitName.Bind(wx.EVT_TEXT_ENTER, self.renameFit)
|
||||
self.tcFitName.Bind(wx.EVT_KILL_FOCUS, self.editLostFocus)
|
||||
self.tcFitName.Bind(wx.EVT_KEY_DOWN, self.editCheckEsc)
|
||||
|
||||
self.selectedDelta = 0
|
||||
|
||||
self.animTimerId = wx.NewId()
|
||||
self.animCount = 100
|
||||
@@ -1478,20 +1489,43 @@ class FitItem2(SBItem):
|
||||
self.animStep = 0
|
||||
self.animPeriod = 10
|
||||
self.animDuration = 100
|
||||
|
||||
self.Bind(wx.EVT_TIMER, self.OnTimer)
|
||||
|
||||
if self.shipBrowser.GetActiveStage() != 4:
|
||||
self.Bind(wx.EVT_TIMER, self.OnTimer)
|
||||
self.animTimer.Start(self.animPeriod)
|
||||
else:
|
||||
self.animCount = 0
|
||||
|
||||
self.selTimerID = wx.NewId()
|
||||
|
||||
self.selTimer = wx.Timer(self,self.selTimerID)
|
||||
self.selTimer.Start(100)
|
||||
|
||||
def OnTimer(self, event):
|
||||
step = self.OUT_QUAD(self.animStep, 0, 10, self.animDuration)
|
||||
self.animCount = 10 - step
|
||||
self.animStep += self.animPeriod
|
||||
if self.animStep > self.animDuration or self.animCount < 0 :
|
||||
self.animCount = 0
|
||||
self.animTimer.Stop()
|
||||
self.Refresh()
|
||||
|
||||
if self.selTimerID == event.GetId():
|
||||
ctimestamp = time.time()
|
||||
interval = 10
|
||||
if ctimestamp < self.timestamp + interval:
|
||||
delta = (ctimestamp - self.timestamp) / interval
|
||||
self.selectedDelta = self.CalculateDelta(0x0,0x66,delta)
|
||||
self.Refresh()
|
||||
else:
|
||||
self.selectedDelta = 0x66
|
||||
self.selTimer.Stop()
|
||||
|
||||
if self.animTimerId == event.GetId():
|
||||
step = self.OUT_QUAD(self.animStep, 0, 10, self.animDuration)
|
||||
self.animCount = 10 - step
|
||||
self.animStep += self.animPeriod
|
||||
if self.animStep > self.animDuration or self.animCount < 0 :
|
||||
self.animCount = 0
|
||||
self.animTimer.Stop()
|
||||
self.Refresh()
|
||||
|
||||
def CalculateDelta(self, start, end, delta):
|
||||
return start + (end-start)*delta
|
||||
|
||||
def OUT_QUAD (self, t, b, c, d):
|
||||
t=float(t)
|
||||
@@ -1503,7 +1537,15 @@ class FitItem2(SBItem):
|
||||
|
||||
return -c *(t)*(t-2) + b
|
||||
|
||||
def editLostFocus(self, event):
|
||||
self.tcFitName.Show(False)
|
||||
self.Refresh()
|
||||
|
||||
def editCheckEsc(self, event):
|
||||
if event.GetKeyCode() == wx.WXK_ESCAPE:
|
||||
self.tcFitName.Show(False)
|
||||
else:
|
||||
event.Skip()
|
||||
|
||||
def copyBtnCB(self):
|
||||
self.copyFit()
|
||||
@@ -1516,7 +1558,30 @@ class FitItem2(SBItem):
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
|
||||
def renameBtnCB(self):
|
||||
pass
|
||||
if self.tcFitName.IsShown():
|
||||
self.tcFitName.Show(False)
|
||||
self.renameFit()
|
||||
else:
|
||||
self.tcFitName.SetValue(self.fitName)
|
||||
self.tcFitName.Show()
|
||||
|
||||
self.tcFitName.SetFocus()
|
||||
self.tcFitName.SelectAll()
|
||||
|
||||
self.Refresh()
|
||||
|
||||
def renameFit(self, event=None):
|
||||
sFit = service.Fit.getInstance()
|
||||
self.tcFitName.Show(False)
|
||||
self.editWasShown = 0
|
||||
fitName = self.tcFitName.GetValue()
|
||||
if fitName:
|
||||
self.fitName = fitName
|
||||
sFit.renameFit(self.fitID, self.fitName)
|
||||
wx.PostEvent(self.mainFrame, FitRenamed(fitID=self.fitID))
|
||||
self.Refresh()
|
||||
else:
|
||||
self.tcFitName.SetValue(self.fitName)
|
||||
|
||||
def deleteBtnCB(self):
|
||||
self.deleteFit()
|
||||
@@ -1541,7 +1606,6 @@ class FitItem2(SBItem):
|
||||
def MouseLeftUp(self, event):
|
||||
if self.tcFitName.IsShown():
|
||||
self.tcFitName.Show(False)
|
||||
self.newBtn.SetBitmap(self.newBmp)
|
||||
self.Refresh()
|
||||
else:
|
||||
activeFitID = self.mainFrame.getActiveFit()
|
||||
@@ -1550,7 +1614,7 @@ class FitItem2(SBItem):
|
||||
|
||||
def selectFit(self, event=None):
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=self.fitID))
|
||||
# self.Parent.RefreshList(True)
|
||||
self.Parent.RefreshList(True)
|
||||
|
||||
def UpdateElementsPos(self, mdc):
|
||||
rect = self.GetRect()
|
||||
@@ -1631,6 +1695,59 @@ class FitItem2(SBItem):
|
||||
editCtl.SetSize((self.editWidth,-1))
|
||||
editCtl.SetPosition((fnEditPosX,fnEditPosY))
|
||||
|
||||
def GetState(self):
|
||||
activeFitID = self.mainFrame.getActiveFit()
|
||||
|
||||
if self.highlighted and not activeFitID == self.fitID:
|
||||
state = SB_ITEM_HIGHLIGHTED
|
||||
|
||||
else:
|
||||
if activeFitID == self.fitID:
|
||||
if self.highlighted:
|
||||
state = SB_ITEM_SELECTED | SB_ITEM_HIGHLIGHTED
|
||||
else:
|
||||
state = SB_ITEM_SELECTED
|
||||
else:
|
||||
state = SB_ITEM_NORMAL
|
||||
return state
|
||||
|
||||
def RenderBackground(self):
|
||||
rect = self.GetRect()
|
||||
|
||||
windowColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)
|
||||
|
||||
activeFitID = self.mainFrame.getActiveFit()
|
||||
|
||||
state = self.GetState()
|
||||
|
||||
sFactor = 0.2
|
||||
mFactor = None
|
||||
eFactor = 0
|
||||
|
||||
if state == SB_ITEM_HIGHLIGHTED:
|
||||
mFactor = 0.55
|
||||
|
||||
elif state == SB_ITEM_SELECTED | SB_ITEM_HIGHLIGHTED:
|
||||
eFactor = 0.3
|
||||
elif state == SB_ITEM_SELECTED:
|
||||
eFactor = (0x33 - self.selectedDelta)/100
|
||||
else:
|
||||
sFactor = 0
|
||||
|
||||
if self.bkBitmap:
|
||||
if self.bkBitmap.eFactor == eFactor and self.bkBitmap.sFactor == sFactor and self.bkBitmap.mFactor == mFactor \
|
||||
and rect.width == self.bkBitmap.GetWidth() and rect.height == self.bkBitmap.GetHeight() :
|
||||
return
|
||||
else:
|
||||
del self.bkBitmap
|
||||
|
||||
self.bkBitmap = drawUtils.RenderGradientBar(windowColor, rect.width, rect.height, sFactor, eFactor, mFactor)
|
||||
self.bkBitmap.state = state
|
||||
self.bkBitmap.sFactor = sFactor
|
||||
self.bkBitmap.eFactor = eFactor
|
||||
self.bkBitmap.mFactor = mFactor
|
||||
|
||||
|
||||
class FitItem(wx.Window):
|
||||
def __init__(self, parent, fitID=None, shipFittingInfo=("Test", "cnc's avatar", 0 ), shipID = None, itemData=None,
|
||||
id=wx.ID_ANY, range=100, pos=wx.DefaultPosition,
|
||||
|
||||
Reference in New Issue
Block a user