Class: XlibObj::InputDevice

Inherits:
Object
  • Object
show all
Defined in:
lib/input_device.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(display, device_id) ⇒ InputDevice

Returns a new instance of InputDevice.



11
12
13
14
# File 'lib/input_device.rb', line 11

def initialize(display, device_id)
  @display = display
  @device_id = device_id
end

Instance Attribute Details

#displayObject (readonly)

Returns the value of attribute display.



16
17
18
# File 'lib/input_device.rb', line 16

def display
  @display
end

Instance Method Details

#disabled?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/input_device.rb', line 59

def disabled?
  not enabled?
end

#enabled?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/input_device.rb', line 55

def enabled?
  device_info(:enabled)
end

#floating?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/input_device.rb', line 35

def floating?
  device_info(:use) == Xlib::XIFloatingSlave
end

#focus(window = nil) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/input_device.rb', line 63

def focus(window = nil)
  if window
    Xlib::XI.set_focus(@display, self, window, Xlib::CurrentTime)
  else
    Xlib::XI.get_focus(@display, self) if keyboard?
  end
end

#grab(report_to:, cursor: Xlib::None, mode: Xlib::GrabModeAsync, pair_mode: Xlib::GrabModeAsync, owner_events: true, event_mask: 0) ⇒ Object



71
72
73
74
# File 'lib/input_device.rb', line 71

def grab(report_to:, cursor: Xlib::None, mode: Xlib::GrabModeAsync, pair_mode: Xlib::GrabModeAsync,
    owner_events: true, event_mask: 0)
  Xlib::XI.grab_device(@display, self, report_to, Xlib::CurrentTime, cursor, mode, pair_mode, owner_events, event_mask)
end

#inspectObject



80
81
82
# File 'lib/input_device.rb', line 80

def inspect
  "#<#{self.class.name}:0x#{'%014x' % __id__} @id=#{id} @name=#{name.inspect}>"
end

#keyboard?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/input_device.rb', line 43

def keyboard?
  [Xlib::XIMasterKeyboard, Xlib::XISlaveKeyboard].include? device_info(:use)
end

#masterObject



47
48
49
# File 'lib/input_device.rb', line 47

def master
  self.class.new(@display, device_info(:attachment)) if slave?
end

#master?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/input_device.rb', line 27

def master?
  [Xlib::XIMasterPointer, Xlib::XIMasterKeyboard].include? device_info(:use)
end

#nameObject



23
24
25
# File 'lib/input_device.rb', line 23

def name
  device_info(:name, &:read_string)
end

#pointer?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/input_device.rb', line 39

def pointer?
  [Xlib::XIMasterPointer, Xlib::XISlavePointer].include? device_info(:use)
end

#slave?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/input_device.rb', line 31

def slave?
  [Xlib::XISlavePointer, Xlib::XISlaveKeyboard].include? device_info(:use)
end

#slavesObject



51
52
53
# File 'lib/input_device.rb', line 51

def slaves
  @display.input_devices.select{ |device| device.master == self }
end

#to_nativeObject Also known as: id



18
19
20
# File 'lib/input_device.rb', line 18

def to_native
  @device_id
end

#ungrabObject



76
77
78
# File 'lib/input_device.rb', line 76

def ungrab
  Xlib::XI.ungrab_device(@display, self, Xlib::CurrentTime)
end