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

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import wx
  5. from math import radians
  6. from util.primitives.funcs import do
  7. from gui.windowfx import ApplySmokeAndMirrors
  8. from common import pref
  9. from logging import getLogger
  10. log = getLogger('OverlayImage')
  11.  
  12. class SimpleOverlayImage(wx.PopupWindow):
  13.     
  14.     def __init__(self, parent, host):
  15.         wx.PopupWindow.__init__(self, parent)
  16.         events = [
  17.             (wx.EVT_PAINT, self.OnPaint)]
  18.         (do,)((lambda .0: for event, method in .0:
  19. self.Bind(event, method))(events))
  20.         self.host = host
  21.         self.Size = host.Size
  22.  
  23.     
  24.     def OnPaint(self, event):
  25.         if not wx.IsDestroyed(self):
  26.             self.host.OnPaint(otherdc = wx.PaintDC(self), otherwindow = self)
  27.         
  28.  
  29.     
  30.     def Transition(self, dest):
  31.         pass
  32.  
  33.     
  34.     def Teleport(self, dest):
  35.         self.Move((dest[0] - self.Size.width / 2, dest[1] - self.Size.height / 2))
  36.         self.Refresh()
  37.  
  38.     
  39.     def alpha(self):
  40.         return pref('tabs.preview_alpha', 200)
  41.  
  42.     alpha = property(alpha)
  43.  
  44.  
  45. class OverlayImage(wx.PopupWindow):
  46.     
  47.     def __init__(self, parent, image, size = wx.Size(-1, -1), rot = 0):
  48.         wx.PopupWindow.__init__(self, parent)
  49.         events = [
  50.             (wx.EVT_PAINT, self.onPaint),
  51.             (wx.EVT_MOVE, self.OnMove)]
  52.         (do,)((lambda .0: for event, method in .0:
  53. self.Bind(event, method))(events))
  54.         self.parent = parent
  55.         self.rot = rot
  56.         if size != wx.Size(-1, -1):
  57.             self.SetSize(size)
  58.         
  59.         if isinstance(image, wx.Bitmap):
  60.             self.bitmap = image
  61.         else:
  62.             self.SetImage(image, size)
  63.  
  64.     
  65.     def SetImage(self, image, size = wx.Size(-1, -1)):
  66.         log.info('Overlay Image has been updated')
  67.         self.image = image
  68.         prebitmap = wx.ImageFromBitmap(image.GetBitmap(size))
  69.         prebitmap.ConvertAlphaToMask()
  70.         self.bitmap = wx.BitmapFromImage(prebitmap)
  71.         self.width = self.bitmap.Width
  72.         self.height = self.bitmap.Height
  73.         self.GenBitmap()
  74.  
  75.     
  76.     def OnMove(self, event):
  77.         self.Refresh()
  78.  
  79.     
  80.     def onPaint(self, event):
  81.         dc = wx.PaintDC(self)
  82.         dc.DrawBitmap(self.bitmap, 0, 0, False)
  83.  
  84.     
  85.     def GenBitmap(self):
  86.         if self.rot:
  87.             self.bitmap = wx.BitmapFromImage(self.bitmap.ConvertToImage().Rotate(radians(90 * self.rot), (0, 0)))
  88.         
  89.         if self.Size != (self.bitmap.Width + 1, self.bitmap.Height + 1):
  90.             wx.PopupWindow.SetSize(self, (self.bitmap.Width + 1, self.bitmap.Height + 1))
  91.         
  92.         ApplySmokeAndMirrors(self, self.bitmap)
  93.  
  94.     
  95.     def SetBitmapSize(self, size):
  96.         if size == self.Size:
  97.             return None
  98.         if size[0] > 0:
  99.             self.width = size[0]
  100.         
  101.         if size[1] > 0:
  102.             self.height = size[1]
  103.         
  104.         prebitmap = self.image.GetBitmap((self.width, self.height)).ConvertToImage()
  105.         prebitmap.ConvertAlphaToMask()
  106.         self.bitmap = wx.BitmapFromImage(prebitmap)
  107.         self.GenBitmap()
  108.  
  109.     
  110.     def SetRotation(self, rot = 0):
  111.         self.rot = rot
  112.  
  113.     
  114.     def Transition(self, dest):
  115.         pass
  116.  
  117.     
  118.     def Teleport(self, dest):
  119.         self.Move((dest[0] - self.Size.width // 2, dest[1]))
  120.  
  121.  
  122.