Class: Fatty::MouseEvent
- Inherits:
-
Object
- Object
- Fatty::MouseEvent
- 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
-
#button ⇒ Object
readonly
Returns the value of attribute button.
-
#ctrl ⇒ Object
readonly
Returns the value of attribute ctrl.
-
#meta ⇒ Object
readonly
Returns the value of attribute meta.
-
#raw ⇒ Object
readonly
Returns the value of attribute raw.
-
#shift ⇒ Object
readonly
Returns the value of attribute shift.
-
#x ⇒ Object
readonly
Returns the value of attribute x.
-
#y ⇒ Object
readonly
Returns the value of attribute y.
Class Method Summary collapse
Instance Method Summary collapse
- #bindings ⇒ Object
- #ctrl? ⇒ Boolean
-
#initialize(button:, x: 0, y: 0, raw: nil, ctrl: false, meta: false, shift: false) ⇒ MouseEvent
constructor
A new instance of MouseEvent.
- #key ⇒ Object
- #meta? ⇒ Boolean
- #mouse? ⇒ Boolean
- #printable? ⇒ Boolean
- #report ⇒ Object
- #shift? ⇒ Boolean
- #suggested_snippet(_terminal_name) ⇒ Object
- #to_s ⇒ Object
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 = @x = x @y = y @raw = raw @ctrl = ctrl @meta = @shift = shift Fatty.debug("#{self.class}#new(#{self})", tag: :event) end |
Instance Attribute Details
#button ⇒ Object (readonly)
Returns the value of attribute button.
7 8 9 |
# File 'lib/fatty/mouse_event.rb', line 7 def @button end |
#ctrl ⇒ Object (readonly)
Returns the value of attribute ctrl.
7 8 9 |
# File 'lib/fatty/mouse_event.rb', line 7 def ctrl @ctrl end |
#meta ⇒ Object (readonly)
Returns the value of attribute meta.
7 8 9 |
# File 'lib/fatty/mouse_event.rb', line 7 def @meta end |
#raw ⇒ Object (readonly)
Returns the value of attribute raw.
7 8 9 |
# File 'lib/fatty/mouse_event.rb', line 7 def raw @raw end |
#shift ⇒ Object (readonly)
Returns the value of attribute shift.
7 8 9 |
# File 'lib/fatty/mouse_event.rb', line 7 def shift @shift end |
#x ⇒ Object (readonly)
Returns the value of attribute x.
7 8 9 |
# File 'lib/fatty/mouse_event.rb', line 7 def x @x end |
#y ⇒ Object (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:, ctrl: false, meta: false, shift: false) mods = [] mods << "C" if ctrl mods << "M" if mods << "S" if shift = .to_s mods.empty? ? : "#{mods.join('-')}-#{}" end |
Instance Method Details
#bindings ⇒ Object
57 58 59 |
# File 'lib/fatty/mouse_event.rb', line 57 def bindings Fatty::KeyMap.active.bindings_for(self) || {} end |
#ctrl? ⇒ Boolean
45 46 47 |
# File 'lib/fatty/mouse_event.rb', line 45 def ctrl? @ctrl end |
#key ⇒ Object
20 21 22 |
# File 'lib/fatty/mouse_event.rb', line 20 def key :mouse end |
#meta? ⇒ Boolean
49 50 51 |
# File 'lib/fatty/mouse_event.rb', line 49 def @meta end |
#mouse? ⇒ Boolean
41 42 43 |
# File 'lib/fatty/mouse_event.rb', line 41 def mouse? true end |
#printable? ⇒ Boolean
37 38 39 |
# File 'lib/fatty/mouse_event.rb', line 37 def printable? false end |
#report ⇒ Object
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: #{.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
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_s ⇒ Object
24 25 26 |
# File 'lib/fatty/mouse_event.rb', line 24 def to_s self.class.(button:, ctrl:, meta:, shift:) end |