rework buttons into mode_buttons

This commit is contained in:
Josh Holtrop 2011-07-27 16:35:35 -04:00
parent 5f2436f3b7
commit 99129c60e1

View File

@ -7,7 +7,7 @@ from SketchWidget import SketchWidget
class Window: class Window:
def __init__(self, title): def __init__(self, title):
self.buttons = {} self.mode_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)
@ -23,19 +23,22 @@ class Window:
self.toolbar = gtk.Toolbar() self.toolbar = gtk.Toolbar()
self.toolbar.set_style(gtk.TOOLBAR_BOTH) self.toolbar.set_style(gtk.TOOLBAR_BOTH)
self.buttons['select'] = gtk.ToggleToolButton() ttb = gtk.ToggleToolButton()
self.buttons['select'].set_label('Select') ttb.set_label('Select')
self.buttons['select'].connect('toggled', self.toggled_event) ttb.connect('toggled', self.mode_toggle_event)
self.buttons['select'].set_active(True) ttb.set_active(True)
self.toolbar.insert(self.buttons['select'], -1) self.toolbar.insert(ttb, -1)
self.buttons['line'] = gtk.ToggleToolButton() self.mode_buttons[ttb] = 'select'
self.buttons['line'].set_label('Line') ttb = gtk.ToggleToolButton()
self.buttons['line'].connect('toggled', self.toggled_event) ttb.set_label('Line')
self.toolbar.insert(self.buttons['line'], -1) ttb.connect('toggled', self.mode_toggle_event)
self.buttons['circle'] = gtk.ToggleToolButton() self.toolbar.insert(ttb, -1)
self.buttons['circle'].set_label('Circle') self.mode_buttons[ttb] = 'line'
self.buttons['circle'].connect('toggled', self.toggled_event) ttb = gtk.ToggleToolButton()
self.toolbar.insert(self.buttons['circle'], -1) ttb.set_label('Circle')
ttb.connect('toggled', self.mode_toggle_event)
self.toolbar.insert(ttb, -1)
self.mode_buttons[ttb] = 'circle'
self.statusbar = gtk.Statusbar() self.statusbar = gtk.Statusbar()
@ -60,15 +63,15 @@ class Window:
gtk.main_quit() gtk.main_quit()
return False return False
def toggled_event(self, ttb): def mode_toggle_event(self, ttb):
if not ttb.get_active(): if not ttb.get_active():
for b in self.buttons: for b in self.mode_buttons:
if self.buttons[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.buttons: for b in self.mode_buttons:
if self.buttons[b] != ttb: if b != ttb:
self.buttons[b].set_active(False) b.set_active(False)
return True return True