break out 'line' mode actions into separate functions

This commit is contained in:
Josh Holtrop 2011-07-27 16:52:23 -04:00
parent 1564fbbb74
commit 8b89a5975f

View File

@ -224,30 +224,13 @@ class SketchWidget:
def button_press_event(self, widget, event, data = None): def button_press_event(self, widget, event, data = None):
if event.button == 1: if event.button == 1:
if self.mode == 'line': if self.mode == 'line':
start = self.screenPtToPt((event.x, self.size[1] - event.y)) self.do_line_left_click(event.x, 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()
elif event.button == 2: elif event.button == 2:
self.panning = True self.panning = True
self.panning_start = (event.x, self.size[1] - event.y) self.panning_start = (event.x, self.size[1] - event.y)
elif event.button == 3: elif event.button == 3:
if self.mode == 'line': if self.mode == 'line':
if self.drawingLine is not None: self.do_line_right_click(event.x, event.y)
# cancel line currently being drawn
self.drawingLine = None
self.queue_redraw()
def button_release_event(self, widget, event, data = None): def button_release_event(self, widget, event, data = None):
if event.button == 2: if event.button == 2:
@ -373,3 +356,26 @@ class SketchWidget:
elif self.mode == 'circle': elif self.mode == 'circle':
self.drawingCircle = None self.drawingCircle = None
self.mode = mode 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()