home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.6)
-
- from __future__ import with_statement
- import wx
- from containers import PageContainer
- from dragtimer import WinDragTimer
- from OverlayImage import SimpleOverlayImage
- from tab import MultiTab
- from tabbar import TabBar
- from tabmanager import TabManager
- from common import pref, profile, setpref
- from logging import getLogger
- log = getLogger('uberbook')
- splitStyle = wx.SP_NOBORDER | wx.SP_LIVE_UPDATE
- wdt = WinDragTimer()
- tabman = TabManager()
- import config
- if config.platform == 'win':
- import cgui
-
- class UberBookTabController(cgui.TabController):
-
- def OnTabClosed(self, tab):
- ubertab = tab.Window.Tab
- ubertab.CloseTab()
-
-
- def OnTabActivated(self, tab):
- ubertab = tab.Window.Tab
- ubertab.SetActive(True)
- tlw = tab.Window.Top
- tlw.Show()
- if tlw.IsIconized():
- tlw.Iconize(False)
- if hasattr(tlw, 'OnIconize'):
- S = Storage
- import util
- tlw.OnIconize(S(Skip = Null, Iconized = (lambda : False)))
-
-
- tlw.Raise()
-
-
-
-
- def install_taskbar_tabs(notebook, preview_type):
- import gui.native.win.taskbar as tb
- nb = tb.get_tab_notebook(notebook.Top)
- (notebook, notebook.did_add) += (lambda win: nb.CreateTab(win, preview_type()))
- notebook.did_remove += nb.DestroyTab
- notebook.did_rearrange += nb.RearrangeTab
- notebook.did_activate += nb.SetTabActive
- (notebook.did_seticon,) += (lambda page, icon: if icon is not None:
- nb.SetTabIcon(page, icon)wx.NullBitmap)
- notebook.did_settitle += nb.SetTabTitle
-
-
- class NoteBook(wx.SplitterWindow):
-
- def __init__(self, parent, skinkey, preview = None):
- wx.SplitterWindow.__init__(self, parent, style = splitStyle)
- self.window = parent.Top
- self.manager = tabman
- self.winman = None
- self.manager.Register(self)
- self.tabbar = TabBar(self, skinkey)
- self.pagecontainer = PageContainer(self)
- self.Bind(wx.EVT_ERASE_BACKGROUND, (lambda e: pass))
- self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
- self.Bind(wx.EVT_LEFT_UP, self.OnSplitMove)
- self.Bind(wx.EVT_CLOSE, self.OnClose)
- self.side_tabs_width = pref('tabs.side_tabs_width', 100)
- profile.prefs.link('tabs.side_tabs', self.OnSideTabsSwitch)
- Delegate = Delegate
- import util.primitives.funcs
- self.did_add = Delegate()
- self.did_remove = Delegate()
- self.did_rearrange = Delegate()
- self.did_activate = Delegate()
- self.did_seticon = Delegate()
- self.did_settitle = Delegate()
- if config.platform == 'win':
- install_taskbar_tabs(self, preview)
-
-
-
- def OnClose(self, event):
- self.manager.UnRegister(self)
- event.Skip()
-
-
- def ActiveTab(self):
- return self.tabbar.ActiveTab
-
- ActiveTab = property(ActiveTab)
-
- def GetTabCount(self):
- return self.tabbar.GetTabCount()
-
-
- def Pages(self):
- return _[1]
-
-
- def NextTab(self):
- return self.tabbar.NextTab()
-
-
- def PrevTab(self):
- return self.tabbar.PrevTab()
-
-
- def UpdateSkin(self):
- pass
-
-
- def Split(self, val):
- if val:
- if self.Window2 is None:
- self.OnSideTabsSwitch(pref('tabs.side_tabs'))
-
- elif self.Window2 is not None:
- self.Unsplit(self.tabbar)
-
-
-
- def OnSideTabsSwitch(self, val):
- self.side_tabs = val
- split = None(getattr, self + 'Split' if not val else 'Vertically')
- if self.IsSplit():
- self.Unsplit()
-
- pos = None if val else self.tabbar.MinSize.height
- split(self.tabbar, self.pagecontainer, pos)
- None(self.SetSashSize if val else 0)
-
-
- def OnSplitMove(self, event):
- event.Skip()
- if self.side_tabs and self.IsSplit() and self.IsShownOnScreen():
- pos = self.SashPosition
- self.side_tabs_width = pos
- log.info('saving side tabs sash pos of %s', pos)
- setpref('tabs.side_tabs_width', pos)
-
-
-
- def __repr__(self):
- return '<Notebook with %r>' % self.tabbar
-
-
- def Add(self, panel, focus = None):
- self.Frozen().__enter__()
-
- try:
- if focus or not self.tabbar.GetTabCount():
- focus = True
- elif not focus:
- focus = False
-
- page = self.pagecontainer.Append(panel)
- s = self.tabbar.Add(page, focus)
- self.did_add(panel)
- if page.icon:
- self.did_seticon(panel, page.icon)
-
- self.pagecontainer.Layout()
- finally:
- pass
-
- return s
-
-
- def Insert(self, page, resort = True):
- self.pagecontainer.Append(page)
- self.tabbar.Add(page, True, resort)
- self.tabbar.dragorigin = page.tab
- self.did_add(page.panel)
- self.tabbar.DragFinish(True)
-
-
- def Remove(self, page):
- self.Frozen().__enter__()
-
- try:
- self.tabbar.Remove(page.tab)
- self.pagecontainer.Layout()
- finally:
- pass
-
-
-
- def CloseTab(self, tab):
- self.Frozen().__enter__()
-
- try:
- tab.CloseTab()
- self.pagecontainer.Layout()
- finally:
- pass
-
-
-
- def StartWindowDrag(self):
- if wx.LeftDown():
- if not wdt.IsRunning():
- self.preview = SimpleOverlayImage(self, MultiTab(self.tabbar.tabs))
- wdt.Start(self)
-
- self.manager.ReadyBook(self, wx.GetMousePosition())
-
-
-
-