diff options
Diffstat (limited to 'input.lua')
| -rw-r--r-- | input.lua | 93 |
1 files changed, 12 insertions, 81 deletions
@@ -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 |
