Make key demo output prettier

This commit is contained in:
Kovid Goyal 2021-01-15 11:38:31 +05:30
parent 7ea1deba8f
commit af0a24c702
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -21,10 +21,7 @@ class KeysHandler(Handler):
self.cmd.set_cursor_visible(False) self.cmd.set_cursor_visible(False)
self.print('Press any keys - Ctrl+C or Ctrl+D will terminate') self.print('Press any keys - Ctrl+C or Ctrl+D will terminate')
def on_text(self, text: str, in_bracketed_paste: bool = False) -> None: def on_key_event(self, key_event: KeyEvent, in_bracketed_paste: bool = False) -> None:
self.print('Text input: ' + text)
def on_key(self, key_event: KeyEvent) -> None:
etype = { etype = {
PRESS: 'PRESS', PRESS: 'PRESS',
REPEAT: 'REPEAT', REPEAT: 'REPEAT',
@ -41,7 +38,16 @@ class KeysHandler(Handler):
mods = '+'.join(lmods) mods = '+'.join(lmods)
if mods: if mods:
mods += '+' mods += '+'
self.print('Key {}: {}{} [{}]'.format(etype, mods, key_event.key, encode_key_event(key_event))) key = f'{mods}{key_event.key} '
self.cmd.colored(key, 'green')
self.cmd.colored(etype + ' ', 'yellow')
self.cmd.styled(key_event.text, italic=True)
self.print()
rep = 'CSI ' + encode_key_event(key_event)[2:]
rep = rep.replace(';', ' ; ').replace(':', ' : ')[:-1] + ' ' + rep[-1]
self.cmd.styled(rep, fg='magenta')
self.print()
self.print()
def on_interrupt(self) -> None: def on_interrupt(self) -> None:
self.quit_loop(0) self.quit_loop(0)