clean up ToggleToolButton handling; add Circle button

This commit is contained in:
Josh Holtrop 2011-07-27 16:18:03 -04:00
parent 21896bea8e
commit 8c3193bbec

View File

@ -7,6 +7,8 @@ from SketchWidget import SketchWidget
class Window:
def __init__(self, title):
self.buttons = {}
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_size_request(600, 500)
self.window.set_title(title)
@ -21,14 +23,19 @@ class Window:
self.toolbar = gtk.Toolbar()
self.toolbar.set_style(gtk.TOOLBAR_BOTH)
self.select_button = gtk.ToggleToolButton()
self.select_button.set_label('Select')
self.select_button.connect('toggled', self.toggled_event)
self.toolbar.insert(self.select_button, -1)
self.line_button = gtk.ToggleToolButton()
self.line_button.set_label('Line')
self.line_button.connect('toggled', self.toggled_event)
self.toolbar.insert(self.line_button, -1)
self.buttons['select'] = gtk.ToggleToolButton()
self.buttons['select'].set_label('Select')
self.buttons['select'].connect('toggled', self.toggled_event)
self.buttons['select'].set_active(True)
self.toolbar.insert(self.buttons['select'], -1)
self.buttons['line'] = gtk.ToggleToolButton()
self.buttons['line'].set_label('Line')
self.buttons['line'].connect('toggled', self.toggled_event)
self.toolbar.insert(self.buttons['line'], -1)
self.buttons['circle'] = gtk.ToggleToolButton()
self.buttons['circle'].set_label('Circle')
self.buttons['circle'].connect('toggled', self.toggled_event)
self.toolbar.insert(self.buttons['circle'], -1)
self.statusbar = gtk.Statusbar()
@ -52,10 +59,14 @@ class Window:
return False
def toggled_event(self, ttb):
# if not ttb.get_active():
# ttb.set_active(True)
# elif ttb == self.select_button:
# self.line_button.set_active(False)
# elif ttb == self.line_button:
# self.select_button.set_active(False)
if not ttb.get_active():
for b in self.buttons:
if self.buttons[b].get_active():
break
else:
ttb.set_active(True)
else:
for b in self.buttons:
if self.buttons[b] != ttb:
self.buttons[b].set_active(False)
return True