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