right-click while not drawing will return to select mode
This commit is contained in:
parent
7d256d4fe1
commit
4a76120fce
@ -414,6 +414,8 @@ class SketchWidget:
|
|||||||
if self.drawingShape is not None:
|
if self.drawingShape is not None:
|
||||||
self.cancel_drawing_shape()
|
self.cancel_drawing_shape()
|
||||||
self.queue_redraw()
|
self.queue_redraw()
|
||||||
|
else:
|
||||||
|
self.window.set_mode('')
|
||||||
|
|
||||||
def do_line_motion(self, x, y):
|
def do_line_motion(self, x, y):
|
||||||
self.update_hover_snap_point(x, y)
|
self.update_hover_snap_point(x, y)
|
||||||
@ -470,6 +472,8 @@ class SketchWidget:
|
|||||||
if self.drawingShape is not None:
|
if self.drawingShape is not None:
|
||||||
self.cancel_drawing_shape()
|
self.cancel_drawing_shape()
|
||||||
self.queue_redraw()
|
self.queue_redraw()
|
||||||
|
else:
|
||||||
|
self.window.set_mode('')
|
||||||
|
|
||||||
def do_circle_motion(self, x, y):
|
def do_circle_motion(self, x, y):
|
||||||
if self.drawingShape is not None:
|
if self.drawingShape is not None:
|
||||||
|
28
Window.py
28
Window.py
@ -7,7 +7,8 @@ from SketchWidget import SketchWidget
|
|||||||
|
|
||||||
class Window:
|
class Window:
|
||||||
def __init__(self, title):
|
def __init__(self, title):
|
||||||
self.mode_buttons = {}
|
self.mode_buttons_to_names = {}
|
||||||
|
self.mode_names_to_buttons = {}
|
||||||
|
|
||||||
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
|
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
|
||||||
self.window.set_size_request(600, 500)
|
self.window.set_size_request(600, 500)
|
||||||
@ -19,23 +20,26 @@ class Window:
|
|||||||
|
|
||||||
ss.solve()
|
ss.solve()
|
||||||
|
|
||||||
self.sw = SketchWidget(ss, self.window)
|
self.sw = SketchWidget(ss, self)
|
||||||
|
|
||||||
self.toolbar = gtk.Toolbar()
|
self.toolbar = gtk.Toolbar()
|
||||||
self.toolbar.set_style(gtk.TOOLBAR_BOTH)
|
self.toolbar.set_style(gtk.TOOLBAR_BOTH)
|
||||||
ttb = gtk.ToggleToolButton()
|
ttb = gtk.ToggleToolButton()
|
||||||
self.mode_buttons[ttb] = 'select'
|
self.mode_buttons_to_names[ttb] = 'select'
|
||||||
|
self.mode_names_to_buttons['select'] = ttb
|
||||||
ttb.set_label('Select')
|
ttb.set_label('Select')
|
||||||
ttb.connect('toggled', self.mode_toggle_event)
|
ttb.connect('toggled', self.mode_toggle_event)
|
||||||
ttb.set_active(True)
|
ttb.set_active(True)
|
||||||
self.toolbar.insert(ttb, -1)
|
self.toolbar.insert(ttb, -1)
|
||||||
ttb = gtk.ToggleToolButton()
|
ttb = gtk.ToggleToolButton()
|
||||||
self.mode_buttons[ttb] = 'line'
|
self.mode_buttons_to_names[ttb] = 'line'
|
||||||
|
self.mode_names_to_buttons['line'] = ttb
|
||||||
ttb.set_label('Line')
|
ttb.set_label('Line')
|
||||||
ttb.connect('toggled', self.mode_toggle_event)
|
ttb.connect('toggled', self.mode_toggle_event)
|
||||||
self.toolbar.insert(ttb, -1)
|
self.toolbar.insert(ttb, -1)
|
||||||
ttb = gtk.ToggleToolButton()
|
ttb = gtk.ToggleToolButton()
|
||||||
self.mode_buttons[ttb] = 'circle'
|
self.mode_buttons_to_names[ttb] = 'circle'
|
||||||
|
self.mode_names_to_buttons['circle'] = ttb
|
||||||
ttb.set_label('Circle')
|
ttb.set_label('Circle')
|
||||||
ttb.connect('toggled', self.mode_toggle_event)
|
ttb.connect('toggled', self.mode_toggle_event)
|
||||||
self.toolbar.insert(ttb, -1)
|
self.toolbar.insert(ttb, -1)
|
||||||
@ -65,14 +69,22 @@ class Window:
|
|||||||
|
|
||||||
def mode_toggle_event(self, ttb):
|
def mode_toggle_event(self, ttb):
|
||||||
if not ttb.get_active():
|
if not ttb.get_active():
|
||||||
for b in self.mode_buttons:
|
for b in self.mode_buttons_to_names:
|
||||||
if b.get_active():
|
if b.get_active():
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
ttb.set_active(True)
|
ttb.set_active(True)
|
||||||
else:
|
else:
|
||||||
for b in self.mode_buttons:
|
for b in self.mode_buttons_to_names:
|
||||||
if b != ttb:
|
if b != ttb:
|
||||||
b.set_active(False)
|
b.set_active(False)
|
||||||
self.sw.set_mode(self.mode_buttons[ttb])
|
self.sw.set_mode(self.mode_buttons_to_names[ttb])
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def set_mode(self, mode):
|
||||||
|
if mode == '':
|
||||||
|
mode = 'select' # default mode
|
||||||
|
if mode in self.mode_names_to_buttons:
|
||||||
|
self.mode_names_to_buttons[mode].set_active(True)
|
||||||
|
else:
|
||||||
|
raise ValueError('Unknown mode')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user