class Soundcloud9000::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/soundcloud9000/ui/view.rb, line 15 def initialize(rect) @rect = rect # use Pad instead of Window? @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/soundcloud9000/ui/view.rb, line 34 def body_width rect.width - 2 * padding end
clear()
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 42 def clear @window.clear end
padding(value = nil)
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 23 def padding(value = nil) value.nil? ? @padding : @padding = value end
render()
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 27 def render perform_layout reset draw refresh end
with_color(name, &block)
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 38 def with_color(name, &block) @window.attron(Color.get(name), &block) end
Protected Instance Methods
draw()
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 68 def draw raise NotImplementedError end
line(content)
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 52 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/soundcloud9000/ui/view.rb, line 48 def lines_left rect.height - @line - 1 end
perform_layout()
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 66 def perform_layout; end
refresh()
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 62 def refresh @window.refresh end
reset()
click to toggle source
# File lib/soundcloud9000/ui/view.rb, line 58 def reset @line = 0 end