summaryrefslogtreecommitdiff
path: root/input.lua
diff options
context:
space:
mode:
Diffstat (limited to 'input.lua')
-rw-r--r--input.lua93
1 files changed, 12 insertions, 81 deletions
diff --git a/input.lua b/input.lua
index 746e6c0..df339b1 100644
--- a/input.lua
+++ b/input.lua
@@ -1,7 +1,6 @@
-- Copyright 2025 David Vazgenovich Shakaryan
local config = require('config')
-local rt = require('rt')
local input = {}
@@ -13,10 +12,20 @@ local clicks = {}
local state
local osd
+local menu_btn_f
-function input.init(_state, _osd, _bs)
+function input.init(_state, _osd, _menu_btn_f)
state = _state
osd = _osd
+ menu_btn_f = _menu_btn_f
+end
+
+function input.define_mapping(name, m)
+ mappings[name] = m
+end
+
+function input.set_mapping(name)
+ active_mapping = mappings[name]
end
local function mouse_has_drifted(x1, y1, x2, y2)
@@ -187,10 +196,6 @@ local function unbind_click()
mp.command_native({'disable-section', 'click-nodrag'})
end
-function input.set_key_mapping(m)
- active_mapping = mappings[m]
-end
-
local btn_timer; btn_timer = mp.add_periodic_timer(0.1, function()
if osd.mpos and mp.get_time() - osd.mpos_time > config.btn_timeout then
osd:show_menu_btn(false)
@@ -226,7 +231,7 @@ function input.update_mpos(mpos)
if (ms.target == 'menu_btn') ~= (ps.target == 'menu_btn') then
if ms.target == 'menu_btn' then
- bind_click(rt.toggle_menu)
+ bind_click(menu_btn_f)
else
unbind_click()
end
@@ -254,78 +259,4 @@ function input.on_resize()
btn_timer:kill()
end
-mappings.MENU = {
- ['BS'] = {rt.prev_menu},
- ['/'] = {rt.start_search},
- ['Ctrl+s'] = {rt.toggle_menu_sort},
- ['Ctrl+R'] = {rt.reload_data},
-
- ['ENTER'] = {rt.select_option},
- ['Ctrl+f'] = {rt.favourite_option},
- ['g'] = {rt.goto_option},
- ['i'] = {rt.open_option_info},
- ['?'] = {rt.open_option_info},
- ['Ctrl+p'] = {rt.goto_playing},
-
- ['k'] = {rt.cursor_up, 'repeat'},
- ['j'] = {rt.cursor_down, 'repeat'},
- ['K'] = {rt.cursor_page_up, 'repeat'},
- ['J'] = {rt.cursor_page_down, 'repeat'},
- ['UP'] = {rt.cursor_up, 'repeat'},
- ['DOWN'] = {rt.cursor_down, 'repeat'},
- ['Shift+UP'] = {rt.cursor_page_up, 'repeat'},
- ['Shift+DOWN'] = {rt.cursor_page_down, 'repeat'},
- ['PGUP'] = {rt.cursor_page_up, 'repeat'},
- ['PGDWN'] = {rt.cursor_page_down, 'repeat'},
- ['HOME'] = {rt.cursor_start},
- ['END'] = {rt.cursor_end},
- ['WHEEL_UP'] = {rt.cursor_wheel_up, 'repeat'},
- ['WHEEL_DOWN'] = {rt.cursor_wheel_down, 'repeat'},
- ['Shift+WHEEL_UP'] = {rt.cursor_wheel_page_up, 'repeat'},
- ['Shift+WHEEL_DOWN'] = {rt.cursor_wheel_page_down, 'repeat'},
-
- ['Alt+k'] = {rt.move_option_up, 'repeat'},
- ['Alt+j'] = {rt.move_option_down, 'repeat'},
- ['Alt+K'] = {rt.move_option_page_up, 'repeat'},
- ['Alt+J'] = {rt.move_option_page_down, 'repeat'},
- ['Alt+UP'] = {rt.move_option_up, 'repeat'},
- ['Alt+DOWN'] = {rt.move_option_down, 'repeat'},
- ['Shift+Alt+UP'] = {rt.move_option_page_up, 'repeat'},
- ['Shift+Alt+DOWN'] = {rt.move_option_page_down, 'repeat'},
- ['Alt+PGUP'] = {rt.move_option_page_up, 'repeat'},
- ['Alt+PGDWN'] = {rt.move_option_page_down, 'repeat'},
- ['Alt+HOME'] = {rt.move_option_start},
- ['Alt+END'] = {rt.move_option_end},
- ['Alt+WHEEL_UP'] = {rt.move_option_wheel_up, 'repeat'},
- ['Alt+WHEEL_DOWN'] = {rt.move_option_wheel_down, 'repeat'},
- ['Shift+Alt+WHEEL_UP'] = {rt.move_option_wheel_page_up, 'repeat'},
- ['Shift+Alt+WHEEL_DOWN'] = {rt.move_option_wheel_page_down, 'repeat'},
-
- _targets = {
- scrollbar = {
- ['MBTN_LEFT_DBL'] = {rt.dbl_click_scrollbar},
- },
- menu = {
- ['MBTN_LEFT'] = {rt.click_menu},
- ['MBTN_LEFT_DBL'] = {rt.dbl_click_menu},
- ['MBTN_RIGHT_DBL'] = {rt.dbl_right_click_menu},
- },
- },
-}
-
-mappings.SEARCH = {
- ['ANY_UNICODE'] = {rt.search_input_char, 'complex'},
- ['BS'] = {rt.search_input_bs, 'repeat'},
- ['DEL'] = {rt.search_input_del, 'repeat'},
-
- ['ENTER'] = {rt.end_search},
- ['ESC'] = {rt.cancel_search},
- ['Ctrl+c'] = {rt.cancel_search},
-
- ['LEFT'] = {rt.search_cursor_left, 'repeat'},
- ['RIGHT'] = {rt.search_cursor_right, 'repeat'},
- ['Ctrl+a'] = {rt.search_cursor_start},
- ['Ctrl+e'] = {rt.search_cursor_end},
-}
-
return input