class Tkn2::Screen
Public Class Methods
new()
click to toggle source
# File lib/tkn2/screen.rb, line 5 def initialize Curses.init_screen Curses.cbreak Curses.nl Curses.noecho Curses.curs_set 0 Curses.stdscr.keypad(true) end
Public Instance Methods
render(deck)
click to toggle source
# File lib/tkn2/screen.rb, line 14 def render(deck) loop do break unless deck.current Curses.clear place_content deck.current.block case Curses.getch when 'q' break when 'n', Curses::Key::DOWN, Curses::Key::RIGHT, ' ', Curses::Key::ENTER, Curses::Key::NPAGE deck.next when 'p', Curses::Key::UP, Curses::Key::LEFT, Curses::Key::BACKSPACE, Curses::Key::PPAGE deck.prev when Curses::Key::HOME deck.first end end Curses.stdscr.close end
Private Instance Methods
place_content(content)
click to toggle source
# File lib/tkn2/screen.rb, line 38 def place_content(content) raw_content = ContentBlock.new(ANSIReader::Remover.new.remove(content.content)) top = (Curses.lines - raw_content.height) / 2 left = (Curses.cols - raw_content.width) / 2 window = Curses.stdscr.subwin(raw_content.height, raw_content.width, top, left) ANSIReader::Screen.new(window).parse(content.content) window.refresh end