class CommandSubWindow
Public Class Methods
new(width = 0, height = 15, bordery = 5, borderx = 10)
click to toggle source
# File lib/cless/display.rb, line 585 def initialize(width = 0, height = 15, bordery = 5, borderx = 10) maxy, maxx = Ncurses.stdscr.getmaxy, Ncurses.stdscr.getmaxx @nlines = [height + 2, maxy - 2 * bordery].min @ncols = [width + 2, maxx - 2 * borderx].min @win = Ncurses.stdscr.subwin(@nlines, @ncols, bordery, borderx) new_list([]) end
Public Instance Methods
destroy()
click to toggle source
# File lib/cless/display.rb, line 593 def destroy @win.delwin if @win end
display_list()
click to toggle source
# File lib/cless/display.rb, line 604 def display_list return unless @win @win.box(0, 0) len = @ncols - 2 height = @nlines - 2 str = " Commands " @win.mvaddstr(0, (len - str.size) / 2, str) if len > str.size i = 1 @list[@top_item..-1].each { |s| break if i > height @win.attron(Ncurses::A_REVERSE) if @cur_item + 1 == i + @top_item @win.mvaddstr(i, 1, s.ljust(len)[0, len]) @win.attroff(Ncurses::A_REVERSE) if @cur_item + 1 == i + @top_item i += 1 } empty = " " * len i.upto(height) { |j| @win.mvaddstr(j, 1, empty) } @win.wsyncup end
item()
click to toggle source
# File lib/cless/display.rb, line 638 def item; @list[@cur_item]; end
new_list(list)
click to toggle source
# File lib/cless/display.rb, line 597 def new_list(list) @list = list @top_item = 0 @cur_item = 0 display_list end
next_item()
click to toggle source
# File lib/cless/display.rb, line 626 def next_item @cur_item += 1 if @cur_item < @list.size - 1 @top_item += 1 if (@cur_item - @top_item).abs >= @nlines - 2 display_list end
previous_item()
click to toggle source
# File lib/cless/display.rb, line 632 def previous_item @cur_item -= 1 if @cur_item > 0 @top_item -= 1 if @cur_item < @top_item display_list end