You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koreader/frontend/ui/elements/screensaver_menu.lua

245 lines
9.5 KiB
Lua

local Screensaver = require("ui/screensaver")
local _ = require("gettext")
local function hasLastFile()
if G_reader_settings:hasNot("lastfile") then
return false
end
local lfs = require("libs/libkoreader-lfs")
local last_file = G_reader_settings:readSetting("lastfile")
return last_file and lfs.attributes(last_file, "mode") == "file"
end
return {
{
text = _("Use last book's cover as screensaver"),
enabled_func = hasLastFile,
checked_func = function()
return G_reader_settings:readSetting("screensaver_type") == "cover"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_type", "cover")
end
},
{
text = _("Use book status as screensaver"),
enabled_func = hasLastFile,
checked_func = function()
return G_reader_settings:readSetting("screensaver_type") == "bookstatus"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_type", "bookstatus")
end
},
{
text = _("Use random image from folder as screensaver"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_type") == "random_image"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_type", "random_image")
end
},
{
text = _("Use document cover as screensaver"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_type") == "document_cover"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_type", "document_cover")
end
},
{
text = _("Use image as screensaver"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_type") == "image_file"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_type", "image_file")
end
},
{
text = _("Use reading progress as screensaver"),
enabled_func = function() return Screensaver.getReaderProgress ~= nil and hasLastFile() end,
checked_func = function()
return G_reader_settings:readSetting("screensaver_type") == "readingprogress"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_type", "readingprogress")
end
},
{
text = _("Leave screen as it is"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_type") == "disable" or G_reader_settings:hasNot("screensaver_type")
end,
callback = function()
G_reader_settings:saveSetting("screensaver_type", "disable")
end,
separator = true,
},
{
text = _("Add message to screensaver"),
checked_func = function()
return G_reader_settings:isTrue("screensaver_show_message") or G_reader_settings:hasNot("screensaver_type")
end,
callback = function()
G_reader_settings:toggle("screensaver_show_message")
end,
separator = true,
},
{
text = _("Settings"),
sub_item_table = {
{
text = _("Screensaver folder"),
keep_menu_open = true,
callback = function()
Screensaver:chooseFolder()
end,
},
{
text = _("Screensaver image"),
keep_menu_open = true,
callback = function()
Screensaver:chooseFile()
end,
},
{
text = _("Document cover"),
keep_menu_open = true,
callback = function()
Screensaver:chooseFile(true)
end,
},
{
text = _("Screensaver message"),
keep_menu_open = true,
callback = function()
Screensaver:setMessage()
end,
},
{
text = _("Black background behind images"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_background") == "black" or G_reader_settings:hasNot("screensaver_background")
end,
callback = function()
G_reader_settings:saveSetting("screensaver_background", "black")
end,
},
{
text = _("White background behind message and images"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_background") == "white"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_background", "white")
end,
},
{
text = _("Leave background as-is behind message and images"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_background") == "none"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_background", "none")
end,
},
{
text = _("Stretch covers and images to fit screen"),
checked_func = function()
return G_reader_settings:isTrue("screensaver_stretch_images")
end,
callback = function()
G_reader_settings:toggle("screensaver_stretch_images")
end,
separator = true,
},
{
text = _("Screensaver message position"),
sub_item_table = {
{
text = _("Top"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_message_position") == "top"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_message_position", "top")
end
},
{
text = _("Middle"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_message_position") == "middle" or G_reader_settings:hasNot("screensaver_message_position")
end,
callback = function()
G_reader_settings:saveSetting("screensaver_message_position", "middle")
end
},
{
text = _("Bottom"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_message_position") == "bottom"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_message_position", "bottom")
end
},
}
},
{
text = _("Keep the screensaver on screen after wakeup"),
sub_item_table = {
{
text = _("Disable"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_delay") == "disable" or G_reader_settings:hasNot("screensaver_delay")
end,
callback = function()
G_reader_settings:saveSetting("screensaver_delay", "disable")
end
},
{
text = _("For 1 second"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_delay") == "1"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_delay", "1")
end
},
{
text = _("For 3 seconds"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_delay") == "3"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_delay", "3")
end
},
{
text = _("For 5 seconds"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_delay") == "5"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_delay", "5")
end
},
{
text = _("Until a tap"),
checked_func = function()
return G_reader_settings:readSetting("screensaver_delay") == "tap"
end,
callback = function()
G_reader_settings:saveSetting("screensaver_delay", "tap")
end
},
}
}
}
}
}