More misc fixes

This commit is contained in:
cncfanatics
2010-11-17 14:46:07 +01:00
parent 03a4a004ea
commit 23928477d5
2 changed files with 23 additions and 7 deletions

View File

@@ -30,11 +30,10 @@ class VetoAble():
return self.__vetoed
class NotebookTabChangeEvent():
def __init__(self, old, new):
self.__old = old
self.__new = new
self.Selection = property(self.GetSelection)
self.OldSelection = property(self.GetOldSelection)
def GetOldSelection(self):
return self.__old
@@ -42,6 +41,9 @@ class NotebookTabChangeEvent():
def GetSelection(self):
return self.__new
OldSelection = property(GetOldSelection)
Selection = property(GetSelection)
class PageChanging(_PageChanging, NotebookTabChangeEvent, VetoAble):
def __init__(self, old, new):
NotebookTabChangeEvent.__init__(self, old, new)
@@ -100,6 +102,9 @@ class PFNotebook(wx.Panel):
return self.pages[i]
def SetPage(self, i, page):
if i >= len(self.pages):
return
oldPage = self.pages[i]
self.pages[i] = page
if oldPage == self.activePage:
@@ -123,7 +128,7 @@ class PFNotebook(wx.Panel):
def GetSelection(self):
return self.GetPageIndex(self.activePage)
def AddPage(self, tabWnd, tabTitle = wx.EmptyString, tabImage = None, showClose = True):
def AddPage(self, tabWnd, tabTitle ="Empty Tab", tabImage = None, showClose = True):
if self.activePage:
self.activePage.Hide()
@@ -659,6 +664,7 @@ class PFTabsContainer(wx.Panel):
self.Refresh()
if self.HasCapture():
self.ReleaseMouse()
return
if self.startDrag:
@@ -699,28 +705,28 @@ class PFTabsContainer(wx.Panel):
return None
def CheckTabSelected(self,tab, mposx, mposy):
oldSelTab = self.GetSelectedTab()
if oldSelTab == tab:
return True
if self.TabHitTest(tab, mposx, mposy):
tab.SetSelected(True)
if tab != oldSelTab:
oldSelTab.SetSelected(False)
oldSelTab.SetSelected(False)
self.Refresh()
ev = PageChanging(self.tabs.index(oldSelTab), self.tabs.index(tab))
wx.PostEvent(self.Parent, ev)
if ev.isVetoed():
return False
self.Refresh()
selTab = self.tabs.index(tab)
self.Parent.SetSelection(selTab)
wx.PostEvent(self.Parent, PageChanged(self.tabs.index(oldSelTab), self.tabs.index(tab)))
return True
return False
def CheckTabClose(self, tab, mposx, mposy):

View File

@@ -98,6 +98,16 @@ class FittingView(d.Display):
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
self.Bind(wx.EVT_LEFT_DOWN, self.click)
self.Bind(wx.EVT_RIGHT_DOWN, self.click)
self.parent.Bind(gui.chromeTabs.EVT_NOTEBOOK_PAGE_CHANGED, self.pageChanged)
def pageChanged(self, event):
if self.parent.IsActive(self):
fitID = self.getActiveFit()
sFit = service.Fit.getInstance()
sFit.switchFit(fitID)
wx.PostEvent(self.mainFrame, FitChanged(fitID=fitID))
event.Skip()
def getActiveFit(self):
return self.activeFitID