Class: Fatty::MouseEvent

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

Overview

The MouseEvent class is a simple class to store a mouse event with its modifiers.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(button:, x: 0, y: 0, raw: nil, ctrl: false, meta: false, shift: false) ⇒ MouseEvent

Returns a new instance of MouseEvent.



9
10
11
12
13
14
15
16
17
18
# File 'lib/fatty/mouse_event.rb', line 9

def initialize(button:, x: 0, y: 0, raw: nil, ctrl: false, meta: false, shift: false)
  @button = button
  @x = x
  @y = y
  @raw = raw
  @ctrl = ctrl
  @meta = meta
  @shift = shift
  Fatty.debug("#{self.class}#new(#{self})", tag: :event)
end

Instance Attribute Details

#buttonObject (readonly)

Returns the value of attribute button.



7
8
9
# File 'lib/fatty/mouse_event.rb', line 7

def button
  @button
end

#ctrlObject (readonly)

Returns the value of attribute ctrl.



7
8
9
# File 'lib/fatty/mouse_event.rb', line 7

def ctrl
  @ctrl
end

#metaObject (readonly)

Returns the value of attribute meta.



7
8
9
# File 'lib/fatty/mouse_event.rb', line 7

def meta
  @meta
end

#rawObject (readonly)

Returns the value of attribute raw.



7
8
9
# File 'lib/fatty/mouse_event.rb', line 7

def raw
  @raw
end

#shiftObject (readonly)

Returns the value of attribute shift.



7
8
9
# File 'lib/fatty/mouse_event.rb', line 7

def shift
  @shift
end

#xObject (readonly)

Returns the value of attribute x.



7
8
9
# File 'lib/fatty/mouse_event.rb', line 7

def x
  @x
end

#yObject (readonly)

Returns the value of attribute y.



7
8
9
# File 'lib/fatty/mouse_event.rb', line 7

def y
  @y
end

Class Method Details

.button_to_str(button:, ctrl: false, meta: false, shift: false) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/fatty/mouse_event.rb', line 28

def self.button_to_str(button:, ctrl: false, meta: false, shift: false)
  mods = []
  mods << "C" if ctrl
  mods << "M" if meta
  mods << "S" if shift
  button_str = button.to_s
  mods.empty? ? button_str : "#{mods.join('-')}-#{button_str}"
end

Instance Method Details

#bindingsObject



57
58
59
# File 'lib/fatty/mouse_event.rb', line 57

def bindings
  Fatty::KeyMap.active.bindings_for(self) || {}
end

#ctrl?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/fatty/mouse_event.rb', line 45

def ctrl?
  @ctrl
end

#keyObject



20
21
22
# File 'lib/fatty/mouse_event.rb', line 20

def key
  :mouse
end

#meta?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/fatty/mouse_event.rb', line 49

def meta?
  @meta
end

#mouse?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/fatty/mouse_event.rb', line 41

def mouse?
  true
end

#printable?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/fatty/mouse_event.rb', line 37

def printable?
  false
end

#reportObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/fatty/mouse_event.rb', line 61

def report
  rule = "=" * 55 + "\n"
  out = +""
  out << rule
  out << "Mouse report #{status_string}:\n"
  out << "  raw:       #{raw.inspect}\n"
  out << "  button:    #{button.inspect}\n"
  out << "  name:      #{to_s}\n"
  out << "  x:         #{x.inspect}\n"
  out << "  y:         #{y.inspect}\n"
  out << "  modifiers: #{modifier_text}\n"
  out << "  bindings:\n#{bindings_text}\n"
  out << "\n"
end

#shift?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/fatty/mouse_event.rb', line 53

def shift?
  @shift
end

#suggested_snippet(_terminal_name) ⇒ Object



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

def suggested_snippet(_terminal_name)
  bindings.empty? ? suggested_mouse_binding : ""
end

#to_sObject



24
25
26
# File 'lib/fatty/mouse_event.rb', line 24

def to_s
  self.class.button_to_str(button:, ctrl:, meta:, shift:)
end