Class: Vedeu::Editor::Cursor Private
- Inherits:
-
Object
- Object
- Vedeu::Editor::Cursor
- Extended by:
- Forwardable
- Defined in:
- lib/vedeu/editor/cursor.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Maintains a cursor position within the Document class.
Instance Attribute Summary collapse
- #name ⇒ String|Symbol readonly private
- #ox ⇒ Fixnum
- #oy ⇒ Fixnum
-
#x ⇒ Fixnum
private
The column/character coordinate.
-
#y ⇒ Fixnum
private
The row/line coordinate.
Instance Method Summary collapse
-
#bol ⇒ Vedeu::Editor::Cursor
private
Move the virtual cursor to the beginning of the line.
-
#defaults ⇒ Hash<Symbol => void>
private
private
The default options/attributes for a new instance of this class.
-
#down(size = nil) ⇒ Vedeu::Editor::Cursor
private
Move the virtual cursor down by one line.
-
#geometry ⇒ Object
private
private
Returns the geometry for the interface.
-
#initialize(attributes = {}) ⇒ Vedeu::Editor::Cursor
constructor
private
Returns a new instance of Vedeu::Editor::Cursor.
-
#left ⇒ Vedeu::Editor::Cursor
private
Move the virtual cursor to the left.
-
#real_x ⇒ Fixnum
private
private
Return the real x coordinate.
-
#real_y ⇒ Fixnum
private
private
Return the real y coordinate.
-
#refresh ⇒ Vedeu::Editor::Cursor
private
Overwrite the cursor of the same name.
-
#reset! ⇒ Vedeu::Editor::Cursor
private
Move the virtual cursor to the origin (0, 0).
-
#right ⇒ Vedeu::Editor::Cursor
private
Move the virtual cursor to the right.
-
#to_s ⇒ String
(also: #to_str)
private
Return the escape sequence as a string for setting the cursor position and show the cursor.
-
#up(size = nil) ⇒ Vedeu::Editor::Cursor
private
Move the virtual cursor up by one line.
Constructor Details
#initialize(attributes = {}) ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Vedeu::Editor::Cursor.
52 53 54 55 56 |
# File 'lib/vedeu/editor/cursor.rb', line 52 def initialize(attributes = {}) defaults.merge!(attributes).each do |key, value| instance_variable_set("@#{key}", value) end end |
Instance Attribute Details
#name ⇒ String|Symbol (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
24 25 26 |
# File 'lib/vedeu/editor/cursor.rb', line 24 def name @name end |
#ox ⇒ Fixnum
28 29 30 |
# File 'lib/vedeu/editor/cursor.rb', line 28 def ox @ox end |
#oy ⇒ Fixnum
32 33 34 |
# File 'lib/vedeu/editor/cursor.rb', line 32 def oy @oy end |
#x ⇒ Fixnum
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns The column/character coordinate.
36 |
# File 'lib/vedeu/editor/cursor.rb', line 36 attr_writer :x |
#y ⇒ Fixnum
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns The row/line coordinate.
40 |
# File 'lib/vedeu/editor/cursor.rb', line 40 attr_writer :y |
Instance Method Details
#bol ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Move the virtual cursor to the beginning of the line.
61 62 63 64 65 66 |
# File 'lib/vedeu/editor/cursor.rb', line 61 def bol @ox = 0 @x = 0 self end |
#defaults ⇒ Hash<Symbol => void> (private)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The default options/attributes for a new instance of this class.
176 177 178 179 180 181 182 183 184 |
# File 'lib/vedeu/editor/cursor.rb', line 176 def defaults { name: '', ox: 0, oy: 0, x: 0, y: 0, } end |
#down(size = nil) ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Move the virtual cursor down by one line.
72 73 74 75 76 77 |
# File 'lib/vedeu/editor/cursor.rb', line 72 def down(size = nil) @y += 1 @x = size if size && x > size self end |
#geometry ⇒ Object (private)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the geometry for the interface.
171 172 173 |
# File 'lib/vedeu/editor/cursor.rb', line 171 def geometry @geometry ||= Vedeu.geometries.by_name(name) end |
#left ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Move the virtual cursor to the left.
82 83 84 85 86 87 |
# File 'lib/vedeu/editor/cursor.rb', line 82 def left @ox -= 1 unless @ox == 0 @x -= 1 self end |
#real_x ⇒ Fixnum (private)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Return the real x coordinate.
196 197 198 |
# File 'lib/vedeu/editor/cursor.rb', line 196 def real_x (bx + x) - ox end |
#real_y ⇒ Fixnum (private)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Return the real y coordinate.
189 190 191 |
# File 'lib/vedeu/editor/cursor.rb', line 189 def real_y (by + y) - oy end |
#refresh ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Should ox/oy be 0; or set to @ox/@oy? (GL: 2015-10-02)
Overwrite the cursor of the same name. This ensure that on refresh the cursor stays in the correct position for the document being edited.
95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/vedeu/editor/cursor.rb', line 95 def refresh Vedeu::Cursors::Cursor.store(name: name, x: real_x, y: real_y, ox: 0, oy: 0, visible: true) Vedeu.trigger(:_refresh_cursor_, name) self end |
#reset! ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Move the virtual cursor to the origin (0, 0).
111 112 113 114 115 116 117 118 |
# File 'lib/vedeu/editor/cursor.rb', line 111 def reset! @x = 0 @y = 0 @ox = 0 @oy = 0 self end |
#right ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Move the virtual cursor to the right.
123 124 125 126 127 |
# File 'lib/vedeu/editor/cursor.rb', line 123 def right @x += 1 self end |
#to_s ⇒ String Also known as: to_str
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Return the escape sequence as a string for setting the cursor position and show the cursor.
133 134 135 |
# File 'lib/vedeu/editor/cursor.rb', line 133 def to_s "\e[#{real_y};#{real_x}H\e[?25h" end |
#up(size = nil) ⇒ Vedeu::Editor::Cursor
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Move the virtual cursor up by one line.
142 143 144 145 146 147 148 |
# File 'lib/vedeu/editor/cursor.rb', line 142 def up(size = nil) @oy -= 1 unless @oy == 0 @y -= 1 @x = size if size && x > size self end |