lib/vedeu/cursors/cursor.rb in vedeu-0.6.49 vs lib/vedeu/cursors/cursor.rb in vedeu-0.6.50
- old
+ new
@@ -156,29 +156,15 @@
# Renders the cursor.
#
# @return [Array<Vedeu::Models::Escape>]
def render
- Vedeu.log(message: "Refreshing cursor: '#{name}'".freeze)
+ Vedeu.log(type: :output, message: "Refreshing cursor: '#{name}'".freeze)
Vedeu.render_output(escape_sequence)
end
- # Arbitrarily move the cursor to a given position.
- #
- # @param new_oy [Fixnum] The row/line position.
- # @param new_ox [Fixnum] The column/character position.
- # @return [Vedeu::Cursors::Cursor]
- def reposition(new_oy, new_ox)
- @oy = new_oy
- @ox = new_ox
- @y = coordinate(oy, :y).y
- @x = coordinate(ox, :x).x
-
- store
- end
-
# @return [Array<Fixnum>]
def to_a
position.to_a
end
@@ -392,26 +378,40 @@
Vedeu.cursors.by_name(name).to_a
end
# See {file:docs/cursors.md}
Vedeu.bind(:_cursor_reposition_) do |name, y, x|
- Vedeu.cursors.by_name(name).reposition(y, x)
-
- Vedeu.trigger(:_clear_view_, name)
- Vedeu.trigger(:_refresh_view_, name)
- Vedeu.trigger(:_refresh_cursor_, name)
+ Vedeu::Cursors::Reposition.new(name: name,
+ y: y,
+ x: x,
+ mode: :absolute).reposition
end
# See {file:docs/cursors.md}
Vedeu.bind(:_cursor_top_) do |name|
- Vedeu.trigger(:_cursor_reposition_, name, 0, 0)
+ name ||= Vedeu.focus
+
+ Vedeu::Cursors::Reposition.new(name: name,
+ y: 0,
+ x: 0,
+ mode: :relative).reposition
+
+ Vedeu.trigger(:_clear_view_, name)
+ Vedeu.trigger(:_refresh_view_, name)
end
# See {file:docs/cursors.md}
Vedeu.bind(:_cursor_bottom_) do |name|
+ name ||= Vedeu.focus
count = Vedeu.buffers.by_name(name).size
- Vedeu.trigger(:_cursor_reposition_, name, count, 0)
+ Vedeu::Cursors::Reposition.new(name: name,
+ y: count,
+ x: 0,
+ mode: :relative).reposition
+
+ Vedeu.trigger(:_clear_view_, name)
+ Vedeu.trigger(:_refresh_view_, name)
end
# :nocov:
end # Vedeu