screenshot with finger touch at the two corners of the diagonal

pull/2/merge
chrox 11 years ago
parent d879603352
commit 5c2d9bb1ad

@ -7,7 +7,7 @@ GestureRange = {
-- temproal range limits the gesture emitting rate
rate = nil,
-- span limits of this gesture
span = nil,
scale = nil,
}
function GestureRange:new(o)
@ -34,8 +34,8 @@ function GestureRange:match(gs)
return false
end
end
if self.span then
if self.span[1] > gs.span or self.span[2] < gs.span then
if self.scale then
if self.scale[1] > gs.span or self.scale[2] < gs.span then
return false
end
end
@ -244,7 +244,7 @@ function GestureDetector:tapState(tev)
span = pos0:distance(pos1),
time = tev.timev,
}
DEBUG("two-finger tap detected")
DEBUG("two-finger tap detected with span", pos0:distance(pos1))
self:clearState(0)
self:clearState(1)
return ges_ev

@ -0,0 +1,25 @@
ReaderScreenshot = InputContainer:new{}
function ReaderScreenshot:init()
local diagonal = math.sqrt(
math.pow(Screen:getWidth(), 2) +
math.pow(Screen:getHeight(), 2)
)
self.ges_events = {
Screenshot = {
GestureRange:new{
ges = "two_finger_tap",
scale = {diagonal - 80*Screen:getDPI()/167, diagonal},
rate = 1.0,
}
},
}
end
function ReaderScreenshot:onScreenshot()
os.execute("screenshot")
UIManager:setDirty(self.view.dialog, "full")
return true
end

@ -14,6 +14,7 @@ require "ui/reader/readerconfig"
require "ui/reader/readercropping"
require "ui/reader/readerkopt"
require "ui/reader/readercopt"
require "ui/reader/readerscreenshot"
--[[
This is an abstraction for a reader interface
@ -90,6 +91,13 @@ function ReaderUI:init()
ui = self
}
table.insert(self, reader_bm)
-- screenshot controller
local reader_ss = ReaderScreenshot:new{
dialog = self.dialog,
view = self[1],
ui = self
}
table.insert(self, reader_ss)
if self.document.info.has_pages then
-- for page specific controller

Loading…
Cancel
Save