3 class HorizontalSelector
6 def initialize label, vals, labels, base_color=:horizontal_selector_unselected_color, selected_color=:horizontal_selector_selected_color
10 @base_color = base_color
11 @selected_color = selected_color
15 def set_to val; @selection = @vals.index(val) end
17 def val; @vals[@selection] end
22 sprintf "%#{width}s ", @label
27 [[@base_color, label]] +
28 (0 ... @labels.length).inject([]) do |array, i|
31 [@selected_color, @labels[i]]
33 [@base_color, @labels[i]]
34 end] + [[@base_color, " "]]
35 end + [[@base_color, ""]]
39 @selection = (@selection - 1) % @labels.length
43 @selection = (@selection + 1) % @labels.length