From 3586575eab710d07033c04100184d4bde8527548 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Thu, 22 Feb 2024 11:21:26 +0800 Subject: [PATCH] Add a test for numpad keys, and Winforms enums to support them. --- testbed/tests/test_keys.py | 2 ++ winforms/src/toga_winforms/keys.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/testbed/tests/test_keys.py b/testbed/tests/test_keys.py index c79c0cf59c..c20945897d 100644 --- a/testbed/tests/test_keys.py +++ b/testbed/tests/test_keys.py @@ -34,6 +34,8 @@ (Key.F5, {"key": Key.F5, "modifiers": set()}), (Key.HOME, {"key": Key.HOME, "modifiers": set()}), (Key.HOME + Key.MOD_1, {"key": Key.HOME, "modifiers": {Key.MOD_1}}), + # Numpad keys + (Key.NUMPAD_5 + Key.MOD_1, {"key": Key.NUMPAD_5, "modifiers": {Key.MOD_1}}), # Key where platforms have odd representations (Key.MOD_1 + Key.SEMICOLON, {"key": Key.SEMICOLON, "modifiers": {Key.MOD_1}}), (Key.MOD_1 + Key.SPACE, {"key": Key.SPACE, "modifiers": {Key.MOD_1}}), diff --git a/winforms/src/toga_winforms/keys.py b/winforms/src/toga_winforms/keys.py index 9ec2142289..7bddaeebc3 100644 --- a/winforms/src/toga_winforms/keys.py +++ b/winforms/src/toga_winforms/keys.py @@ -32,10 +32,27 @@ Key.PAGE_DOWN.value: WinForms.Keys.PageDown, Key.HOME.value: WinForms.Keys.Home, Key.END.value: WinForms.Keys.End, + Key.UP.value: WinForms.Keys.Up, + Key.DOWN.value: WinForms.Keys.Down, + Key.LEFT.value: WinForms.Keys.Left, + Key.RIGHT.value: WinForms.Keys.Right, + Key.NUMPAD_DECIMAL_POINT: WinForms.Keys.Decimal, } WINFORMS_KEYS.update( {str(digit): getattr(WinForms.Keys, f"D{digit}") for digit in range(10)} ) +WINFORMS_KEYS.update( + { + getattr(Key, f"NUMPAD_{digit}"): getattr(WinForms.Keys, f"NumPad{digit}") + for digit in range(10) + } +) +WINFORMS_KEYS.update( + { + getattr(Key, f"F{digit}"): getattr(WinForms.Keys, f"F{digit}") + for digit in range(1, 20) + } +) SHIFTED_KEYS = {symbol: number for symbol, number in zip("!@#$%^&*()", "1234567890")} SHIFTED_KEYS.update(