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

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import wx
  5. from math import radians
  6. from util 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 isinstance(image, wx.Bitmap):
  57.             self.bitmap = image
  58.         else:
  59.             self.SetImage(image, size)
  60.  
  61.     
  62.     def SetImage(self, image, size = wx.Size(-1, -1)):
  63.         log.info('Overlay Image has been updated')
  64.         self.image = image
  65.         prebitmap = wx.ImageFromBitmap(image.GetBitmap(size))
  66.         prebitmap.ConvertAlphaToMask()
  67.         self.bitmap = wx.BitmapFromImage(prebitmap)
  68.         self.width = self.bitmap.Width
  69.         self.height = self.bitmap.Height
  70.         self.GenBitmap()
  71.  
  72.     
  73.     def OnMove(self, event):
  74.         self.Refresh()
  75.  
  76.     
  77.     def onPaint(self, event):
  78.         dc = wx.PaintDC(self)
  79.         dc.DrawBitmap(self.bitmap, 0, 0, False)
  80.  
  81.     
  82.     def GenBitmap(self):
  83.         if self.rot:
  84.             self.bitmap = wx.BitmapFromImage(self.bitmap.ConvertToImage().Rotate(radians(90 * self.rot), (0, 0)))
  85.         
  86.         if self.Size != (self.bitmap.Width + 1, self.bitmap.Height + 1):
  87.             wx.PopupWindow.SetSize(self, (self.bitmap.Width + 1, self.bitmap.Height + 1))
  88.         
  89.         ApplySmokeAndMirrors(self, self.bitmap)
  90.  
  91.     
  92.     def SetSize(self, size):
  93.         if size == self.Size:
  94.             return None
  95.         
  96.         if size[0] > 0:
  97.             self.width = size[0]
  98.         
  99.         if size[1] > 0:
  100.             self.height = size[1]
  101.         
  102.         prebitmap = self.image.GetBitmap((self.width, self.height)).ConvertToImage()
  103.         prebitmap.ConvertAlphaToMask()
  104.         self.bitmap = wx.BitmapFromImage(prebitmap)
  105.         self.GenBitmap()
  106.  
  107.     
  108.     def SetRotation(self, rot = 0):
  109.         self.rot = rot
  110.  
  111.     
  112.     def Transition(self, dest):
  113.         pass
  114.  
  115.     
  116.     def Teleport(self, dest):
  117.         self.Move((dest[0] - self.Size.width // 2, dest[1]))
  118.  
  119.  
  120.