use pinch/spread gestures to set zoom mode

pull/21/head
chrox 11 years ago
parent d262ffecab
commit a105d463a8

@ -52,6 +52,30 @@ function ReaderZooming:init()
},
}
end
if Device:isTouchDevice() then
self.ges_events = {
Spread = {
GestureRange:new{
ges = "spread",
range = Geom:new{
x = 0, y = 0,
w = Screen:getWidth(),
h = Screen:getHeight(),
}
}
},
Pinch = {
GestureRange:new{
ges = "pinch",
range = Geom:new{
x = 0, y = 0,
w = Screen:getWidth(),
h = Screen:getHeight(),
}
}
},
}
end
self.ui.menu:registerToMainMenu(self)
end
@ -70,6 +94,28 @@ function ReaderZooming:onCloseDocument()
self.ui.doc_settings:saveSetting("zoom_mode", self.zoom_mode)
end
function ReaderZooming:onSpread(arg, ges)
if ges.direction == "horizontal" then
self:setZoomMode("contentwidth")
elseif ges.direction == "vertical" then
self:setZoomMode("contentheight")
elseif ges.direction == "diagonal" then
self:setZoomMode("content")
end
return true
end
function ReaderZooming:onPinch(arg, ges)
if ges.direction == "diagonal" then
self:setZoomMode("page")
elseif ges.direction == "horizontal" then
self:setZoomMode("pagewidth")
elseif ges.direction == "vertical" then
self:setZoomMode("pageheight")
end
return true
end
function ReaderZooming:onSetDimensions(dimensions)
-- we were resized
self.dimen = dimensions
@ -174,11 +220,15 @@ end
function ReaderZooming:genSetZoomModeCallBack(mode)
return function()
self.ui:handleEvent(Event:new("SetZoomMode", mode))
self.ui:handleEvent(Event:new("InitScrollPageStates"))
self:setZoomMode(mode)
end
end
function ReaderZooming:setZoomMode(mode)
self.ui:handleEvent(Event:new("SetZoomMode", mode))
self.ui:handleEvent(Event:new("InitScrollPageStates"))
end
function ReaderZooming:addToMainMenu(tab_item_table)
if self.ui.document.info.has_pages then
table.insert(tab_item_table.typeset, {

Loading…
Cancel
Save