def label_event(self, ev): if ev.type is events.KEY: if utils.key_check("Esc")(ev.data): events.post(events.CANCEL) else: name = utils.name_key(ev.data) if name is not None: events.post(events.OK, name) return True return False
def __init__(self, key, label, parent=None, console=None, x=0, y=0, width=0, action=None, color_set=None): super(Button, self).__init__(parent, console, x, y, width, height=1, color_set=color_set) self.key_check = utils.key_check(key) if self.key_check is None: raise ValueError("Key '%s' does not appear to be a valid key!" % key) self.handlers['activate'] = action if self.color_set is None: self.color_set = button_cs label_text = self.color_set.sprintf("%%(1)c{%s}%%(0)c %s" % (key, label)) self.label = Label(parent=self, x=1, text=label_text) if self.rect.width < 1: self.rect.resize(width=self.label.rect.width) elif self.rect.width < self.label.rect.width: raise ValueError("Button's assigned width is insufficient!") else: self.label.center_in_parent()