diff --git a/frontend/ui/dialog.lua b/frontend/ui/dialog.lua index 3e679b426..75d85e4ea 100644 --- a/frontend/ui/dialog.lua +++ b/frontend/ui/dialog.lua @@ -416,9 +416,8 @@ Menu = FocusManager:new{ item_height = 36, page = 1, - current = 1, - oldcurrent = 0, - selected_item = nil, + + on_select_callback = function() end, } function Menu:init() @@ -440,6 +439,7 @@ function Menu:init() if self.is_enable_shortcut then self.key_events.SelectByShortCut = { {self.item_shortcuts} } end + self.key_events.Select = { {"Press"}, doc = "select current menu item"} self[1] = CenterContainer:new{ dimen = {w = G_width, h = G_height}, @@ -506,15 +506,17 @@ end function Menu:onSelectByShortCut(_, keyevent) for k,v in ipairs(self.item_shortcuts) do - if v == keyevent.key then + if k > self.perpage then + break + elseif v == keyevent.key then local item = self.item_table[k] self.item_table = nil UIManager:close(self) - debug(item) - -- send events + self.on_select_callback(item) break end end + return true end function Menu:onNextPage() @@ -553,6 +555,12 @@ function Menu:onShowItemDetail() ) end +function Menu:onSelect() + UIManager:close(self) + self.on_select_callback(self.item_table[self.selected.y]) + return true +end + function Menu:onClose() UIManager:close(self) return true