2012-12-15 01:20:12 +00:00
|
|
|
ReaderMenu = InputContainer:new{
|
2013-02-02 06:36:29 +00:00
|
|
|
_name = "ReaderMenu",
|
2012-12-15 01:20:12 +00:00
|
|
|
item_table = {},
|
|
|
|
registered_widgets = {},
|
|
|
|
}
|
2012-11-11 07:24:11 +00:00
|
|
|
|
|
|
|
function ReaderMenu:init()
|
2012-12-15 01:20:12 +00:00
|
|
|
self.item_table = {}
|
|
|
|
self.registered_widgets = {}
|
|
|
|
|
2013-02-02 06:36:29 +00:00
|
|
|
if Device:hasKeyboard() then
|
2012-11-11 07:24:11 +00:00
|
|
|
self.key_events = {
|
|
|
|
ShowMenu = { { "Menu" }, doc = "show menu" },
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
2012-06-10 18:14:29 +00:00
|
|
|
|
2013-02-02 06:36:29 +00:00
|
|
|
function ReaderMenu:initGesListener()
|
|
|
|
self.ges_events = {
|
|
|
|
TapShowMenu = {
|
|
|
|
GestureRange:new{
|
|
|
|
ges = "tap",
|
|
|
|
range = Geom:new{
|
|
|
|
x = 0, y = 0,
|
|
|
|
w = Screen:getWidth(),
|
|
|
|
h = Screen:getHeight()/4,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2012-12-15 01:20:12 +00:00
|
|
|
function ReaderMenu:setUpdateItemTable()
|
|
|
|
table.insert(self.item_table, {
|
2012-06-12 16:14:23 +00:00
|
|
|
text = "Screen rotate",
|
2012-06-11 05:46:19 +00:00
|
|
|
sub_item_table = {
|
|
|
|
{
|
2013-02-02 06:36:29 +00:00
|
|
|
text = "landscape",
|
2012-06-12 16:14:23 +00:00
|
|
|
callback = function()
|
2012-11-26 07:30:24 +00:00
|
|
|
self.ui:handleEvent(
|
2013-02-03 05:13:46 +00:00
|
|
|
Event:new("SetScreenMode", "landscape"))
|
2012-06-12 16:14:23 +00:00
|
|
|
end
|
2012-06-11 05:46:19 +00:00
|
|
|
},
|
|
|
|
{
|
2013-02-02 06:36:29 +00:00
|
|
|
text = "portrait",
|
2012-06-12 16:14:23 +00:00
|
|
|
callback = function()
|
2012-11-26 07:30:24 +00:00
|
|
|
self.ui:handleEvent(
|
2013-02-03 05:13:46 +00:00
|
|
|
Event:new("SetScreenMode", "portrait"))
|
2012-06-12 16:14:23 +00:00
|
|
|
end
|
2012-06-11 05:46:19 +00:00
|
|
|
},
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
2012-12-15 01:20:12 +00:00
|
|
|
for _, widget in pairs(self.registered_widgets) do
|
|
|
|
widget:addToMainMenu(self.item_table)
|
|
|
|
end
|
|
|
|
|
|
|
|
table.insert(self.item_table, {
|
2013-02-02 19:41:35 +00:00
|
|
|
text = "Return to file manager",
|
2012-11-11 07:24:11 +00:00
|
|
|
callback = function()
|
2013-02-10 16:09:33 +00:00
|
|
|
self.ui:handleEvent(Event:new("RestoreScreenMode",
|
|
|
|
G_reader_settings:readSetting("screen_mode") or "portrait"))
|
2012-12-08 17:25:32 +00:00
|
|
|
UIManager:close(self.menu_container)
|
2012-11-11 07:24:11 +00:00
|
|
|
self.ui:onClose()
|
|
|
|
end
|
2012-06-10 18:14:29 +00:00
|
|
|
})
|
2012-12-15 01:20:12 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
function ReaderMenu:onShowMenu()
|
|
|
|
if #self.item_table == 0 then
|
|
|
|
self:setUpdateItemTable()
|
|
|
|
end
|
2012-06-10 18:14:29 +00:00
|
|
|
|
|
|
|
local main_menu = Menu:new{
|
|
|
|
title = "Document menu",
|
2012-12-15 01:20:12 +00:00
|
|
|
item_table = self.item_table,
|
2012-12-08 17:25:32 +00:00
|
|
|
width = Screen:getWidth() - 100,
|
2012-06-10 18:14:29 +00:00
|
|
|
}
|
2012-06-12 16:14:23 +00:00
|
|
|
|
2012-12-08 17:25:32 +00:00
|
|
|
local menu_container = CenterContainer:new{
|
2013-01-01 01:01:38 +00:00
|
|
|
ignore = "height",
|
2012-12-08 17:25:32 +00:00
|
|
|
dimen = Screen:getSize(),
|
2012-12-16 08:43:33 +00:00
|
|
|
main_menu,
|
2012-12-08 17:25:32 +00:00
|
|
|
}
|
|
|
|
main_menu.close_callback = function ()
|
|
|
|
UIManager:close(menu_container)
|
|
|
|
end
|
|
|
|
-- maintain a reference to menu_container
|
|
|
|
self.menu_container = menu_container
|
|
|
|
|
|
|
|
UIManager:show(menu_container)
|
2012-06-10 18:14:29 +00:00
|
|
|
|
|
|
|
return true
|
|
|
|
end
|
2012-11-11 07:24:11 +00:00
|
|
|
|
|
|
|
function ReaderMenu:onTapShowMenu()
|
|
|
|
self:onShowMenu()
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
2012-12-08 17:25:32 +00:00
|
|
|
function ReaderMenu:onSetDimensions(dimen)
|
2013-02-02 06:36:29 +00:00
|
|
|
-- update listening according to new screen dimen
|
|
|
|
if Device:isTouchDevice() then
|
|
|
|
self:initGesListener()
|
|
|
|
end
|
2012-12-15 01:20:12 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
function ReaderMenu:onCloseDocument()
|
|
|
|
end
|
|
|
|
|
2012-12-15 01:30:48 +00:00
|
|
|
function ReaderMenu:registerToMainMenu(widget)
|
2012-12-15 01:20:12 +00:00
|
|
|
table.insert(self.registered_widgets, widget)
|
2012-12-08 17:25:32 +00:00
|
|
|
end
|
|
|
|
|