home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / gui / uberwidgets / uberbook / UberBook.pyo (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  5.2 KB  |  130 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from __future__ import with_statement
  5. import wx
  6. from containers import PageContainer
  7. from OverlayImage import SimpleOverlayImage
  8. from tab import MultiTab
  9. from tabbar import TabBar
  10. from common import pref, profile, setpref
  11. from logging import getLogger
  12. log = getLogger('uberbook')
  13. splitStyle = wx.SP_NOBORDER | wx.SP_LIVE_UPDATE
  14.  
  15. class NoteBook(wx.SplitterWindow):
  16.     
  17.     def __init__(self, parent, window, manager, skinkey):
  18.         wx.SplitterWindow.__init__(self, parent, style = splitStyle)
  19.         self.window = window
  20.         self.manager = manager
  21.         self.manager.Register(self)
  22.         self.tabbar = TabBar(self, skinkey)
  23.         self.pagecontainer = PageContainer(self)
  24.         self.Bind(wx.EVT_ERASE_BACKGROUND, (lambda e: pass))
  25.         self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
  26.         self.Bind(wx.EVT_LEFT_UP, self.OnSplitMove)
  27.         self.side_tabs_width = pref('tabs.side_tabs_width', 100)
  28.         profile.prefs.link('tabs.side_tabs', self.OnSideTabsSwitch)
  29.  
  30.     
  31.     def ActiveTab(self):
  32.         return self.tabbar.ActiveTab
  33.  
  34.     ActiveTab = property(ActiveTab)
  35.     
  36.     def GetTabCount(self):
  37.         return self.tabbar.GetTabCount()
  38.  
  39.     
  40.     def Pages(self):
  41.         return _[1]
  42.  
  43.     
  44.     def NextTab(self):
  45.         return self.tabbar.NextTab()
  46.  
  47.     
  48.     def PrevTab(self):
  49.         return self.tabbar.PrevTab()
  50.  
  51.     
  52.     def UpdateSkin(self):
  53.         pass
  54.  
  55.     
  56.     def Split(self, val):
  57.         if val:
  58.             if self.Window2 is None:
  59.                 self.OnSideTabsSwitch(pref('tabs.side_tabs'))
  60.             
  61.         elif self.Window2 is not None:
  62.             self.Unsplit(self.tabbar)
  63.         
  64.  
  65.     
  66.     def Explode(self):
  67.         self.tabbar.Explode()
  68.  
  69.     
  70.     def OnSideTabsSwitch(self, val):
  71.         self.side_tabs = val
  72.         split = None(getattr, self + 'Split' if not val else 'Vertically')
  73.         if self.IsSplit():
  74.             self.Unsplit()
  75.         
  76.         pos = None if val else self.tabbar.MinSize.height
  77.         split(self.tabbar, self.pagecontainer, pos)
  78.         None(self.SetSashSize if val else 0)
  79.  
  80.     
  81.     def OnSplitMove(self, event):
  82.         event.Skip()
  83.         if self.side_tabs and self.IsSplit() and self.IsShownOnScreen():
  84.             pos = self.SashPosition
  85.             self.side_tabs_width = pos
  86.             log.info('saving side tabs sash pos of %s', pos)
  87.             setpref('tabs.side_tabs_width', pos)
  88.         
  89.  
  90.     
  91.     def __repr__(self):
  92.         return '<Notebook with %r>' % self.tabbar
  93.  
  94.     
  95.     def Add(self, panel, focus = None):
  96.         self.Frozen().__enter__()
  97.         
  98.         try:
  99.             if focus or not self.tabbar.GetTabCount():
  100.                 focus = True
  101.             elif not focus:
  102.                 focus = False
  103.             
  104.             s = self.tabbar.Add(self.pagecontainer.Append(panel), focus)
  105.             self.pagecontainer.Layout()
  106.         finally:
  107.             pass
  108.  
  109.         return s
  110.  
  111.     
  112.     def Insert(self, page, resort = True):
  113.         self.pagecontainer.Append(page)
  114.         self.tabbar.Add(page, True, resort)
  115.         self.tabbar.dragorigin = page.tab
  116.         self.tabbar.DragFinish(True)
  117.  
  118.     
  119.     def StartWindowDrag(self):
  120.         if wx.LeftDown():
  121.             wdt = self.window.winman.wdt
  122.             if not wdt.IsRunning():
  123.                 self.preview = SimpleOverlayImage(self, MultiTab(self.tabbar.tabs))
  124.                 wdt.Start(self)
  125.             
  126.             self.manager.ReadyBook(self, wx.GetMousePosition())
  127.         
  128.  
  129.  
  130.