Wrapper around urwid.Edit used for the prompt in Statusbar. This class only adds a single signal that is emitted if the user presses Enter.
| 131 | |
| 132 | |
| 133 | class StatusbarEdit(urwid.Edit): |
| 134 | """Wrapper around urwid.Edit used for the prompt in Statusbar. |
| 135 | |
| 136 | This class only adds a single signal that is emitted if the user presses |
| 137 | Enter.""" |
| 138 | |
| 139 | signals = urwid.Edit.signals + ["prompt_enter"] |
| 140 | |
| 141 | def __init__(self, *args, **kwargs): |
| 142 | self.single = False |
| 143 | super().__init__(*args, **kwargs) |
| 144 | |
| 145 | def keypress(self, size, key): |
| 146 | if self.single: |
| 147 | urwid.emit_signal(self, "prompt_enter", self, key) |
| 148 | elif key == "enter": |
| 149 | urwid.emit_signal(self, "prompt_enter", self, self.get_edit_text()) |
| 150 | else: |
| 151 | return super().keypress(size, key) |
| 152 | |
| 153 | |
| 154 | urwid.register_signal(StatusbarEdit, "prompt_enter") |