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

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import wx
  5. from util import do
  6.  
  7. def HackedShow(self, pseudosizer, switch = True):
  8.     if switch:
  9.         pass
  10.     self.RealShow(pseudosizer.Shown)
  11.     self.ShouldShow = switch
  12.     pseudosizer.Recalc()
  13.  
  14.  
  15. class PseudoSizer(list):
  16.     
  17.     def __init__(self):
  18.         list.__init__(self)
  19.         self.position = wx.Point(0, 0)
  20.         self.space = 4
  21.         self.Shown = True
  22.  
  23.     
  24.     def Add(self, item):
  25.         self.append(item)
  26.         if self.Shown:
  27.             pass
  28.         item.Show(item.Shown)
  29.         item.ShouldShow = item.Shown
  30.         item.RealShow = item.Show
  31.         
  32.         item.Show = lambda s: HackedShow(item, self, s)
  33.         self.Recalc()
  34.  
  35.     
  36.     def SetPosition(self, pos):
  37.         if pos[0] != -1:
  38.             self.position.x = pos[0]
  39.         
  40.         if pos[1] != -1:
  41.             self.position.y = pos[1]
  42.         
  43.         self.Recalc()
  44.  
  45.     
  46.     def GetPosition(self):
  47.         return self.position
  48.  
  49.     
  50.     def SetSpace(self, space):
  51.         self.space = space
  52.         self.Recalc()
  53.  
  54.     
  55.     def GetSpace(self):
  56.         return self._space
  57.  
  58.     
  59.     def Recalc(self):
  60.         (x, y) = self.position
  61.         pos = wx.Point(x, y)
  62.         space = self.space
  63.         for item in self:
  64.             if item.Shown:
  65.                 item.Position = pos
  66.                 item.Size = item.BestSize
  67.                 pos.x += item.Size.width + space
  68.                 continue
  69.             pos
  70.         
  71.  
  72.     
  73.     def Layout(self):
  74.         self.Recalc()
  75.  
  76.     
  77.     def Clear(self, delete = False):
  78.         for item in self[:]:
  79.             item.RealShow(False)
  80.             self.remove(item)
  81.             item.Show = item.RealShow
  82.             if delete:
  83.                 item.Destroy()
  84.                 continue
  85.         
  86.  
  87.     
  88.     def Remove(self, item):
  89.         self.remove(item)
  90.         item.Show = item.RealShow
  91.  
  92.     
  93.     def Rect(self):
  94.         return wx.RectPS(self.position, self.Size)
  95.  
  96.     Rect = property(Rect)
  97.     
  98.     def Size(self):
  99.         w = 0
  100.         h = 0
  101.         for item in self:
  102.             if item.Shown:
  103.                 if item.Size.height > h:
  104.                     h = item.Size.height
  105.                 
  106.                 w += item.Size.width
  107.                 continue
  108.         
  109.         return wx.Size(w, h)
  110.  
  111.     Size = property(Size)
  112.     
  113.     def Show(self, switch = True):
  114.         self.Shown = switch
  115.         (do,)((lambda .0: for item in .0:
  116. if switch:
  117. passitem.RealShow(item.ShouldShow))(self))
  118.         self.Recalc()
  119.  
  120.  
  121.