Method: Twterm::Tab::Scrollable::Scroller#respond_to_key

Defined in:
lib/twterm/tab/scrollable.rb

#respond_to_key(key) ⇒ Object



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# File 'lib/twterm/tab/scrollable.rb', line 123

def respond_to_key(key)
  k = KeyMapper.instance

  case key
  when k[:general, :page_down]
    10.times { move_down }
  when k[:general, :top]
    move_to_top
  when k[:general, :bottom]
    move_to_bottom
  when k[:general, :down], Curses::Key::DOWN
    move_down
  when k[:general, :up], Curses::Key::UP
    move_up
  when k[:general, :page_up]
    10.times { move_up }
  when k[:cursor, :top_of_window]
    move_to(offset)
  when k[:cursor, :middle_of_window]
    move_to((2 * offset + [drawable_item_count, total_item_count - offset].min - 1) / 2)
  when k[:cursor, :bottom_of_window]
    move_to(offset + [drawable_item_count, total_item_count - offset].min - 1)
  else
    return false
  end

  true
end