home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 October / maximum-cd-2011-10.iso / DiscContents / digsby_setup.exe / lib / gui / uberwidgets / UberProgressBar.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2011-06-22  |  5.3 KB  |  113 lines

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