lualoader: A little more general menu cleanup

Instead of a single-letter parameter ('m'), use something a little more
descriptive and meaningful: 'menudef' ("menu definition") -- these functions
expect to be passed a menudef, so call it what it is.

While here, throw an assertion in that we have a handler for the selected
menu item. This is more of a debugging aide so that it's more obvious when
one is testing a menudef that they've added an entry item that we don't
handle.

This is an improvement over the past behavior of ignoring the unknown menu
entry.
This commit is contained in:
Kyle Evans 2018-02-26 03:46:17 +00:00
parent fcd13be6e2
commit 2a11b81090
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=330008

View File

@ -347,21 +347,21 @@ menu.default = menu.welcome
-- the local alias_table in menu.process.
menu.current_alias_table = {}
function menu.draw(m)
function menu.draw(menudef)
-- Clear the screen, reset the cursor, then draw
screen.clear()
screen.defcursor()
menu.current_alias_table = drawer.drawscreen(m)
drawn_menu = m
menu.current_alias_table = drawer.drawscreen(menudef)
drawn_menu = menudef
end
-- 'keypress' allows the caller to indicate that a key has been pressed that we
-- should process as our initial input.
function menu.process(m, keypress)
assert(m ~= nil)
function menu.process(menudef, keypress)
assert(menudef ~= nil)
if drawn_menu ~= m then
menu.draw(m)
if drawn_menu ~= menudef then
menu.draw(menudef)
end
while true do
@ -370,7 +370,7 @@ function menu.process(m, keypress)
-- Special key behaviors
if (key == core.KEY_BACKSPACE or key == core.KEY_DELETE) and
m ~= menu.default then
menudef ~= menu.default then
break
elseif key == core.KEY_ENTER then
core.boot()
@ -389,19 +389,17 @@ function menu.process(m, keypress)
-- if we have an alias do the assigned action:
if sel_entry ~= nil then
-- Get menu handler
local handler = menu.handlers[sel_entry.entry_type]
if handler ~= nil then
-- The handler's return value indicates if we
-- need to exit this menu. An omitted or true
-- return value means to continue.
if handler(m, sel_entry) == false then
return
end
assert(handler ~= nil)
-- The handler's return value indicates if we
-- need to exit this menu. An omitted or true
-- return value means to continue.
if handler(menudef, sel_entry) == false then
return
end
-- If we got an alias key the screen is out of date...
-- redraw it.
menu.draw(m)
menu.draw(menudef)
end
end
end