=== modified file 'terminatorlib/terminator.py' --- terminatorlib/terminator.py 2009-03-20 10:13:29 +0000 +++ terminatorlib/terminator.py 2009-03-23 10:17:10 +0000 @@ -44,6 +44,7 @@ _label = None _icon = None _button = None + _ebox = None def __init__(self, title, notebook, terminator): gtk.HBox.__init__(self, False) @@ -52,12 +53,16 @@ self._label = gtk.Label(title) self.update_angle() - self.pack_start(self._label, True, True) + + self._ebox = gtk.EventBox () + self._ebox.add (self._label) + self.pack_start(self._ebox, True, True) self._icon = gtk.Image() self._icon.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU) self.update_closebut() + self._ebox.connect ("button-press-event", self.on_click_title) self.show_all() @@ -125,6 +130,27 @@ def width_request(self): return self.size_request()[0] + def on_click_title(self, widget, event): + if event.type == gtk.gdk._2BUTTON_PRESS and self._ebox in self.get_children (): + self.remove (self._ebox) + self._entry = gtk.Entry () + self._entry.set_text (self._label.get_text ()) + self._entry.show () + self.pack_start (self._entry) + self.reorder_child (self._entry, 0) + self._notebook.connect ("switch-page", self.entry_to_label) + self._entry.connect ("activate", self.on_entry_activated) + + def entry_to_label (self, widget, page, page_num): + if (self._entry): + self.remove (self._entry) + self.add (self._ebox) + self._entry = None + + def on_entry_activated (self, widget): + self._label.set_text (self._entry.get_text ()) + self.entry_to_label (self._notebook, None, None) + class Terminator: options = None groupings = None