+# -*- coding: iso-8859-1 -*-
+#----------------------------------------------------------------------------
+# Name: bmpshape.py
+# Purpose: Bitmap shape
+#
+# Author: Pierre Hjälm (from C++ original by Julian Smart)
+#
+# Created: 2004-05-08
+# RCS-ID: $Id$
+# Copyright: (c) 2004 Pierre Hjälm - 1998 Julian Smart
+# Licence: wxWindows license
+#----------------------------------------------------------------------------
+
+from __future__ import division
+
+from _basic import RectangleShape
+
+
+class BitmapShape(RectangleShape):
+ """Draws a bitmap (non-resizable)."""
+ def __init__(self):
+ RectangleShape.__init__(self, 100, 50)
+ self._filename=""
+
+ def OnDraw(self, dc):
+ if not self._bitmap.Ok():
+ return
+
+ x = self._xpos-self._bitmap.GetWidth() / 2
+ y = self._ypos-self._bitmap.GetHeight() / 2
+ dc.DrawBitmap(self._bitmap, x, y, True)
+
+ def SetSize(self, w, h, recursive = True):
+ if self._bitmap.Ok():
+ w = self._bitmap.GetWidth()
+ h = self._bitmap.GetHeight()
+
+ self.SetAttachmentSize(w, h)
+
+ self._width = w
+ self._height = h
+
+ self.SetDefaultRegionSize()
+
+ def GetBitmap(self):
+ """Return a the bitmap associated with this shape."""
+ return self._bitmap
+
+ def SetBitmap(self, bitmap):
+ """Set the bitmap associated with this shape.
+
+ You can delete the bitmap from the calling application, since
+ reference counting will take care of holding on to the internal bitmap
+ data.
+ """
+ self._bitmap = bitmap
+ if self._bitmap.Ok():
+ self.SetSize(self._bitmap.GetWidth(), self._bitmap.GetHeight())
+
+ def SetFilename(self, f):
+ """Set the bitmap filename."""
+ self._filename = f
+
+ def GetFilename(self):
+ """Return the bitmap filename."""
+ return self._filename