From fdc05b066cfedb133ca94fa1a17dc09710d8a0ff Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 6 Jan 2013 23:21:11 -0500 Subject: [PATCH] add readerconfig to document supported by crengine * now font size can be changed by readerconfig --- frontend/document/credocument.lua | 5 +++++ frontend/ui/creoptions.lua | 21 +++++++++++++++++++++ frontend/ui/reader/readerfont.lua | 11 +++++++++++ frontend/ui/reader/readerrolling.lua | 14 +++++++------- 4 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 frontend/ui/creoptions.lua diff --git a/frontend/document/credocument.lua b/frontend/document/credocument.lua index 44360990b..aa8e59060 100644 --- a/frontend/document/credocument.lua +++ b/frontend/document/credocument.lua @@ -1,4 +1,5 @@ require "ui/geometry" +require "ui/creoptions" CreDocument = Document:new{ -- this is defined in kpvcrlib/crengine/crengine/include/lvdocview.h @@ -10,6 +11,8 @@ CreDocument = Document:new{ line_space_percent = 100, default_font = "Droid Sans Fallback", + options = CreOptions, + configurable = Configurable, } -- NuPogodi, 20.05.12: inspect the zipfile content @@ -54,6 +57,7 @@ end function CreDocument:init() self:engineInit() + self.configurable:loadDefaults(self.options) local ok local file_type = string.lower(string.match(self.file, ".+%.([^.]+)")) @@ -83,6 +87,7 @@ function CreDocument:init() self.is_open = true self.info.has_pages = false self:_readMetadata() + self.info.configurable = true -- @TODO read line_space_percent from setting file 12.06 2012 (houqp) --self._document:setDefaultInterlineSpace(self.line_space_percent) diff --git a/frontend/ui/creoptions.lua b/frontend/ui/creoptions.lua new file mode 100644 index 000000000..b35020dc1 --- /dev/null +++ b/frontend/ui/creoptions.lua @@ -0,0 +1,21 @@ +CreOptions = { + prefix = 'copt', + default_options = { + }, + { + icon = "resources/icons/appbar.text.size.large.png", + options = { + { + name = "font_size", + item_text = {"Aa", "Aa", "Aa", "Aa", "Aa", "Aa", "Aa", "Aa"}, + item_align_center = 1.0, + spacing = Screen:getWidth()*0.03, + item_font_size = {18, 20, 22, 24, 29, 33, 39, 44}, + values = {18, 20, 22, 24, 29, 33, 39, 44}, + default_value = 1, + event = "SetFontSize", + }, + } + }, +} + diff --git a/frontend/ui/reader/readerfont.lua b/frontend/ui/reader/readerfont.lua index b4e228fb0..677e74d6f 100644 --- a/frontend/ui/reader/readerfont.lua +++ b/frontend/ui/reader/readerfont.lua @@ -110,6 +110,17 @@ function ReaderFont:onChangeSize(direction) return true end +function ReaderFont:onSetFontSize(new_size) + if new_size > 44 then new_size = 44 end + if new_size < 18 then new_size = 18 end + + self.font_size = new_size + self.ui.document:setFontSize(new_size) + self.ui:handleEvent(Event:new("UpdatePos")) + + return true +end + function ReaderFont:onChangeLineSpace(direction) if direction == "decrease" then self.line_space_percent = self.line_space_percent - 10 diff --git a/frontend/ui/reader/readerrolling.lua b/frontend/ui/reader/readerrolling.lua index 591e90cd9..781ae30bb 100644 --- a/frontend/ui/reader/readerrolling.lua +++ b/frontend/ui/reader/readerrolling.lua @@ -19,10 +19,10 @@ function ReaderRolling:init() GestureRange:new{ ges = "tap", range = Geom:new{ - x = Screen:getWidth()/2, - y = Screen:getHeight()/2, - w = Screen:getWidth(), - h = Screen:getHeight() + x = Screen:getWidth()/4, + y = Screen:getHeight()/4, + w = 3*Screen:getWidth()/4, + h = 5*Screen:getHeight()/8, } } }, @@ -31,9 +31,9 @@ function ReaderRolling:init() ges = "tap", range = Geom:new{ x = 0, - y = Screen:getHeight()/2, - w = Screen:getWidth()/2, - h = Screen:getHeight()/2, + y = Screen:getHeight()/4, + w = Screen:getWidth()/4, + h = 5*Screen:getHeight()/8, } } }