add register_widget in ReaderMenu & minor fixes in menu.lua

* now readerwidgets can add menu items in ReaderMenu by
calling ReaderMenu:addToMainMenuCallback and define its own
addToMainMenu method, which takes ReaderMenu's item_table as argument.
pull/2/merge
Qingping Hou 12 years ago
parent 93f7813d1a
commit f7c65ebef7

@ -173,7 +173,7 @@ end
function MenuItem:onUnfocus()
self._underline_container.color = 0
self.key_events = { }
self.key_events = {}
return true
end
@ -327,14 +327,16 @@ function Menu:init()
self.key_events.PrevPage = {
{Input.group.PgBack}, doc = "goto previous page of the menu"
}
-- we won't catch presses to "Right"
-- we won't catch presses to "Right", leave that to MenuItem.
self.key_events.FocusRight = nil
-- shortcut icon is not needed for touch device
if self.is_enable_shortcut then
self.key_events.SelectByShortCut = { {self.item_shortcuts} }
end
self.key_events.Select = {
{"Press"}, doc = "select current menu item"
}
end
self.key_events.Select = { {"Press"}, doc = "select current menu item"}
if #self.item_table > 0 then

@ -1,6 +1,12 @@
ReaderMenu = InputContainer:new{}
ReaderMenu = InputContainer:new{
item_table = {},
registered_widgets = {},
}
function ReaderMenu:init()
self.item_table = {}
self.registered_widgets = {}
if Device:isTouchDevice() then
self.ges_events = {
TapShowMenu = {
@ -27,10 +33,8 @@ function ReaderMenu:genSetZoomModeCallBack(mode)
end
end
function ReaderMenu:onShowMenu()
local item_table = {}
table.insert(item_table, {
function ReaderMenu:setUpdateItemTable()
table.insert(self.item_table, {
text = "Screen rotate",
sub_item_table = {
{
@ -53,7 +57,7 @@ function ReaderMenu:onShowMenu()
})
if self.ui.document.info.has_pages then
table.insert(item_table, {
table.insert(self.item_table, {
text = "Switch zoom mode",
sub_item_table = {
{
@ -82,26 +86,29 @@ function ReaderMenu:onShowMenu()
},
}
})
else
table.insert(item_table, {
text = "Font menu",
callback = function()
self.ui:handleEvent(Event:new("ShowFontMenu"))
end
})
end
table.insert(item_table, {
for _, widget in pairs(self.registered_widgets) do
widget:addToMainMenu(self.item_table)
end
table.insert(self.item_table, {
text = "Return to file browser",
callback = function()
UIManager:close(self.menu_container)
self.ui:onClose()
end
})
end
function ReaderMenu:onShowMenu()
if #self.item_table == 0 then
self:setUpdateItemTable()
end
local main_menu = Menu:new{
title = "Document menu",
item_table = item_table,
item_table = self.item_table,
width = Screen:getWidth() - 100,
}
function main_menu:onMenuChoice(item)
@ -131,7 +138,14 @@ function ReaderMenu:onTapShowMenu()
end
function ReaderMenu:onSetDimensions(dimen)
-- update gesture listenning range according to new screen orientation
self:init()
-- @TODO update gesture listenning range according to new screen
-- orientation 15.12 2012 (houqp)
end
function ReaderMenu:onCloseDocument()
end
function ReaderMenu:addToMainMenuCallback(widget)
table.insert(self.registered_widgets, widget)
end

Loading…
Cancel
Save