summaryrefslogtreecommitdiffstats
path: root/prompt_toolkit/win32_types.py
diff options
context:
space:
mode:
authorJonathan Slenders <jonathan@slenders.be>2015-06-24 19:44:44 +0200
committerJonathan Slenders <jonathan@slenders.be>2015-06-24 19:44:44 +0200
commitbc07cc17e664860e739431ef9f3df433e3581e37 (patch)
treedb267ef0ec6da6277147ac3de0a0c5ae69182bc7 /prompt_toolkit/win32_types.py
parent5d9c7ca16fbf3c56352cbaea6ce53ea83490d2b1 (diff)
Better Windows input/rendering support. Better unicode + alternate screen implemented.
Diffstat (limited to 'prompt_toolkit/win32_types.py')
-rw-r--r--prompt_toolkit/win32_types.py11
1 files changed, 9 insertions, 2 deletions
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
]