mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
@@ -130,7 +130,7 @@ function CreDocument:engineInit()
|
||||
if not engine_initilized then
|
||||
-- initialize cache
|
||||
cre.initCache(1024*1024*64)
|
||||
|
||||
|
||||
-- we need to initialize the CRE font list
|
||||
local fonts = Font:getFontList()
|
||||
for _k, _v in ipairs(fonts) do
|
||||
|
||||
@@ -47,7 +47,7 @@ end
|
||||
|
||||
ReaderConfig = InputContainer:new{
|
||||
dimen = Geom:new{
|
||||
x = 0,
|
||||
x = 0,
|
||||
y = 7*Screen:getHeight()/8,
|
||||
w = Screen:getWidth(),
|
||||
h = Screen:getHeight()/8,
|
||||
@@ -82,7 +82,7 @@ function ReaderConfig:onShowConfigMenu()
|
||||
ui = self.ui,
|
||||
configurable = self.configurable,
|
||||
config_options = self.options,
|
||||
close_callback = function()
|
||||
close_callback = function()
|
||||
self.ui:handleEvent(Event:new("RestoreHinting"))
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -32,26 +32,6 @@ function ReaderMenu:initGesListener()
|
||||
end
|
||||
|
||||
function ReaderMenu:setUpdateItemTable()
|
||||
table.insert(self.item_table, {
|
||||
text = "Screen rotate",
|
||||
sub_item_table = {
|
||||
{
|
||||
text = "landscape",
|
||||
callback = function()
|
||||
self.ui:handleEvent(
|
||||
Event:new("SetScreenMode", "landscape"))
|
||||
end
|
||||
},
|
||||
{
|
||||
text = "portrait",
|
||||
callback = function()
|
||||
self.ui:handleEvent(
|
||||
Event:new("SetScreenMode", "portrait"))
|
||||
end
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
for _, widget in pairs(self.registered_widgets) do
|
||||
widget:addToMainMenu(self.item_table)
|
||||
end
|
||||
@@ -59,7 +39,7 @@ function ReaderMenu:setUpdateItemTable()
|
||||
table.insert(self.item_table, {
|
||||
text = "Return to file manager",
|
||||
callback = function()
|
||||
self.ui:handleEvent(Event:new("RestoreScreenMode",
|
||||
self.ui:handleEvent(Event:new("RestoreScreenMode",
|
||||
G_reader_settings:readSetting("screen_mode") or "portrait"))
|
||||
UIManager:close(self.menu_container)
|
||||
self.ui:onClose()
|
||||
@@ -83,7 +63,7 @@ function ReaderMenu:onShowMenu()
|
||||
dimen = Screen:getSize(),
|
||||
main_menu,
|
||||
}
|
||||
main_menu.close_callback = function ()
|
||||
main_menu.close_callback = function ()
|
||||
UIManager:close(menu_container)
|
||||
end
|
||||
-- maintain a reference to menu_container
|
||||
|
||||
@@ -103,7 +103,7 @@ function MenuItem:init()
|
||||
local shortcut_icon_dimen = Geom:new()
|
||||
if self.shortcut then
|
||||
shortcut_icon_dimen.w = math.floor(self.dimen.h*4/5)
|
||||
shortcut_icon_dimen.h = shortcut_icon_dimen.w
|
||||
shortcut_icon_dimen.h = shortcut_icon_dimen.w
|
||||
end
|
||||
|
||||
self.detail = self.text
|
||||
@@ -132,7 +132,7 @@ function MenuItem:init()
|
||||
if Device:isTouchDevice() then
|
||||
else
|
||||
self.active_key_events.ShowItemDetail = {
|
||||
{"Right"}, doc = "show item detail"
|
||||
{"Right"}, doc = "show item detail"
|
||||
}
|
||||
end
|
||||
indicator = " >>"
|
||||
@@ -349,7 +349,7 @@ function Menu:init()
|
||||
if self.is_enable_shortcut then
|
||||
self.key_events.SelectByShortCut = { {self.item_shortcuts} }
|
||||
end
|
||||
self.key_events.Select = {
|
||||
self.key_events.Select = {
|
||||
{"Press"}, doc = "select current menu item"
|
||||
}
|
||||
end
|
||||
@@ -371,7 +371,7 @@ function Menu:updateItems(select_number)
|
||||
|
||||
for c = 1, self.perpage do
|
||||
-- calculate index in item_table
|
||||
local i = (self.page - 1) * self.perpage + c
|
||||
local i = (self.page - 1) * self.perpage + c
|
||||
if i <= #self.item_table then
|
||||
local item_shortcut = nil
|
||||
local shortcut_style = "square"
|
||||
@@ -401,7 +401,7 @@ function Menu:updateItems(select_number)
|
||||
table.insert(self.layout, {item_tmp})
|
||||
else
|
||||
-- item not enough to fill the whole page, break out of loop
|
||||
table.insert(self.item_group,
|
||||
table.insert(self.item_group,
|
||||
VerticalSpan:new{
|
||||
width = (self.item_dimen.h * (self.perpage - c + 1))
|
||||
})
|
||||
@@ -441,7 +441,7 @@ function Menu:onSelectByShortCut(_, keyevent)
|
||||
if self.item_table[(self.page-1)*self.perpage + k] then
|
||||
self:onMenuSelect(self.item_table[(self.page-1)*self.perpage + k])
|
||||
end
|
||||
break
|
||||
break
|
||||
end
|
||||
end
|
||||
return true
|
||||
@@ -471,7 +471,7 @@ override this function to process the item selected in a different manner
|
||||
]]--
|
||||
function Menu:onMenuSelect(item)
|
||||
if item.sub_item_table == nil then
|
||||
self.close_callback()
|
||||
self.close_callback()
|
||||
self:onMenuChoice(item)
|
||||
else
|
||||
-- save menu title for later resume
|
||||
|
||||
32
wtest.lua
32
wtest.lua
@@ -4,8 +4,10 @@ require "ui/uimanager"
|
||||
require "ui/widget/menu"
|
||||
require "ui/widget/infomessage"
|
||||
require "ui/widget/confirmbox"
|
||||
require "ui/widget/touchmenu"
|
||||
require "document/document"
|
||||
require "ui/readerui"
|
||||
require "dbg"
|
||||
|
||||
|
||||
-----------------------------------------------------
|
||||
@@ -174,15 +176,39 @@ reader = ReaderUI:new{
|
||||
readerwindow[1][1] = reader
|
||||
|
||||
|
||||
main_menu = TouchMenu:new{
|
||||
title = "Document menu",
|
||||
item_table = {
|
||||
{
|
||||
text = "item1",
|
||||
callback = function()
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = "item2",
|
||||
callback = function()
|
||||
end,
|
||||
},
|
||||
{
|
||||
text = "item3",
|
||||
callback = function()
|
||||
end,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- you may want to uncomment following show calls to see the changes
|
||||
-----------------------------------------------------------------------
|
||||
UIManager:show(Background:new())
|
||||
UIManager:show(TestGrid)
|
||||
UIManager:show(Clock:new())
|
||||
UIManager:show(M)
|
||||
UIManager:show(Quiz)
|
||||
UIManager:show(readerwindow)
|
||||
--UIManager:show(M)
|
||||
--UIManager:show(Quiz)
|
||||
--UIManager:show(readerwindow)
|
||||
UIManager:show(TouchMenu:new())
|
||||
UIManager:run()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user