From bc07cc17e664860e739431ef9f3df433e3581e37 Mon Sep 17 00:00:00 2001 From: Jonathan Slenders Date: Wed, 24 Jun 2015 19:44:44 +0200 Subject: Better Windows input/rendering support. Better unicode + alternate screen implemented. --- prompt_toolkit/win32_types.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'prompt_toolkit/win32_types.py') diff --git a/prompt_toolkit/win32_types.py b/prompt_toolkit/win32_types.py index b2739630..55a59caa 100644 --- a/prompt_toolkit/win32_types.py +++ b/prompt_toolkit/win32_types.py @@ -1,5 +1,5 @@ from ctypes import Union, Structure, c_char, c_short, c_long -from ctypes.wintypes import DWORD, BOOL, LPVOID, WORD, HANDLE +from ctypes.wintypes import DWORD, BOOL, LPVOID, WORD, HANDLE, WCHAR STD_INPUT_HANDLE = HANDLE(-10) @@ -22,6 +22,13 @@ class COORD(Structure): self.__class__.__name__, self.X, self.Y, type(self.X), type(self.Y)) +class UNICODE_OR_ASCII(Union): + _fields_ = [ + ('AsciiChar', c_char), + ('UnicodeChar', WCHAR), + ] + + class KEY_EVENT_RECORD(Structure): """ http://msdn.microsoft.com/en-us/library/windows/desktop/ms684166(v=vs.85).aspx @@ -31,7 +38,7 @@ class KEY_EVENT_RECORD(Structure): ('RepeatCount', c_short), # word ('VirtualKeyCode', c_short), # word ('VirtualScanCode', c_short), # word - ('AsciiChar', c_char), # ascii or unicode? + ('uChar', UNICODE_OR_ASCII), # Unicode or ASCII. ('ControlKeyState', c_long) # double word ] -- cgit v1.2.3