From 8b89a5975fa34653d4f73323602adeb1a701c4bb Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 27 Jul 2011 16:52:23 -0400 Subject: [PATCH] break out 'line' mode actions into separate functions --- SketchWidget.py | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/SketchWidget.py b/SketchWidget.py index cf23799..75e226c 100644 --- a/SketchWidget.py +++ b/SketchWidget.py @@ -224,30 +224,13 @@ class SketchWidget: def button_press_event(self, widget, event, data = None): if event.button == 1: if self.mode == 'line': - start = self.screenPtToPt((event.x, self.size[1] - event.y)) - if self.drawingLine is not None: - self.sketch.shapes.append(self.drawingLine) - if self.drawingLine.getPt(0)[0] == self.drawingLine.getPt(1)[0]: - self.sketch.constraints.append( - Vertical(self.drawingLine, 0, - self.drawingLine, 1)) - elif (self.drawingLine.getPt(0)[1] - == self.drawingLine.getPt(1)[1]): - self.sketch.constraints.append( - Horizontal(self.drawingLine, 0, - self.drawingLine, 1)) - start = self.drawingLine.getPt(1) - self.drawingLine = Line(start[0], start[1], start[0], start[1]) - self.queue_redraw() + self.do_line_left_click(event.x, event.y) elif event.button == 2: self.panning = True self.panning_start = (event.x, self.size[1] - event.y) elif event.button == 3: if self.mode == 'line': - if self.drawingLine is not None: - # cancel line currently being drawn - self.drawingLine = None - self.queue_redraw() + self.do_line_right_click(event.x, event.y) def button_release_event(self, widget, event, data = None): if event.button == 2: @@ -373,3 +356,26 @@ class SketchWidget: elif self.mode == 'circle': self.drawingCircle = None self.mode = mode + + def do_line_left_click(self, x, y): + start = self.screenPtToPt((x, self.size[1] - y)) + if self.drawingLine is not None: + self.sketch.shapes.append(self.drawingLine) + if self.drawingLine.getPt(0)[0] == self.drawingLine.getPt(1)[0]: + self.sketch.constraints.append( + Vertical(self.drawingLine, 0, + self.drawingLine, 1)) + elif (self.drawingLine.getPt(0)[1] + == self.drawingLine.getPt(1)[1]): + self.sketch.constraints.append( + Horizontal(self.drawingLine, 0, + self.drawingLine, 1)) + start = self.drawingLine.getPt(1) + self.drawingLine = Line(start[0], start[1], start[0], start[1]) + self.queue_redraw() + + def do_line_right_click(self, x, y): + if self.drawingLine is not None: + # cancel line currently being drawn + self.drawingLine = None + self.queue_redraw()