diff options
| author | aycabta <aycabta@gmail.com> | 2021-08-22 01:47:07 +0900 |
|---|---|---|
| committer | aycabta <aycabta@gmail.com> | 2021-08-29 20:30:33 +0900 |
| commit | d768eeeddbcc59166e7669471e6b3672eeed230c (patch) | |
| tree | 9e1a8679ba4b039b9ea94a880d2f7191f5b77321 | |
| parent | 02a61fe33f422d7e041531cac1a5a45a14ca5752 (diff) | |
[ruby/reline] Support hide/show cursor on Windows
https://github.com/ruby/reline/commit/0c870813bd
| -rw-r--r-- | lib/reline/windows.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/reline/windows.rb b/lib/reline/windows.rb index ae87b38706..9e542aa337 100644 --- a/lib/reline/windows.rb +++ b/lib/reline/windows.rb @@ -133,6 +133,7 @@ class Reline::Windows @@GetFileType = Win32API.new('kernel32', 'GetFileType', ['L'], 'L') @@GetFileInformationByHandleEx = Win32API.new('kernel32', 'GetFileInformationByHandleEx', ['L', 'I', 'P', 'L'], 'I') @@FillConsoleOutputAttribute = Win32API.new('kernel32', 'FillConsoleOutputAttribute', ['L', 'L', 'L', 'L', 'P'], 'L') + @@SetConsoleCursorInfo = Win32API.new('kernel32', 'SetConsoleCursorInfo', ['L', 'P'], 'L') @@GetConsoleMode = Win32API.new('kernel32', 'GetConsoleMode', ['L', 'P'], 'L') @@SetConsoleMode = Win32API.new('kernel32', 'SetConsoleMode', ['L', 'L'], 'L') @@ -344,11 +345,17 @@ class Reline::Windows end def self.hide_cursor - # ignored + size = 100 + visible = 0 # 0 means false + cursor_info = [size, visible].pack('Li') + @@SetConsoleCursorInfo.call(@@hConsoleHandle, cursor_info) end def self.show_cursor - # ignored + size = 100 + visible = 1 # 1 means true + cursor_info = [size, visible].pack('Li') + @@SetConsoleCursorInfo.call(@@hConsoleHandle, cursor_info) end def self.set_winch_handler(&handler) |
