Spec-Zone.ru › Ruby 3.1

класс 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 463
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 477
def char
  @char_code.chr(Encoding::UTF_8)
end
enhanced?() Показать исходный код
# File lib/reline/windows.rb, line 481
def enhanced?
  @enhanced
end
matches?(control_keys: nil, virtual_key_code: nil, char_code: nil) Показать исходный код
# File lib/reline/windows.rb, line 488
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 игнорируются, но по крайней мере один должен быть не пустым. Чтобы проверить, что никакие клавиши управления не были нажаты, передайте пустой массив: «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