Spec-Zone.ru › Ruby 3.3

класс Reline::Windows::KeyEventRecord

Родитель:
Объект

Атрибуты

char_code[R]
control_key_state[R]
control_keys[R]
virtual_key_code[R]

Публичные методы класса

new(virtual_key_code, char_code, control_key_state) Показать исходный код
# File lib/reline/windows.rb, line 467
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

Публичные методы экземпляра

char() Показать исходный код
# File lib/reline/windows.rb, line 481
def char
  @char_code.chr(Encoding::UTF_8)
end
enhanced?() Показать исходный код
# File lib/reline/windows.rb, line 485
def enhanced?
  @enhanced
end
matches?(control_keys: nil, virtual_key_code: nil, char_code: nil) Показать исходный код
# File lib/reline/windows.rb, line 492
def matches?(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–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API