@ -5,6 +5,7 @@ local Device = require("device")
local Event = require ( " ui/event " )
local Event = require ( " ui/event " )
local InputContainer = require ( " ui/widget/container/inputcontainer " )
local InputContainer = require ( " ui/widget/container/inputcontainer " )
local Screensaver = require ( " ui/screensaver " )
local Screensaver = require ( " ui/screensaver " )
local Size = require ( " ui/size " )
local UIManager = require ( " ui/uimanager " )
local UIManager = require ( " ui/uimanager " )
local logger = require ( " logger " )
local logger = require ( " logger " )
local dbg = require ( " dbg " )
local dbg = require ( " dbg " )
@ -295,16 +296,8 @@ function ReaderMenu:setUpdateItemTable()
text = _ ( " Plugin management " ) ,
text = _ ( " Plugin management " ) ,
sub_item_table = PluginLoader : genPluginManagerSubItem ( )
sub_item_table = PluginLoader : genPluginManagerSubItem ( )
}
}
-- main menu tab
-- insert common info
for id , common_setting in pairs ( dofile ( " frontend/ui/elements/common_info_menu_table.lua " ) ) do
self.menu_items [ id ] = common_setting
end
-- insert common exit for reader
for id , common_setting in pairs ( dofile ( " frontend/ui/elements/common_exit_menu_table.lua " ) ) do
self.menu_items [ id ] = common_setting
end
-- main menu tab
self.menu_items . open_previous_document = {
self.menu_items . open_previous_document = {
text_func = function ( )
text_func = function ( )
local previous_file = self : getPreviousFile ( )
local previous_file = self : getPreviousFile ( )
@ -331,6 +324,14 @@ function ReaderMenu:setUpdateItemTable()
} )
} )
end
end
}
}
-- insert common info
for id , common_setting in pairs ( dofile ( " frontend/ui/elements/common_info_menu_table.lua " ) ) do
self.menu_items [ id ] = common_setting
end
-- insert common exit
for id , common_setting in pairs ( dofile ( " frontend/ui/elements/common_exit_menu_table.lua " ) ) do
self.menu_items [ id ] = common_setting
end
local order = require ( " ui/elements/reader_menu_order " )
local order = require ( " ui/elements/reader_menu_order " )
@ -408,21 +409,14 @@ function ReaderMenu:exitOrRestart(callback, force)
end
end
end
end
function ReaderMenu : onShow Menu( tab_index )
function ReaderMenu : gen Menu( tab_index )
if self.tab_item_table == nil then
if self.tab_item_table == nil then
self : setUpdateItemTable ( )
self : setUpdateItemTable ( )
end
end
if tab_index == nil then
if not tab_index then
tab_index = self.last_tab_index
tab_index = self.last_tab_index
end
end
local menu_container = CenterContainer : new {
covers_header = true ,
ignore = " height " ,
dimen = Screen : getSize ( ) ,
}
local main_menu
local main_menu
if Device : isTouchDevice ( ) or Device : hasDPad ( ) then
if Device : isTouchDevice ( ) or Device : hasDPad ( ) then
local TouchMenu = require ( " ui/widget/touchmenu " )
local TouchMenu = require ( " ui/widget/touchmenu " )
@ -430,26 +424,31 @@ function ReaderMenu:onShowMenu(tab_index)
width = Screen : getWidth ( ) ,
width = Screen : getWidth ( ) ,
last_index = tab_index ,
last_index = tab_index ,
tab_item_table = self.tab_item_table ,
tab_item_table = self.tab_item_table ,
show_parent = menu_container ,
}
}
else
else
local Menu = require ( " ui/widget/menu " )
local Menu = require ( " ui/widget/menu " )
main_menu = Menu : new {
main_menu = Menu : new {
title = _ ( " Document menu " ) ,
title = _ ( " Document menu " ) ,
item_table = Menu.itemTableFromTouchMenu ( self.tab_item_table ) ,
item_table = Menu.itemTableFromTouchMenu ( self.tab_item_table ) ,
width = Screen : getWidth ( ) - 100 ,
width = Screen : getWidth ( ) - ( Size.margin . fullscreen_popout * 2 ) ,
show_parent = menu_container ,
}
}
end
end
main_menu.close_callback = function ( )
main_menu.close_callback = function ( )
self : onCloseReaderMenu ( )
self : onCloseReaderMenu ( )
end
end
return main_menu
end
main_menu.touch_menu_callback = function ( )
function ReaderMenu : onShowMenu ( tab_index , main_menu )
self.ui : handleEvent ( Event : new ( " CloseConfigMenu " ) )
if main_menu == nil then
main_menu = self : genMenu ( tab_index )
end
end
local menu_container = CenterContainer : new {
covers_header = true ,
ignore = " height " ,
dimen = Screen : getSize ( ) ,
}
main_menu.show_parent = menu_container
menu_container [ 1 ] = main_menu
menu_container [ 1 ] = main_menu
-- maintain a reference to menu_container
-- maintain a reference to menu_container
self.menu_container = menu_container
self.menu_container = menu_container
@ -552,8 +551,8 @@ function ReaderMenu:onSaveSettings()
end
end
function ReaderMenu : onMenuSearch ( )
function ReaderMenu : onMenuSearch ( )
self : onShow Menu( )
local main_menu = self : gen Menu( )
self.menu_container[ 1 ] : onShowMenuSearch ( )
main_menu : onShowMenuSearch ( )
end
end
function ReaderMenu : registerToMainMenu ( widget )
function ReaderMenu : registerToMainMenu ( widget )