home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.6)
-
- import wx
- from math import radians
- from util.primitives.funcs import do
- from gui.windowfx import ApplySmokeAndMirrors
- from common import pref
- from logging import getLogger
- log = getLogger('OverlayImage')
-
- class SimpleOverlayImage(wx.PopupWindow):
-
- def __init__(self, parent, host):
- wx.PopupWindow.__init__(self, parent)
- events = [
- (wx.EVT_PAINT, self.OnPaint)]
- (do,)((lambda .0: for event, method in .0:
- self.Bind(event, method))(events))
- self.host = host
- self.Size = host.Size
-
-
- def OnPaint(self, event):
- if not wx.IsDestroyed(self):
- self.host.OnPaint(otherdc = wx.PaintDC(self), otherwindow = self)
-
-
-
- def Transition(self, dest):
- pass
-
-
- def Teleport(self, dest):
- self.Move((dest[0] - self.Size.width / 2, dest[1] - self.Size.height / 2))
- self.Refresh()
-
-
- def alpha(self):
- return pref('tabs.preview_alpha', 200)
-
- alpha = property(alpha)
-
-
- class OverlayImage(wx.PopupWindow):
-
- def __init__(self, parent, image, size = wx.Size(-1, -1), rot = 0):
- wx.PopupWindow.__init__(self, parent)
- events = [
- (wx.EVT_PAINT, self.onPaint),
- (wx.EVT_MOVE, self.OnMove)]
- (do,)((lambda .0: for event, method in .0:
- self.Bind(event, method))(events))
- self.parent = parent
- self.rot = rot
- if size != wx.Size(-1, -1):
- self.SetSize(size)
-
- if isinstance(image, wx.Bitmap):
- self.bitmap = image
- else:
- self.SetImage(image, size)
-
-
- def SetImage(self, image, size = wx.Size(-1, -1)):
- log.info('Overlay Image has been updated')
- self.image = image
- prebitmap = wx.ImageFromBitmap(image.GetBitmap(size))
- prebitmap.ConvertAlphaToMask()
- self.bitmap = wx.BitmapFromImage(prebitmap)
- self.width = self.bitmap.Width
- self.height = self.bitmap.Height
- self.GenBitmap()
-
-
- def OnMove(self, event):
- self.Refresh()
-
-
- def onPaint(self, event):
- dc = wx.PaintDC(self)
- dc.DrawBitmap(self.bitmap, 0, 0, False)
-
-
- def GenBitmap(self):
- if self.rot:
- self.bitmap = wx.BitmapFromImage(self.bitmap.ConvertToImage().Rotate(radians(90 * self.rot), (0, 0)))
-
- if self.Size != (self.bitmap.Width + 1, self.bitmap.Height + 1):
- wx.PopupWindow.SetSize(self, (self.bitmap.Width + 1, self.bitmap.Height + 1))
-
- ApplySmokeAndMirrors(self, self.bitmap)
-
-
- def SetBitmapSize(self, size):
- if size == self.Size:
- return None
- if size[0] > 0:
- self.width = size[0]
-
- if size[1] > 0:
- self.height = size[1]
-
- prebitmap = self.image.GetBitmap((self.width, self.height)).ConvertToImage()
- prebitmap.ConvertAlphaToMask()
- self.bitmap = wx.BitmapFromImage(prebitmap)
- self.GenBitmap()
-
-
- def SetRotation(self, rot = 0):
- self.rot = rot
-
-
- def Transition(self, dest):
- pass
-
-
- def Teleport(self, dest):
- self.Move((dest[0] - self.Size.width // 2, dest[1]))
-
-
-