From 284d5ce9d90b726ba188c0b3d0c31d3287ddd88d Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 27 May 2012 19:44:37 +0800 Subject: [PATCH] two bug fixes in menu widget * update page info * item shortcut support in all pages --- frontend/ui/dialog.lua | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/frontend/ui/dialog.lua b/frontend/ui/dialog.lua index 75d85e4ea..19e9a4450 100644 --- a/frontend/ui/dialog.lua +++ b/frontend/ui/dialog.lua @@ -442,7 +442,6 @@ function Menu:init() self.key_events.Select = { {"Press"}, doc = "select current menu item"} self[1] = CenterContainer:new{ - dimen = {w = G_width, h = G_height}, FrameContainer:new{ background = 0, radius = math.floor(self.width/20), @@ -460,6 +459,7 @@ function Menu:init() }, }, -- VerticalGroup }, -- FrameContainer + dimen = {w = G_width, h = G_height}, } -- CenterContainer self:_updateItems() @@ -467,7 +467,10 @@ end function Menu:_updateItems() self.layout = {} - self[1][1][1][2] = VerticalGroup:new{} + self[1] + [1] -- FrameContainer + [1] -- VerticalGroup + [2] = VerticalGroup:new{} local item_group = self[1][1][1][2] for c = 1, self.perpage do @@ -509,7 +512,7 @@ function Menu:onSelectByShortCut(_, keyevent) if k > self.perpage then break elseif v == keyevent.key then - local item = self.item_table[k] + local item = self.item_table[(self.page-1)*self.perpage+k] self.item_table = nil UIManager:close(self) self.on_select_callback(item) @@ -525,10 +528,7 @@ function Menu:onNextPage() self.page = self.page + 1 self:_updateItems() self.selected = { x = 1, y = 1 } - self[1][1][1][3] = TextWidget:new{ - text = "page "..self.page.."/"..self.page_num, - face = self.fface, - }, + self[1][1][1][3].text = "page "..self.page.."/"..self.page_num UIManager:setDirty(self) end return true @@ -540,10 +540,7 @@ function Menu:onPrevPage() self.page = self.page - 1 self:_updateItems() self.selected = { x = 1, y = 1 } - self[1][1][1][3] = TextWidget:new{ - text = "page "..self.page.."/"..self.page_num, - face = self.fface, - }, + self[1][1][1][3].text = "page "..self.page.."/"..self.page_num UIManager:setDirty(self) end return true