From 07e17125b5fa7b18625bdc7fad98c64b89933b8b Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 27 May 2012 14:03:13 +0800 Subject: [PATCH] add select callback to menu and bug fix in shortcut --- frontend/ui/dialog.lua | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) 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