class Redwood::HorizontalSelector
Attributes
changed_by_user[RW]
label[RW]
Public Class Methods
new(label, vals, labels, base_color=:horizontal_selector_unselected_color, selected_color=:horizontal_selector_selected_color)
click to toggle source
# File lib/sup/horizontal_selector.rb, line 8 def initialize label, vals, labels, base_color=:horizontal_selector_unselected_color, selected_color=:horizontal_selector_selected_color @label = label @vals = vals @labels = labels @base_color = base_color @selected_color = selected_color @selection = 0 @changed_by_user = false end
Public Instance Methods
can_set_to?(val)
click to toggle source
# File lib/sup/horizontal_selector.rb, line 23 def can_set_to? val @vals.include? val end
line(width=nil)
click to toggle source
# File lib/sup/horizontal_selector.rb, line 29 def line width=nil label = if width sprintf "%#{width}s ", @label else "#{@label} " end [[@base_color, label]] + (0 ... @labels.length).inject([]) do |array, i| array + [ if i == @selection [@selected_color, @labels[i]] else [@base_color, @labels[i]] end] + [[@base_color, " "]] end + [[@base_color, ""]] end
roll_left()
click to toggle source
# File lib/sup/horizontal_selector.rb, line 48 def roll_left @selection = (@selection - 1) % @labels.length @changed_by_user = true end
roll_right()
click to toggle source
# File lib/sup/horizontal_selector.rb, line 53 def roll_right @selection = (@selection + 1) % @labels.length @changed_by_user = true end
set_to(val)
click to toggle source
# File lib/sup/horizontal_selector.rb, line 18 def set_to val raise UnknownValue, val.inspect unless can_set_to? val @selection = @vals.index(val) end
val()
click to toggle source
# File lib/sup/horizontal_selector.rb, line 27 def val; @vals[@selection] end