Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local startY = 6
- local height = h - startY - 1
- local scroll = 0
- local selected = 1
- local draw = function()
- fill(1, startY, w, height + 1, theme.background)
- for i = scroll + 1, scroll + height do
- if results[i] then
- if i == selected + scroll then
- term.setCursorPos(3, (i - scroll) + startY)
- term.write("> " .. currentProtocol .. "://" .. results[i])
- else
- term.setCursorPos(5, (i - scroll) + startY)
- term.write(currentProtocol .. "://" .. results[i])
- end
- end
- end
- end
- draw()
- while true do
- local event, but, x, y = os.pullEvent()
- if event == "key" then
- if but == keys.up and selected + scroll > 1 then
- if selected > 1 then
- selected = selected - 1
- else
- scroll = math.max(0, scroll - 1)
- end
- elseif but == keys.down and selected + scroll < #results then
- if selected < height then
- selected = selected + 1
- else
- scroll = math.min(scroll + 1, #results - height)
- end
- elseif but == keys.enter then
- local item = results[scroll + selected]
- if item then
- os.queueEvent(redirectEvent, item)
- coroutine.yield()
- end
- end
- draw()
- elseif event == "mouse_scroll" then
- if but > 0 then
- os.queueEvent("key", keys.down)
- else
- os.queueEvent("key", keys.up)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement