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