|
|
|
@ -2,6 +2,7 @@ require "font"
|
|
|
|
|
require "unireader"
|
|
|
|
|
require "inputbox"
|
|
|
|
|
require "selectmenu"
|
|
|
|
|
require "dialog"
|
|
|
|
|
|
|
|
|
|
CREReader = UniReader:new{
|
|
|
|
|
pos = nil,
|
|
|
|
@ -210,7 +211,6 @@ end
|
|
|
|
|
|
|
|
|
|
function CREReader:gotoTocEntry(entry)
|
|
|
|
|
self:goto(entry.xpointer, nil, "xpointer")
|
|
|
|
|
--self:redrawCurrentPage()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function CREReader:nextView()
|
|
|
|
@ -244,8 +244,7 @@ function CREReader:showJumpHist()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if #menu_items == 0 then
|
|
|
|
|
showInfoMsgWithDelay(
|
|
|
|
|
"No jump history found.", 2000, 1)
|
|
|
|
|
InfoMessage:inform("No jump history found ", 2000, 1, MSG_WARN)
|
|
|
|
|
else
|
|
|
|
|
-- if cur points to head, draw entry for current page
|
|
|
|
|
if self.jump_history.cur > #self.jump_history then
|
|
|
|
@ -308,8 +307,7 @@ function CREReader:showBookMarks()
|
|
|
|
|
.." "..v.notes.." @ "..v.datetime)
|
|
|
|
|
end
|
|
|
|
|
if #menu_items == 0 then
|
|
|
|
|
showInfoMsgWithDelay(
|
|
|
|
|
"No bookmark found.", 2000, 1)
|
|
|
|
|
InfoMessage:inform("No bookmark found ", 2000, 1, MSG_WARN)
|
|
|
|
|
else
|
|
|
|
|
local bkmk_menu = SelectMenu:new{
|
|
|
|
|
menu_title = "Bookmarks",
|
|
|
|
@ -351,7 +349,7 @@ function CREReader:gotoPrevNextTocEntry(direction)
|
|
|
|
|
self:fillToc()
|
|
|
|
|
end
|
|
|
|
|
if #self.toc == 0 then
|
|
|
|
|
showInfoMsgWithDelay("No Table of Contents", 1500, 1)
|
|
|
|
|
InfoMessage:inform("No Table of Contents ", 1500, 1, MSG_WARN)
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
-- search for current TOC-entry
|
|
|
|
@ -457,7 +455,6 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
self.commands:add(KEY_K, nil, "K",
|
|
|
|
|
"rotate screen counterclockwise",
|
|
|
|
|
function(self)
|
|
|
|
|
InfoMessage:show("Rotating counterclockwise ", 0)
|
|
|
|
|
local prev_xpointer = self.doc:getXPointer()
|
|
|
|
|
Screen:screenRotate("anticlockwise")
|
|
|
|
|
G_width, G_height = fb:getSize()
|
|
|
|
@ -469,7 +466,6 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
self.commands:add(KEY_J, nil, "J",
|
|
|
|
|
"rotate screen clockwise",
|
|
|
|
|
function(self)
|
|
|
|
|
InfoMessage:show("Rotating clockwise ", 0)
|
|
|
|
|
local prev_xpointer = self.doc:getXPointer()
|
|
|
|
|
Screen:screenRotate("clockwise")
|
|
|
|
|
G_width, G_height = fb:getSize()
|
|
|
|
@ -483,10 +479,8 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
"scroll to previous/next chapter",
|
|
|
|
|
function(self)
|
|
|
|
|
if keydef.keycode == KEY_FW_UP then
|
|
|
|
|
--InfoMessage:show("Jumping to previous chapter ", 0)
|
|
|
|
|
self:gotoPrevNextTocEntry(-1)
|
|
|
|
|
else
|
|
|
|
|
--InfoMessage:show("Jumping to next chapter ", 0)
|
|
|
|
|
self:gotoPrevNextTocEntry(1)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@ -498,10 +492,8 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
"scroll "..scrollpages.." pages backwards/forward",
|
|
|
|
|
function(self)
|
|
|
|
|
if keydef.keycode == KEY_FW_LEFT then
|
|
|
|
|
--InfoMessage:show("Scrolling "..scrollpages.." pages backwards ", 0)
|
|
|
|
|
self:goto(math.max(0, self.pos - scrollpages*G_height))
|
|
|
|
|
else
|
|
|
|
|
--InfoMessage:show("Scrolling "..scrollpages.." pages forward ", 0)
|
|
|
|
|
self:goto(math.min(self.pos + scrollpages*G_height, self.doc:getFullHeight()-G_height))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@ -512,14 +504,13 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
"increase/decrease font size",
|
|
|
|
|
function(self)
|
|
|
|
|
local delta = 1
|
|
|
|
|
local change = "Increase"
|
|
|
|
|
local change = "Increasing"
|
|
|
|
|
if keydef.keycode == KEY_PGBCK or keydef.keycode == KEY_LPGBCK then
|
|
|
|
|
delta = -1
|
|
|
|
|
change = "Decrease"
|
|
|
|
|
delta = -1
|
|
|
|
|
change = "Decreasing"
|
|
|
|
|
end
|
|
|
|
|
self.font_zoom = self.font_zoom + delta
|
|
|
|
|
InfoMessage:show(change.." font size to "..self.font_zoom, 0)
|
|
|
|
|
-- NuPogodi, 18.08.12: XPointer-method to restore position
|
|
|
|
|
InfoMessage:inform(change.." font size to "..self.font_zoom..". ", nil, 1, MSG_AUX)
|
|
|
|
|
Debug("font zoomed to", self.font_zoom)
|
|
|
|
|
local prev_xpointer = self.doc:getXPointer()
|
|
|
|
|
self.doc:zoomFont(delta)
|
|
|
|
@ -538,9 +529,8 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
self.line_space_percent = self.line_space_percent + 10
|
|
|
|
|
self.line_space_percent = math.min(self.line_space_percent, 200)
|
|
|
|
|
end
|
|
|
|
|
InfoMessage:show("Line spacing "..self.line_space_percent.."%", 0)
|
|
|
|
|
InfoMessage:inform("Changing line space to "..self.line_space_percent.."% ", nil, 1, MSG_AUX)
|
|
|
|
|
Debug("line spacing set to", self.line_space_percent)
|
|
|
|
|
-- NuPogodi, 18.08.12: XPointer-method to restore position
|
|
|
|
|
local prev_xpointer = self.doc:getXPointer()
|
|
|
|
|
self.doc:setDefaultInterlineSpace(self.line_space_percent)
|
|
|
|
|
self:goto(prev_xpointer, nil, "xpointer")
|
|
|
|
@ -550,8 +540,8 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
for i=1,10 do
|
|
|
|
|
numeric_keydefs[i]=Keydef:new(KEY_1+i-1, nil, tostring(i%10))
|
|
|
|
|
end
|
|
|
|
|
self.commands:addGroup("[1..0]", numeric_keydefs,
|
|
|
|
|
"jump to <key>*10% of document",
|
|
|
|
|
self.commands:addGroup("[1, 2 .. 9, 0]",numeric_keydefs,
|
|
|
|
|
"jump to 0%, 10% .. 90%, 100% of document",
|
|
|
|
|
function(self, keydef)
|
|
|
|
|
Debug('jump to position: '..
|
|
|
|
|
math.floor(self.doc:getFullHeight()*(keydef.keycode-KEY_1)/9)..
|
|
|
|
@ -578,10 +568,6 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
self.commands:add({KEY_F, KEY_AA}, nil, "F",
|
|
|
|
|
"change document font",
|
|
|
|
|
function(self)
|
|
|
|
|
--[[ NuPogodi, 18.08.12:
|
|
|
|
|
1. removed excessive saving [saveCurrentBB()] and restoring [restoreFromSavedBB()]
|
|
|
|
|
the screen, respectively, before & after calling 'fonts_menu'
|
|
|
|
|
2. used XPointer-based method to restore position after document rescaling ]]
|
|
|
|
|
local face_list = cre.getFontFaces()
|
|
|
|
|
-- define the current font in face_list
|
|
|
|
|
local item_no = 0
|
|
|
|
@ -597,7 +583,7 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
local prev_xpointer = self.doc:getXPointer()
|
|
|
|
|
if item_no then
|
|
|
|
|
Debug(face_list[item_no])
|
|
|
|
|
InfoMessage:show("Redrawing with "..face_list[item_no], 0)
|
|
|
|
|
InfoMessage:inform("Redrawing with "..face_list[item_no].." ", nil, 1, MSG_AUX)
|
|
|
|
|
self.doc:setFontFace(face_list[item_no])
|
|
|
|
|
self.font_face = face_list[item_no]
|
|
|
|
|
end
|
|
|
|
@ -609,16 +595,15 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
function(self)
|
|
|
|
|
self.default_font = self.font_face
|
|
|
|
|
G_reader_settings:saveSetting("cre_font", self.font_face)
|
|
|
|
|
showInfoMsgWithDelay("Default document font set", 2000, 1)
|
|
|
|
|
InfoMessage:inform("Default document font set ", 2000, 1, MSG_WARN,
|
|
|
|
|
"Default document font is saved")
|
|
|
|
|
end
|
|
|
|
|
)
|
|
|
|
|
self.commands:add(KEY_F, MOD_ALT, "F",
|
|
|
|
|
--[[ NuPogodi, 18.08.12: 1. Changed a description to be shown in helppage
|
|
|
|
|
2. Added message to user; 3. Improved a method to restore position ]]
|
|
|
|
|
"toggle font-weight: bold <> normal",
|
|
|
|
|
function(self)
|
|
|
|
|
|
|
|
|
|
InfoMessage:show("Changing font-weight ", 0)
|
|
|
|
|
InfoMessage:inform("Changing font-weight...", nil, 1, MSG_AUX)
|
|
|
|
|
local prev_xpointer = self.doc:getXPointer()
|
|
|
|
|
self.doc:toggleFontBolder()
|
|
|
|
|
self:goto(prev_xpointer, nil, "xpointer")
|
|
|
|
@ -629,9 +614,9 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
function(self)
|
|
|
|
|
ok = self:addBookmark(self.doc:getXPointer())
|
|
|
|
|
if not ok then
|
|
|
|
|
showInfoMsgWithDelay("Page already marked!", 2000, 1)
|
|
|
|
|
InfoMessage:inform("Page already marked ", 1500, 1, MSG_WARN)
|
|
|
|
|
else
|
|
|
|
|
showInfoMsgWithDelay("Page marked.", 2000, 1)
|
|
|
|
|
InfoMessage:inform("Page marked ", 1500, 1, MSG_WARN)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
)
|
|
|
|
@ -651,7 +636,7 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
self.jump_history.cur = prev_jump_no
|
|
|
|
|
self:goto(self.jump_history[prev_jump_no].page, true, "xpointer")
|
|
|
|
|
else
|
|
|
|
|
showInfoMsgWithDelay("Already first jump!", 2000, 1)
|
|
|
|
|
InfoMessage:inform("Already first jump ", 2000, 1, MSG_WARN)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
)
|
|
|
|
@ -663,7 +648,7 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
self.jump_history.cur = next_jump_no
|
|
|
|
|
self:goto(self.jump_history[next_jump_no].page, true, "xpointer")
|
|
|
|
|
else
|
|
|
|
|
showInfoMsgWithDelay("Already last jump!", 2000, 1)
|
|
|
|
|
InfoMessage:inform("Already last jump ", 2000, 1, MSG_WARN)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
)
|
|
|
|
@ -677,7 +662,7 @@ function CREReader:adjustCreReaderCommands()
|
|
|
|
|
end
|
|
|
|
|
cre.setGammaIndex(self.gamma_index+delta)
|
|
|
|
|
self.gamma_index = cre.getGammaIndex()
|
|
|
|
|
InfoMessage:show("Redraw with gamma = "..self.gamma_index, 1) -- no delay
|
|
|
|
|
InfoMessage:inform("Changing gamma to "..self.gamma_index..". ", nil, 1, MSG_AUX)
|
|
|
|
|
self:redrawCurrentPage()
|
|
|
|
|
end
|
|
|
|
|
)
|
|
|
|
@ -722,12 +707,11 @@ function CREReader:searchHighLight(search)
|
|
|
|
|
if found then
|
|
|
|
|
self.pos = pos -- first metch position
|
|
|
|
|
self:redrawCurrentPage()
|
|
|
|
|
showInfoMsgWithDelay( found.." hits '"..search.."' pos "..pos, 2000, 1)
|
|
|
|
|
InfoMessage:inform( found.." hits '"..search.."' pos "..pos, 2000, 1, MSG_WARN)
|
|
|
|
|
else
|
|
|
|
|
showInfoMsgWithDelay( "'"..search.."' not found in document", 2000, 1)
|
|
|
|
|
InfoMessage:inform( "'"..search.."' not found in document ", 2000, 1, MSG_WARN)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
self.last_search.search = search
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|