|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
local Blitbuffer = require("ffi/blitbuffer")
|
|
|
|
|
local BottomContainer = require("ui/widget/container/bottomcontainer")
|
|
|
|
|
local CenterContainer = require("ui/widget/container/centercontainer")
|
|
|
|
|
local Device = require("device")
|
|
|
|
|
local Event = require("ui/event")
|
|
|
|
|
local Font = require("ui/font")
|
|
|
|
@ -7,6 +8,7 @@ local FrameContainer = require("ui/widget/container/framecontainer")
|
|
|
|
|
local Geom = require("ui/geometry")
|
|
|
|
|
local HorizontalGroup = require("ui/widget/horizontalgroup")
|
|
|
|
|
local HorizontalSpan = require("ui/widget/horizontalspan")
|
|
|
|
|
local LeftContainer = require("ui/widget/container/leftcontainer")
|
|
|
|
|
local ProgressWidget = require("ui/widget/progresswidget")
|
|
|
|
|
local RightContainer = require("ui/widget/container/rightcontainer")
|
|
|
|
|
local TextWidget = require("ui/widget/textwidget")
|
|
|
|
@ -201,15 +203,7 @@ function ReaderFooter:init()
|
|
|
|
|
padding = 0,
|
|
|
|
|
padding_bottom = self.bottom_padding,
|
|
|
|
|
}
|
|
|
|
|
self.footer_container = BottomContainer:new{
|
|
|
|
|
dimen = Geom:new{ w = 0, h = self.height*2 },
|
|
|
|
|
self.footer_content,
|
|
|
|
|
}
|
|
|
|
|
self.footer_positioner = BottomContainer:new{
|
|
|
|
|
dimen = Geom:new{},
|
|
|
|
|
self.footer_container,
|
|
|
|
|
}
|
|
|
|
|
self[1] = self.footer_positioner
|
|
|
|
|
self:updateFooterContainer()
|
|
|
|
|
|
|
|
|
|
self.mode = G_reader_settings:readSetting("reader_footer_mode") or self.mode
|
|
|
|
|
if self.has_no_mode and self.settings.disable_progress_bar then
|
|
|
|
@ -228,6 +222,30 @@ function ReaderFooter:init()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ReaderFooter:updateFooterContainer()
|
|
|
|
|
if self.settings.align == "left" then
|
|
|
|
|
self.footer_container = LeftContainer:new{
|
|
|
|
|
dimen = Geom:new{ w = 0, h = self.height },
|
|
|
|
|
self.footer_content,
|
|
|
|
|
}
|
|
|
|
|
elseif self.settings.align == "right" then
|
|
|
|
|
self.footer_container = RightContainer:new{
|
|
|
|
|
dimen = Geom:new{ w = 0, h = self.height },
|
|
|
|
|
self.footer_content,
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
self.footer_container = CenterContainer:new{
|
|
|
|
|
dimen = Geom:new{ w = 0, h = self.height },
|
|
|
|
|
self.footer_content,
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
self.footer_positioner = BottomContainer:new{
|
|
|
|
|
dimen = Geom:new{},
|
|
|
|
|
self.footer_container,
|
|
|
|
|
}
|
|
|
|
|
self[1] = self.footer_positioner
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function ReaderFooter:setupAutoRefreshTime()
|
|
|
|
|
if not self.autoRefreshTime then
|
|
|
|
|
self.autoRefreshTime = function()
|
|
|
|
@ -272,11 +290,11 @@ function ReaderFooter:setupTouchZones()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- call this method whenever the screen size changes
|
|
|
|
|
function ReaderFooter:resetLayout()
|
|
|
|
|
function ReaderFooter:resetLayout(force_reset)
|
|
|
|
|
local new_screen_width = Screen:getWidth()
|
|
|
|
|
local new_screen_height = Screen:getHeight()
|
|
|
|
|
if new_screen_width == self._saved_screen_width
|
|
|
|
|
and new_screen_height == self._saved_screen_height then return end
|
|
|
|
|
and new_screen_height == self._saved_screen_height and not force_reset then return end
|
|
|
|
|
|
|
|
|
|
if self.settings.disable_progress_bar then
|
|
|
|
|
self.progress_bar.width = 0
|
|
|
|
@ -492,6 +510,50 @@ function ReaderFooter:addToMainMenu(menu_items)
|
|
|
|
|
if Device:isAndroid() then
|
|
|
|
|
table.insert(sub_items, getMinibarOption("wifi_status"))
|
|
|
|
|
end
|
|
|
|
|
table.insert(sub_items, {
|
|
|
|
|
text = _("Alignment"),
|
|
|
|
|
sub_item_table = {
|
|
|
|
|
{
|
|
|
|
|
text = _("Center"),
|
|
|
|
|
checked_func = function()
|
|
|
|
|
return self.settings.align == "center" or self.settings.align == nil
|
|
|
|
|
end,
|
|
|
|
|
callback = function()
|
|
|
|
|
self.settings.align = "center"
|
|
|
|
|
self:updateFooterContainer()
|
|
|
|
|
self:resetLayout(true)
|
|
|
|
|
self:updateFooter()
|
|
|
|
|
UIManager:setDirty(nil, "ui")
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text = _("Left"),
|
|
|
|
|
checked_func = function()
|
|
|
|
|
return self.settings.align == "left"
|
|
|
|
|
end,
|
|
|
|
|
callback = function()
|
|
|
|
|
self.settings.align = "left"
|
|
|
|
|
self:updateFooterContainer()
|
|
|
|
|
self:resetLayout(true)
|
|
|
|
|
self:updateFooter()
|
|
|
|
|
UIManager:setDirty(nil, "ui")
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text = _("Right"),
|
|
|
|
|
checked_func = function()
|
|
|
|
|
return self.settings.align == "right"
|
|
|
|
|
end,
|
|
|
|
|
callback = function()
|
|
|
|
|
self.settings.align = "right"
|
|
|
|
|
self:updateFooterContainer()
|
|
|
|
|
self:resetLayout(true)
|
|
|
|
|
self:updateFooter()
|
|
|
|
|
UIManager:setDirty(nil, "ui")
|
|
|
|
|
end,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- this method will be updated at runtime based on user setting
|
|
|
|
|