mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
add readerconfig to document supported by crengine
* now font size can be changed by readerconfig
This commit is contained in:
@@ -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)
|
||||
|
||||
21
frontend/ui/creoptions.lua
Normal file
21
frontend/ui/creoptions.lua
Normal file
@@ -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",
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user