class Sc20XX::UI::View
class responsible for helping keep our app tidy and populated
Constants
- INTERSECTION
- LINE_SEPARATOR
- ROW_SEPARATOR
Attributes
rect[R]
Public Class Methods
new(rect)
click to toggle source
# File lib/sc20XX/ui/view.rb, line 15 def initialize(rect) @rect = rect @window = Curses::Window.new(rect.height, rect.width, rect.y, rect.x) @line = 0 @padding = 0 end
Public Instance Methods
body_width()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 33 def body_width rect.width - 2 * padding end
clear()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 41 def clear @window.clear end
padding(value = nil)
click to toggle source
# File lib/sc20XX/ui/view.rb, line 22 def padding(value = nil) value.nil? ? @padding : @padding = value end
render()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 26 def render perform_layout reset draw refresh end
with_color(name, &block)
click to toggle source
# File lib/sc20XX/ui/view.rb, line 37 def with_color(name, &block) @window.attron(Color.get(name), &block) end
Protected Instance Methods
draw()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 68 def draw fail NotImplementedError end
line(content)
click to toggle source
# File lib/sc20XX/ui/view.rb, line 51 def line(content) @window.setpos(@line, padding) @window.addstr(content.ljust(body_width).slice(0, body_width)) @line += 1 end
lines_left()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 47 def lines_left rect.height - @line - 1 end
perform_layout()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 65 def perform_layout end
refresh()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 61 def refresh @window.refresh end
reset()
click to toggle source
# File lib/sc20XX/ui/view.rb, line 57 def reset @line = 0 end