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)
- bmp = images.getTheKidBitmap()
- shape = DragShape(bmp)
- shape.pos = (200, 5)
- self.shapes.append(shape)
-
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 = wx.ClientDC(self)
rect = self.GetUpdateRegion().GetBox()
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,