add select callback to menu and bug fix in shortcut

pull/2/merge
Qingping Hou 12 years ago
parent d5c7e6ccb5
commit 07e17125b5

@ -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

Loading…
Cancel
Save