X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f1a3f9c1a056e5ae063f020d38a5f40cc5e85ef..d654745dc573bceda1e9c4c0dc0502f534166e1b:/wxPython/samples/ide/activegrid/tool/AbstractEditor.py diff --git a/wxPython/samples/ide/activegrid/tool/AbstractEditor.py b/wxPython/samples/ide/activegrid/tool/AbstractEditor.py index 8369738428..18fbf6d7fc 100644 --- a/wxPython/samples/ide/activegrid/tool/AbstractEditor.py +++ b/wxPython/samples/ide/activegrid/tool/AbstractEditor.py @@ -48,8 +48,17 @@ class CanvasView(wx.lib.docview.View): self._pt2 = None self._needEraseLasso = False self._propShape = None + self._maxWidth = 2000 + self._maxHeight = 16000 + def OnDraw(self, dc): + """ for Print Preview and Print """ + dc.BeginDrawing() + self._canvas.Redraw(dc) + dc.EndDrawing() + + def OnCreate(self, doc, flags): frame = wx.GetApp().CreateDocumentFrame(self, doc, flags) frame.Show() @@ -130,9 +139,7 @@ class CanvasView(wx.lib.docview.View): wx.EVT_KILL_FOCUS(self._canvas, self.OnKillFocus) wx.EVT_SET_FOCUS(self._canvas, self.OnFocus) - maxWidth = 2000 - maxHeight = 16000 - self._canvas.SetScrollbars(20, 20, maxWidth / 20, maxHeight / 20) + self._canvas.SetScrollbars(20, 20, self._maxWidth / 20, self._maxHeight / 20) self._canvas.SetBackgroundColour(wx.WHITE) self._diagram = ogl.Diagram() @@ -654,7 +661,16 @@ class EditorCanvasShapeEvtHandler(ogl.ShapeEvtHandler): self._view.SetSelection(model, keys == self.SHIFT_KEY or keys == self.CONTROL_KEY) + def OnMovePre(self, dc, x, y, oldX, oldY, display): + """ Prevent objects from being dragged outside of viewable area """ + if (x > self._view._maxWidth) or (y > self._view._maxHeight): + return False + + return ogl.ShapeEvtHandler.OnMovePre(self, dc, x, y, oldX, oldY, display) + + def OnMovePost(self, dc, x, y, oldX, oldY, display): + """ Update the model's record of where the shape should be. Also enable redo/undo. """ if x == oldX and y == oldY: return if not self._view.GetDocument():