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 -- temproal range limits the gesture emitting rate
rate = nil, rate = nil,
-- span limits of this gesture -- span limits of this gesture
span = nil, scale = nil,
} }
function GestureRange:new(o) function GestureRange:new(o)
@ -34,8 +34,8 @@ function GestureRange:match(gs)
return false return false
end end
end end
if self.span then if self.scale then
if self.span[1] > gs.span or self.span[2] < gs.span then if self.scale[1] > gs.span or self.scale[2] < gs.span then
return false return false
end end
end end
@ -244,7 +244,7 @@ function GestureDetector:tapState(tev)
span = pos0:distance(pos1), span = pos0:distance(pos1),
time = tev.timev, time = tev.timev,
} }
DEBUG("two-finger tap detected") DEBUG("two-finger tap detected with span", pos0:distance(pos1))
self:clearState(0) self:clearState(0)
self:clearState(1) self:clearState(1)
return ges_ev 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/readercropping"
require "ui/reader/readerkopt" require "ui/reader/readerkopt"
require "ui/reader/readercopt" require "ui/reader/readercopt"
require "ui/reader/readerscreenshot"
--[[ --[[
This is an abstraction for a reader interface This is an abstraction for a reader interface
@ -90,6 +91,13 @@ function ReaderUI:init()
ui = self ui = self
} }
table.insert(self, reader_bm) 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 if self.document.info.has_pages then
-- for page specific controller -- for page specific controller

Loading…
Cancel
Save