from gi.repository import Gtk class ActionView(Gtk.HBox): def __init__(self): super(ActionView, self).__init__() self.actions = set(['next', 'previous', 'light-on', 'light-off']) self.pack_start(Gtk.Label('Actions:'), False, False, 5) for action in self.actions: button = Gtk.Button(action) button.connect('clicked', self._perform) self.pack_start(button, False, False, 5) self.confiermer = None def _perform(self, button): action = button.get_label() if self.confirmer: self.confirmer.confirm('Perform action "%s"?' % action, 4, lambda: self.perform(action)) else: self.perform(action) def perform(self, action): if action in self.actions: print 'PERFORM', action return True return False def actions(self): return self.actions def set_confirmer(self, confirmer): self.confirmer = confirmer