From 1229f270c94063a0e068036f9dd781e46acf33d2 Mon Sep 17 00:00:00 2001 From: Keith Eberle Date: Tue, 15 Nov 2022 11:58:31 -0500 Subject: [PATCH] Add support for more keys - Added support for different keycodes for up/down - Added support for quitting the menu --- src/pick/__init__.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/pick/__init__.py b/src/pick/__init__.py index 22bacc5..e167008 100644 --- a/src/pick/__init__.py +++ b/src/pick/__init__.py @@ -11,10 +11,15 @@ class Option: value: Any +GITBASH_KEY_UP = 450 +GITBASH_KEY_DOWN = 456 +KEY_ESCAPE = 27 KEYS_ENTER = (curses.KEY_ENTER, ord("\n"), ord("\r")) -KEYS_UP = (curses.KEY_UP, ord("k")) -KEYS_DOWN = (curses.KEY_DOWN, ord("j")) +KEYS_UP = (curses.KEY_UP, ord("k"), GITBASH_KEY_UP) +KEYS_DOWN = (curses.KEY_DOWN, ord("j"), GITBASH_KEY_DOWN) KEYS_SELECT = (curses.KEY_RIGHT, ord(" ")) +KEYS_QUIT = (ord("q"), KEY_ESCAPE) + SYMBOL_CIRCLE_FILLED = "(x)" SYMBOL_CIRCLE_EMPTY = "( )" @@ -137,7 +142,9 @@ def run_loop(self, screen) -> Union[List[PICK_RETURN_T], PICK_RETURN_T]: while True: self.draw(screen) c = screen.getch() - if c in KEYS_UP: + if c in KEYS_QUIT: + return None, None + elif c in KEYS_UP: self.move_up() elif c in KEYS_DOWN: self.move_down()