summaryrefslogtreecommitdiffstatshomepage
path: root/plugins/autofire/autofire_menu.lua
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/autofire/autofire_menu.lua')
-rw-r--r--plugins/autofire/autofire_menu.lua52
1 files changed, 28 insertions, 24 deletions
diff --git a/plugins/autofire/autofire_menu.lua b/plugins/autofire/autofire_menu.lua
index c4a76e39f64..3536800767f 100644
--- a/plugins/autofire/autofire_menu.lua
+++ b/plugins/autofire/autofire_menu.lua
@@ -140,8 +140,6 @@ local function handle_configure_menu(index, event)
if event == 'select' then
table.insert(menu_stack, MENU_TYPES.BUTTON)
return true
- else
- return false
end
elseif index == 2 then
-- Hotkey
@@ -150,30 +148,30 @@ local function handle_configure_menu(index, event)
if keycode then
current_button.key = keycode
return true
- else
- return false
end
- else
- return false
end
elseif index == 3 then
-- On frames
manager.machine:popmessage(_('Number of frames button will be pressed'))
if event == 'left' then
current_button.on_frames = current_button.on_frames - 1
+ return true
elseif event == 'right' then
current_button.on_frames = current_button.on_frames + 1
+ return true
end
elseif index == 4 then
-- Off frames
manager.machine:popmessage(_('Number of frames button will be released'))
if event == 'left' then
current_button.off_frames = current_button.off_frames - 1
+ return true
elseif event == 'right' then
current_button.off_frames = current_button.off_frames + 1
+ return true
end
end
- return true
+ return false
end
local function populate_edit_menu()
@@ -192,13 +190,11 @@ end
local function handle_edit_menu(index, event, buttons)
local section, adjusted_index = menu_section(index)
- if section == MENU_SECTIONS.CONTENT then
+ if ((section == MENU_SECTIONS.FOOTER) and (event == 'select')) or (event == 'cancel') then
+ table.remove(menu_stack)
+ return true
+ elseif section == MENU_SECTIONS.CONTENT then
return handle_configure_menu(adjusted_index, event)
- elseif section == MENU_SECTIONS.FOOTER then
- if event == 'select' then
- table.remove(menu_stack)
- return true
- end
end
return false
end
@@ -223,16 +219,14 @@ end
local function handle_add_menu(index, event, buttons)
local section, adjusted_index = menu_section(index)
- if section == MENU_SECTIONS.CONTENT then
- return handle_configure_menu(adjusted_index, event)
- elseif section == MENU_SECTIONS.FOOTER then
- if event == 'select' then
- table.remove(menu_stack)
- if is_button_complete(current_button) then
- buttons[#buttons + 1] = current_button
- end
- return true
+ if ((section == MENU_SECTIONS.FOOTER) and (event == 'select')) or (event == 'cancel') then
+ table.remove(menu_stack)
+ if is_button_complete(current_button) and (event == 'select') then
+ buttons[#buttons + 1] = current_button
end
+ return true
+ elseif section == MENU_SECTIONS.CONTENT then
+ return handle_configure_menu(adjusted_index, event)
end
return false
end
@@ -249,7 +243,6 @@ local function populate_button_menu()
for port_key, port in pairs(manager.machine.ioport.ports) do
for field_key, field in pairs(port.fields) do
if is_supported_input(field) then
- menu[#menu + 1] = { _p("input-name", field.name), '', '' }
inputs[#inputs + 1] = {
port_name = port_key,
field_name = field_key,
@@ -258,13 +251,24 @@ local function populate_button_menu()
end
end
end
+ -- TODO: group by device so we can sort table.sort(inputs, function(x, y) return x.ioport_field.name < y.ioport_field.name end)
+ for i, input in pairs(inputs) do
+ menu[header_height + i] = { _p("input-name", input.ioport_field.name), '', '' }
+ end
content_height = #menu
+
+ menu[#menu + 1] = {'---', '', ''}
+ menu[#menu + 1] = {_('Cancel'), '', ''}
+
return menu
end
local function handle_button_menu(index, event)
local section, adjusted_index = menu_section(index)
- if section == MENU_SECTIONS.CONTENT and event == 'select' then
+ if ((section == MENU_SECTIONS.FOOTER) and (event == 'select')) or (event == 'cancel') then
+ table.remove(menu_stack)
+ return true
+ elseif (section == MENU_SECTIONS.CONTENT) and (event == 'select') then
local selected_input = inputs[adjusted_index]
current_button.port = selected_input.port_name
current_button.field = selected_input.field_name