class Reline::Windows::KeyEventRecord
Атрибуты
Публичные методы класса
Исходный код
# File lib/reline/io/windows.rb, line 496
def initialize(virtual_key_code, char_code, control_key_state)
@virtual_key_code = virtual_key_code
@char_code = char_code
@control_key_state = control_key_state
@enhanced = control_key_state & ENHANCED_KEY != 0
(@control_keys = []).tap do |control_keys|
# symbols must be sorted to make comparison is easier later on
control_keys << :ALT if control_key_state & (LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED) != 0
control_keys << :CTRL if control_key_state & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED) != 0
control_keys << :SHIFT if control_key_state & SHIFT_PRESSED != 0
end.freeze
end Публичные методы экземпляра
Исходный код
# File lib/reline/io/windows.rb, line 510 def char @char_code.chr(Encoding::UTF_8) end
Исходный код
# File lib/reline/io/windows.rb, line 521 def match?(control_keys: nil, virtual_key_code: nil, char_code: nil) raise ArgumentError, 'No argument was passed to match key event' if control_keys.nil? && virtual_key_code.nil? && char_code.nil? (control_keys.nil? || [*control_keys].sort == @control_keys) && (virtual_key_code.nil? || @virtual_key_code == virtual_key_code) && (char_code.nil? || char_code == @char_code) end
Проверяет, соответствуют ли аргументы этому событию нажатия клавиши. Аргументы со значением nil игнорируются, но хотя бы один должен быть не nil. Чтобы проверить, не были нажаты никакие управляющие клавиши, передайте пустой массив: «control_keys: []».
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.