self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
self.bg_bmp = images.getBackgroundBitmap()
+ self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
# Make a shape from an image and mask. This one will demo
# dragging outside the window
bmp = images.getTestStarBitmap()
- ##bmp = wx.Bitmap('bitmaps/toucan.png')
+ #bmp = wx.Bitmap('bitmaps/toucan.png')
shape = DragShape(bmp)
shape.pos = (5, 5)
shape.fullscreen = True
self.shapes.append(shape)
+ bmp = images.getTheKidBitmap()
+ shape = DragShape(bmp)
+ shape.pos = (200, 5)
+ self.shapes.append(shape)
+
# Make a shape from some text
text = "Some Text"
bg_colour = wx.Colour(57, 115, 57) # matches the bg image
self.shapes.append(shape)
- # Make some shapes from some playing card images.
- x = 200
-
- for card in ['_01c_', '_12h_', '_13d_', '_10s_']:
- bmpFunc = getattr(images, "get%sBitmap" % card)
- bmp = bmpFunc()
- shape = DragShape(bmp)
- shape.pos = (x, 5)
- self.shapes.append(shape)
- x = x + 80
-
-
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
return shape
return None
- # Remove a shape from the display
- def EraseShape(self, shape, dc):
- r = shape.GetRect()
- dc.SetClippingRect(r)
- self.TileBackground(dc)
- self.DrawShapes(dc)
- dc.DestroyClippingRegion()
# Clears the background, then redraws it. If the DC is passed, then
# we only do so in the area so designated. Otherwise, it's the whole thing.
def OnEraseBackground(self, evt):
dc = evt.GetDC()
-
if not dc:
- dc = wxClientDC(self)
+ dc = wx.ClientDC(self)
rect = self.GetUpdateRegion().GetBox()
dc.SetClippingRect(rect)
self.TileBackground(dc)
self.dragImage.EndDrag()
self.dragImage = None
- dc = wx.ClientDC(self)
-
if self.hiliteShape:
- self.hiliteShape.Draw(dc)
+ self.RefreshRect(self.hiliteShape.GetRect())
self.hiliteShape = None
# reposition and draw the shape
)
self.dragShape.shown = True
- self.dragShape.Draw(dc)
+ self.RefreshRect(self.dragShape.GetRect())
self.dragShape = None
+
# The mouse is moving
def OnMotion(self, evt):
# Ignore mouse movement if we're not dragging.
if dx <= tolerance and dy <= tolerance:
return
- # erase the shape since it will be drawn independently now
- dc = wx.ClientDC(self)
+ # refresh the area of the window where the shape was so it
+ # will get erased.
self.dragShape.shown = False
- self.EraseShape(self.dragShape, dc)
-
+ self.RefreshRect(self.dragShape.GetRect(), True)
+ self.Update()
if self.dragShape.text:
self.dragImage = wx.DragString(self.dragShape.text,