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
|