use touchmenu widget in readermenu

pull/2/merge
Qingping Hou 11 years ago
parent 38a6ea96d7
commit 1fcb5281a0

@ -119,9 +119,9 @@ function ReaderBookmark:onShowBookmark()
return true
end
function ReaderBookmark:addToMainMenu(item_table)
function ReaderBookmark:addToMainMenu(tab_item_table)
-- insert table to main reader menu
table.insert(item_table, {
table.insert(tab_item_table.navi, {
text = self.bm_menu_title,
callback = function()
self:onShowBookmark()

@ -211,9 +211,9 @@ function ReaderFont:setFont(face)
end
end
function ReaderFont:addToMainMenu(item_table)
function ReaderFont:addToMainMenu(tab_item_table)
-- insert table to main reader menu
table.insert(item_table, {
table.insert(tab_item_table.typeset, {
text = self.font_menu_title,
sub_item_table = self.face_table,
})

@ -1,11 +1,24 @@
require "ui/widget/menu"
require "ui/widget/touchmenu"
ReaderMenu = InputContainer:new{
_name = "ReaderMenu",
item_table = {},
tab_item_table = nil,
registered_widgets = {},
}
function ReaderMenu:init()
self.item_table = {}
self.tab_item_table = {
main = {
icon = "resources/icons/appbar.pokeball.png",
},
navi = {
icon = "resources/icons/appbar.page.corner.bookmark.png",
},
typeset = {
icon = "resources/icons/appbar.page.text.png",
},
}
self.registered_widgets = {}
if Device:hasKeyboard() then
@ -33,10 +46,10 @@ end
function ReaderMenu:setUpdateItemTable()
for _, widget in pairs(self.registered_widgets) do
widget:addToMainMenu(self.item_table)
widget:addToMainMenu(self.tab_item_table)
end
table.insert(self.item_table, {
table.insert(self.tab_item_table.main, {
text = "Return to file manager",
callback = function()
self.ui:handleEvent(Event:new("RestoreScreenMode",
@ -48,21 +61,40 @@ function ReaderMenu:setUpdateItemTable()
end
function ReaderMenu:onShowMenu()
if #self.item_table == 0 then
if #self.tab_item_table.main == 0 then
self:setUpdateItemTable()
end
local main_menu = Menu:new{
title = "Document menu",
item_table = self.item_table,
width = Screen:getWidth() - 100,
}
local main_menu = nil
if Device:isTouchDevice() then
main_menu = TouchMenu:new{
item_table = {
self.tab_item_table.navi,
self.tab_item_table.typeset,
self.tab_item_table.main,
},
}
else
main_menu = Menu:new{
title = "Document menu",
item_table = {},
width = Screen:getWidth() - 100,
}
for _,item_table in pairs(self.tab_item_table) do
for k,v in ipairs(item_table) do
table.insert(main_menu.item_table, v)
end
end
end
local menu_container = CenterContainer:new{
ignore = "height",
dimen = Screen:getSize(),
main_menu,
}
main_menu.parent = menu_container
main_menu.close_callback = function ()
UIManager:close(menu_container)
end

@ -100,9 +100,9 @@ function ReaderToc:onShowToc()
return true
end
function ReaderToc:addToMainMenu(item_table)
function ReaderToc:addToMainMenu(tab_item_table)
-- insert table to main reader menu
table.insert(item_table, {
table.insert(tab_item_table.navi, {
text = self.toc_menu_title,
callback = function()
self:onShowToc()

@ -98,9 +98,9 @@ function ReaderTypeset:toggleEmbeddedStyleSheet()
self.ui:handleEvent(Event:new("UpdatePos"))
end
function ReaderTypeset:addToMainMenu(item_table)
function ReaderTypeset:addToMainMenu(tab_item_table)
-- insert table to main reader menu
table.insert(item_table, {
table.insert(tab_item_table.typeset, {
text = self.css_menu_title,
sub_item_table = self:genStyleSheetMenu(),
})

@ -179,9 +179,9 @@ function ReaderZooming:genSetZoomModeCallBack(mode)
end
end
function ReaderZooming:addToMainMenu(item_table)
function ReaderZooming:addToMainMenu(tab_item_table)
if self.ui.document.info.has_pages then
table.insert(item_table, {
table.insert(tab_item_table.typeset, {
text = "Switch zoom mode",
sub_item_table = {
{

Loading…
Cancel
Save