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

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import wx
  5. import config
  6. from gui.textutil import GetTextExtent, default_font
  7. from util import do, try_this
  8. from gui import skin
  9. from cgui import SplitImage4
  10. from gui.windowfx import ApplySmokeAndMirrors
  11. from gui.skin.skinobjects import SkinColor
  12. from gui.uberwidgets import UberWidget
  13.  
  14. class UberProgressBar(wx.Gauge, UberWidget):
  15.     
  16.     def __init__(self, parent, id = -1, range = 100, skinkey = None, showlabel = False, style = wx.GA_SMOOTH, pos = wx.DefaultPosition, size = wx.DefaultSize):
  17.         wx.Gauge.__init__(self, parent, -1, range, pos, size, style)
  18.         self.style = style
  19.         self.range = range
  20.         self.value = 0
  21.         self.showlabel = showlabel
  22.         events = [
  23.             (wx.EVT_PAINT, self.OnPaint),
  24.             (wx.EVT_ERASE_BACKGROUND, self.OnBGPaint),
  25.             (wx.EVT_SIZE, self.OnSize)]
  26.         (do,)((lambda .0: for event, method in .0:
  27. self.Bind(event, method))(events))
  28.         self.SetSkinKey(skinkey, True)
  29.         self.Calcumalate()
  30.  
  31.     
  32.     def UpdateSkin(self):
  33.         key = self.skinkey
  34.         
  35.         s = lambda k, default = (sentinel,): skin.get(key + '.' + k, default)
  36.         mode = (try_this,)((lambda : str(s('mode', ''))), '')
  37.         if config.platformName != 'mac' and key and mode.lower() != 'native':
  38.             self.native = False
  39.             self.repeat = (try_this,)((lambda : str(s('style', '')).lower()), '') == 'repeat'
  40.             self.padding = s('padding', 0)
  41.             self.Font = s('font', (lambda : default_font()))
  42.             self.bg = s('backgrounds.normal', None)
  43.             self.fg = s('backgrounds.fill', (lambda : SkinColor(wx.BLUE)))
  44.             self.normalfc = s('fontcolors.normal', wx.BLACK)
  45.             self.fillfc = s('fontcolors.fill', wx.WHITE)
  46.         else:
  47.             self.native = True
  48.         self.OnSize()
  49.  
  50.     
  51.     def OnSize(self, event = None):
  52.         if not (self.native) and isinstance(self.bg, SplitImage4):
  53.             ApplySmokeAndMirrors(self, self.bg.GetBitmap(self.Size))
  54.         else:
  55.             ApplySmokeAndMirrors(self)
  56.  
  57.     
  58.     def OnBGPaint(self, event):
  59.         if self.native:
  60.             event.Skip()
  61.         
  62.  
  63.     
  64.     def OnPaint(self, event):
  65.         if self.native:
  66.             event.Skip()
  67.             return None
  68.         
  69.         dc = wx.BufferedPaintDC(self)
  70.         rect = wx.RectS(self.Size)
  71.         if self.bg:
  72.             self.bg.Draw(dc, rect)
  73.         
  74.         rect.width = int((float(self.value) / float(self.range)) * self.Size.x)
  75.         if self.repeat:
  76.             curser = wx.Point(self.padding, 0)
  77.             while curser.x < self.fill:
  78.                 self.fg.Draw(dc, wx.RectPS(curser, (self.fg.width, rect.height)))
  79.                 curser.x += self.fg.width + self.padding
  80.                 continue
  81.                 curser
  82.         else:
  83.             self.fg.Draw(dc, wx.RectS((self.fill, rect.height)))
  84.  
  85.     
  86.     def Calcumalate(self):
  87.         if self.native:
  88.             return None
  89.         
  90.         self.fill = self.Size.width * (float(self.value) / float(self.range))
  91.         self.Refresh()
  92.  
  93.     
  94.     def SetRange(self, range):
  95.         self.range = range
  96.         wx.Gauge.SetRange(self, range)
  97.         self.Calcumalate()
  98.  
  99.     
  100.     def SetValue(self, value):
  101.         self.value = value
  102.         wx.Gauge.SetValue(self, value)
  103.         self.Calcumalate()
  104.  
  105.     
  106.     def GetRange(self):
  107.         return self.range
  108.  
  109.     
  110.     def GetValue(self):
  111.         return self.value
  112.  
  113.  
  114.