break out 'line' mode actions into separate functions
This commit is contained in:
parent
1564fbbb74
commit
8b89a5975f
@ -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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user