rendered paste body from id import * class PaintPage(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent, -1) self.buffer=wx.EmptyBitmap(32, 32) self.drawing=True self.SetBackgroundColour("GRAY") self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftMouseDown) self.Bind(wx.EVT_LEFT_UP, self.OnLeftMouseUp) self.Bind(wx.EVT_MOTION, self.OnMouseMotion) self.Bind(wx.EVT_PAINT, self.OnPaint) def OnPaint(self, event): blowup=self.buffer.ConvertToImage().Scale(64, 64).ConvertToBitmap() dc=wx.BufferedPaintDC(self, blowup, wx.BUFFER_CLIENT_AREA) def OnLeftMouseDown(self, event): if event.LeftDown(): self.SetFocus() self.SetXY(event) self.CaptureMouse() self.drawing=True self.OnMouseMotion(event, True) def OnLeftMouseUp(self, event): if not event.LeftDown() and self.drawing: self.ReleaseMouse() self.drawing=False def OnMouseMotion(self, event, override=False): if (event.Dragging() or override) and self.drawing: dc=wx.BufferedDC(None, self.buffer) dc.SetUserScale(2, 2) dc.SetPen(wx.Pen('BLUE', 4)) coordinates=(self.x, self.y) + (event.GetX(), event.GetY()) dc.DrawLine(*coordinates) self.SetXY(event) self.Refresh() def SetXY(self, event): self.x, self.y=event.GetX(), event.GetY()