class RETerm::Components::VSlider
Vertical Slider Component
Attributes
increment[RW]
initial_value[RW]
labels[RW]
range[RW]
Public Class Methods
new(args={})
click to toggle source
Initialize the slider component
@param [Hash] args slider params
Calls superclass method
RETerm::Component::new
# File lib/reterm/components/vslider.rb, line 12 def initialize(args={}) super @initial_value = 0 @increment = 0.01 @range = [0, 1] @labels = true @value = initial_value end
Public Instance Methods
activatable?()
click to toggle source
# File lib/reterm/components/vslider.rb, line 33 def activatable? true end
activate!(*input)
click to toggle source
# File lib/reterm/components/vslider.rb, line 37 def activate!(*input) refresh_win handle_input(*input) (range[1] - range[0]) * @value end
draw!()
click to toggle source
# File lib/reterm/components/vslider.rb, line 29 def draw! refresh_win end
requested_cols()
click to toggle source
# File lib/reterm/components/vslider.rb, line 25 def requested_cols 3 end
requested_rows()
click to toggle source
# File lib/reterm/components/vslider.rb, line 21 def requested_rows 10 end
Private Instance Methods
on_dec()
click to toggle source
# File lib/reterm/components/vslider.rb, line 51 def on_dec @value -= increment @value = 0 if @value < 0 refresh_win end
on_inc()
click to toggle source
# File lib/reterm/components/vslider.rb, line 45 def on_inc @value += increment @value = 1 if @value > 1 refresh_win end
refresh_win()
click to toggle source
# File lib/reterm/components/vslider.rb, line 57 def refresh_win 0.upto(window.rows) do |l| pre = " " pre = "+" if @labels && l == 0 pre = "-" if @labels && l == (window.rows-1) fill = (l.to_f / window.rows) >= (1-@value) window.mvaddstr(l, 0, pre + (fill ? "#" : " ") + "\n") end window.refresh end