From 8c3193bbecf366faa04850e06f37e1ac8adfbcd7 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 27 Jul 2011 16:18:03 -0400 Subject: [PATCH] clean up ToggleToolButton handling; add Circle button --- Window.py | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/Window.py b/Window.py index e22955a..daa7a0b 100644 --- a/Window.py +++ b/Window.py @@ -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