|
|
@ -109,27 +109,33 @@ function ReaderZooming:onPageUpdate(new_page_no)
|
|
|
|
self:setZoom()
|
|
|
|
self:setZoom()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function ReaderZooming:setZoom()
|
|
|
|
function ReaderZooming:onHintPage()
|
|
|
|
-- nothing to do in free zoom mode
|
|
|
|
if self.current_page < self.ui.document.info.number_of_pages then
|
|
|
|
if self.zoom_mode == "free" then
|
|
|
|
self.ui.document:hintPage(
|
|
|
|
return
|
|
|
|
self.view.state.page + 1,
|
|
|
|
end
|
|
|
|
self:getZoom(self.view.state.page + 1),
|
|
|
|
if not self.dimen then
|
|
|
|
self.view.state.rotation,
|
|
|
|
self.dimen = self.ui.dimen
|
|
|
|
self.view.state.gamma,
|
|
|
|
|
|
|
|
self.view.render_mode)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
return true
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function ReaderZooming:getZoom(pageno)
|
|
|
|
-- check if we're in bbox mode and work on bbox if that's the case
|
|
|
|
-- check if we're in bbox mode and work on bbox if that's the case
|
|
|
|
|
|
|
|
local zoom = nil
|
|
|
|
local page_size = {}
|
|
|
|
local page_size = {}
|
|
|
|
if self.zoom_mode == "content"
|
|
|
|
if self.zoom_mode == "content"
|
|
|
|
or self.zoom_mode == "contentwidth"
|
|
|
|
or self.zoom_mode == "contentwidth"
|
|
|
|
or self.zoom_mode == "contentheight" then
|
|
|
|
or self.zoom_mode == "contentheight" then
|
|
|
|
ubbox_dimen = self.ui.document:getUsedBBoxDimensions(self.current_page, 1)
|
|
|
|
local ubbox_dimen = self.ui.document:getUsedBBoxDimensions(pageno, 1)
|
|
|
|
--self.view:handleEvent(Event:new("BBoxUpdate", page_size))
|
|
|
|
--self.view:handleEvent(Event:new("BBoxUpdate", page_size))
|
|
|
|
self.view:onBBoxUpdate(ubbox_dimen)
|
|
|
|
self.view:onBBoxUpdate(ubbox_dimen)
|
|
|
|
page_size = ubbox_dimen
|
|
|
|
page_size = ubbox_dimen
|
|
|
|
else
|
|
|
|
else
|
|
|
|
-- otherwise, operate on full page
|
|
|
|
-- otherwise, operate on full page
|
|
|
|
self.view:onBBoxUpdate(nil)
|
|
|
|
self.view:onBBoxUpdate(nil)
|
|
|
|
page_size = self.ui.document:getNativePageDimensions(self.current_page)
|
|
|
|
page_size = self.ui.document:getNativePageDimensions(pageno)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
-- calculate zoom value:
|
|
|
|
-- calculate zoom value:
|
|
|
|
local zoom_w = self.dimen.w / page_size.w
|
|
|
|
local zoom_w = self.dimen.w / page_size.w
|
|
|
@ -141,15 +147,27 @@ function ReaderZooming:setZoom()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if self.zoom_mode == "content" or self.zoom_mode == "page" then
|
|
|
|
if self.zoom_mode == "content" or self.zoom_mode == "page" then
|
|
|
|
if zoom_w < zoom_h then
|
|
|
|
if zoom_w < zoom_h then
|
|
|
|
self.zoom = zoom_w
|
|
|
|
zoom = zoom_w
|
|
|
|
else
|
|
|
|
else
|
|
|
|
self.zoom = zoom_h
|
|
|
|
zoom = zoom_h
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elseif self.zoom_mode == "contentwidth" or self.zoom_mode == "pagewidth" then
|
|
|
|
elseif self.zoom_mode == "contentwidth" or self.zoom_mode == "pagewidth" then
|
|
|
|
self.zoom = zoom_w
|
|
|
|
zoom = zoom_w
|
|
|
|
elseif self.zoom_mode == "contentheight" or self.zoom_mode == "pageheight" then
|
|
|
|
elseif self.zoom_mode == "contentheight" or self.zoom_mode == "pageheight" then
|
|
|
|
self.zoom = zoom_h
|
|
|
|
zoom = zoom_h
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
return zoom
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function ReaderZooming:setZoom()
|
|
|
|
|
|
|
|
-- nothing to do in free zoom mode
|
|
|
|
|
|
|
|
if self.zoom_mode == "free" then
|
|
|
|
|
|
|
|
return
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
if not self.dimen then
|
|
|
|
|
|
|
|
self.dimen = self.ui.dimen
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
self.zoom = self:getZoom(self.current_page)
|
|
|
|
self.ui:handleEvent(Event:new("ZoomUpdate", self.zoom))
|
|
|
|
self.ui:handleEvent(Event:new("ZoomUpdate", self.zoom))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|