home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 February / maximum-cd-2011-02.iso / DiscContents / digsby_setup85.exe / lib / gui / uberwidgets / formattedinput2 / splittereventsmixin.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-11-24  |  3.3 KB  |  86 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import wx
  5. import config
  6. from common import setpref, pref
  7. wxMSW = 'wxMSW' in wx.PlatformInfo
  8. from FormattedExpandoTextCtrl import EVT_ETC_LAYOUT_NEEDED
  9. EVT_SIZE = None if config.platform == 'win' else wx.wxEVT_SIZE
  10.  
  11. class SplitterEventMixin(object):
  12.     
  13.     def OnExpandEventSplitter(self, event):
  14.         if self.resizing:
  15.             return None
  16.         self.OnExpandEvent(event)
  17.         if hasattr(self, 'splitter'):
  18.             best_size = self.BestSizeControl.BestSize.height
  19.             splitterpos = self.splitter.ClientSize.height - best_size - self.splitter.SashSize
  20.             self.splitter.SetSashPosition(splitterpos)
  21.             self.Layout()
  22.         
  23.  
  24.     
  25.     def BestSizeControl(self):
  26.         if 'wxMac' in wx.PlatformInfo:
  27.             return self.tc
  28.         return self
  29.  
  30.     BestSizeControl = property(BestSizeControl)
  31.     
  32.     def BindSplitter(self, splitter, heightpref = None):
  33.         splitter.Bind(wx.EVT_LEFT_DOWN, self.OnSplitterStart)
  34.         splitter.Bind(wx.EVT_LEFT_UP, self.OnSplitterSet)
  35.         self.splitter = splitter
  36.         self.heightpref = heightpref
  37.         self.resizing = False
  38.         self.Bind(EVT_ETC_LAYOUT_NEEDED, self.OnExpandEventSplitter)
  39.         if 'wxMac' in wx.PlatformInfo:
  40.             self.tc.Bind(wx.EVT_TEXT, self.OnExpandEventSplitter)
  41.         
  42.         tc = self.tc
  43.         tc.SetMinHeight(pref(self.heightpref, 0))
  44.         tc.ForceExpandEvent()
  45.         self.Top.Bind(wx.EVT_SHOW, self.OnTopShow)
  46.         self.splitter.GrandParent.Bind(wx.EVT_SHOW, self.OnTopShow)
  47.         self.Top.Bind(wx.EVT_ICONIZE, self.OnRestore)
  48.  
  49.     
  50.     def OnSplitterStart(self, event):
  51.         self.resizing = True
  52.         tc = self.tc
  53.         baseh = tc.GetNatHeight()
  54.         tc.SetMinHeight(baseh)
  55.         self.BestSizeControl.MinSize = self.BestSizeControl.BestSize
  56.         event.Skip()
  57.  
  58.     
  59.     def OnSplitterSet(self, event):
  60.         self.resizing = False
  61.         event.Skip()
  62.         tc = self.tc
  63.         natHeight = tc.GetNatHeight()
  64.         setHeight = tc.GetSize().height
  65.         h = None if setHeight <= natHeight else setHeight
  66.         if hasattr(self, 'heightpref') and self.heightpref is not None:
  67.             setpref(self.heightpref, h)
  68.         
  69.         tc.SetMinHeight(h)
  70.  
  71.     
  72.     def OnTopShow(self, event):
  73.         event.Skip()
  74.         if event.GetShow():
  75.             self.tc.ForceExpandEvent()
  76.         
  77.  
  78.     
  79.     def OnRestore(self, event):
  80.         event.Skip()
  81.         if not event.Iconized():
  82.             wx.CallAfter(self.tc.ForceExpandEvent)
  83.         
  84.  
  85.  
  86.