Ejemplo n.º 1
0
class GazuaFrame(Frame):
    column_pos = 0

    def __init__(self, *args, **kwargs):
        self.search_edit = Edit('Search: ')
        self.arrow_callback = kwargs['arrow_callback']
        super(GazuaFrame,
              self).__init__(*args, header=AttrMap(self.search_edit, 'header'))

    def keypress(self, size, key):
        if len(key) == 1 and key.isalpha:
            if re.compile('^[a-zA-Z0-9]$').match(key):
                self.search_edit.insert_text(key)
        elif key == 'backspace':
            self.search_edit.set_edit_text(
                self.search_edit.get_edit_text()[0:-1])
        elif key == 'left':
            if self.column_pos == 0:
                self.arrow_callback(None)
            elif self.column_pos == 1:
                self.column_pos -= 1
                self.arrow_callback(0)
            else:
                self.column_pos -= 1
                self.arrow_callback(1)
        elif key == 'right':
            if self.column_pos == 0:
                self.column_pos += 1
                self.arrow_callback(1)
            elif self.column_pos == 1:
                self.column_pos += 1
                self.arrow_callback(2)
            else:
                self.arrow_callback(None)

        return super(GazuaFrame, self).keypress(size, key)