# Make a shape from some text
text = "Some Text"
+ bg_colour = wxColour(57, 115, 57) # matches the bg image
font = wxFont(15, wxROMAN, wxNORMAL, wxBOLD)
textExtent = self.GetFullTextExtent(text, font)
bmp = wxEmptyBitmap(textExtent[0], textExtent[1])
dc = wxMemoryDC()
dc.SelectObject(bmp)
+ dc.SetBackground(wxBrush(bg_colour, wxSOLID))
dc.Clear()
dc.SetTextForeground(wxRED)
dc.SetFont(font)
dc.DrawText(text, 0, 0)
dc.SelectObject(wxNullBitmap)
- del dc
- mask = wxMaskColour(bmp, wxWHITE)
+ mask = wxMaskColour(bmp, bg_colour)
bmp.SetMask(mask)
shape = DragShape(bmp)
shape.pos = wxPoint(5, 100)
EVT_LEFT_DOWN(self, self.OnLeftDown)
EVT_LEFT_UP(self, self.OnLeftUp)
EVT_MOTION(self, self.OnMotion)
+ EVT_LEAVE_WINDOW(self, self.OnLeaveWindow)
+ def OnLeaveWindow(self, evt):
+ pass
+
def TileBackground(self, dc):
# tile the background bitmap
dc.DestroyClippingRegion()
-
-
def OnEraseBackground(self, evt):
dc = evt.GetDC()
if not dc:
dc = wxClientDC(self)
+ rect = self.GetUpdateRegion().GetBox()
+ dc.SetClippingRegion(rect.x, rect.y, rect.width, rect.height)
self.TileBackground(dc)
#----------------------------------------------------------------------
def runTest(frame, nb, log):
- win = DragCanvas(nb, -1)
+ win = wxPanel(nb, -1)
+ canvas = DragCanvas(win, -1)
+ def onSize(evt, panel=win, canvas=canvas): canvas.SetSize(panel.GetSize())
+ EVT_SIZE(win, onSize)
return win
#----------------------------------------------------------------------