Pinch gesture for changing font size (#2768)

* Pinch gesture for changing font size
pull/2799/head
Robert 7 years ago committed by Qingping Hou
parent d6c81f5097
commit 16192d2354

@ -1,12 +1,12 @@
local InputContainer = require("ui/widget/container/inputcontainer")
local CenterContainer = require("ui/widget/container/centercontainer")
local Notification = require("ui/widget/notification")
local MultiConfirmBox = require("ui/widget/multiconfirmbox")
local Menu = require("ui/widget/menu")
local Device = require("device")
local Screen = require("device").screen
local Input = require("device").input
local Event = require("ui/event")
local Input = Device.input
local InputContainer = require("ui/widget/container/inputcontainer")
local Menu = require("ui/widget/menu")
local MultiConfirmBox = require("ui/widget/multiconfirmbox")
local Notification = require("ui/widget/notification")
local Screen = require("device").screen
local UIManager = require("ui/uimanager")
local T = require("ffi/util").template
local _ = require("gettext")
@ -65,6 +65,33 @@ function ReaderFont:init()
self.ui.menu:registerToMainMenu(self)
end
function ReaderFont:onReaderReady()
self:setupTouchZones()
end
function ReaderFont:setupTouchZones()
if Device:isTouchDevice() then
self.ui:registerTouchZones({
{
id = "id_spread",
ges = "spread",
screen_zone = {
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
},
handler = function() return self:onSpread() end
},
{
id = "id_pinch",
ges = "pinch",
screen_zone = {
ratio_x = 0, ratio_y = 0, ratio_w = 1, ratio_h = 1,
},
handler = function() return self:onPinch() end
},
})
end
end
function ReaderFont:onSetDimensions(dimen)
self.dimen = dimen
end
@ -145,12 +172,12 @@ function ReaderFont:onSetFontSize(new_size)
if new_size < 12 then new_size = 12 end
self.font_size = new_size
self.ui.document:setFontSize(Screen:scaleBySize(new_size))
self.ui:handleEvent(Event:new("UpdatePos"))
UIManager:show(Notification:new{
text = T( _("Font size set to %1."), self.font_size),
timeout = 1,
})
self.ui.document:setFontSize(Screen:scaleBySize(new_size))
self.ui:handleEvent(Event:new("UpdatePos"))
return true
end
@ -231,4 +258,22 @@ function ReaderFont:addToMainMenu(menu_items)
}
end
function ReaderFont:onPinch()
local info = Notification:new{text = _("Decreasing font size…")}
UIManager:show(info)
UIManager:forceRePaint()
self:onChangeSize("decrease")
UIManager:close(info)
return true
end
function ReaderFont:onSpread()
local info = Notification:new{text = _("Increasing font size…")}
UIManager:show(info)
UIManager:forceRePaint()
self:onChangeSize("increase")
UIManager:close(info)
return true
end
return ReaderFont

Loading…
Cancel
Save