класс 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 514 def enhanced? @enhanced 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–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.