def __init__(self, bmp):
self.bmp = bmp
self.pos = wxPoint(0,0)
- self.shown = true
+ self.shown = True
self.text = None
- self.fullscreen = false
+ self.fullscreen = False
def HitTest(self, pt):
rect = self.GetRect()
- return rect.Inside(pt.x, pt.y)
+ return rect.InsideXY(pt.x, pt.y)
def GetRect(self):
dc.Blit(self.pos.x, self.pos.y,
self.bmp.GetWidth(), self.bmp.GetHeight(),
- memDC, 0, 0, op, true)
+ memDC, 0, 0, op, True)
- return true
+ return True
else:
- return false
+ return False
bmp = images.getTestStarBitmap()
shape = DragShape(bmp)
shape.pos = wxPoint(5, 5)
- shape.fullscreen = true
+ shape.fullscreen = True
self.shapes.append(shape)
# 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)
# reposition and draw the shape
self.dragShape.pos = self.dragShape.pos + evt.GetPosition() - self.dragStartPos
- self.dragShape.shown = true
+ self.dragShape.shown = True
self.dragShape.Draw(dc)
self.dragShape = None
# erase the shape since it will be drawn independently now
dc = wxClientDC(self)
- self.dragShape.shown = false
+ self.dragShape.shown = False
self.EraseShape(self.dragShape, dc)
# if we have shape and image then move it, posibly highlighting another shape.
elif self.dragShape and self.dragImage:
onShape = self.FindShape(evt.GetPosition())
- unhiliteOld = false
- hiliteNew = false
+ unhiliteOld = False
+ hiliteNew = False
# figure out what to hilite and what to unhilite
if self.hiliteShape:
if onShape is None or self.hiliteShape is not onShape:
- unhiliteOld = true
+ unhiliteOld = True
if onShape and onShape is not self.hiliteShape and onShape.shown:
- hiliteNew = TRUE
+ hiliteNew = True
# if needed, hide the drag image so we can update the window
if unhiliteOld or hiliteNew:
#----------------------------------------------------------------------
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
#----------------------------------------------------------------------
overview = """\
"""
+
+
+if __name__ == '__main__':
+ import sys,os
+ import run
+ run.main(['', os.path.basename(sys.argv[0])])
+