plugin scale: added option to set default scale (#1115)
This commit is contained in:
parent
10d810b7d7
commit
862ed9ad6a
|
@ -5,47 +5,15 @@ local command = require "core.command"
|
||||||
local config = require "core.config"
|
local config = require "core.config"
|
||||||
local keymap = require "core.keymap"
|
local keymap = require "core.keymap"
|
||||||
local style = require "core.style"
|
local style = require "core.style"
|
||||||
local RootView = require "core.rootview"
|
|
||||||
local CommandView = require "core.commandview"
|
local CommandView = require "core.commandview"
|
||||||
|
|
||||||
config.plugins.scale = common.merge({
|
config.plugins.scale = common.merge({
|
||||||
-- The method used to apply the scaling: "code", "ui"
|
-- The method used to apply the scaling: "code", "ui"
|
||||||
mode = "code",
|
mode = "code",
|
||||||
|
-- Default scale applied at startup.
|
||||||
|
default_scale = "autodetect",
|
||||||
-- Allow using CTRL + MouseWheel for changing the scale.
|
-- Allow using CTRL + MouseWheel for changing the scale.
|
||||||
use_mousewheel = true,
|
use_mousewheel = true
|
||||||
-- The config specification used by gui generators
|
|
||||||
config_spec = {
|
|
||||||
name = "Scale",
|
|
||||||
{
|
|
||||||
label = "Mode",
|
|
||||||
description = "The method used to apply the scaling.",
|
|
||||||
path = "mode",
|
|
||||||
type = "selection",
|
|
||||||
default = "code",
|
|
||||||
values = {
|
|
||||||
{"Code Only", "code"},
|
|
||||||
{"Everything", "ui"}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label = "Use MouseWheel",
|
|
||||||
description = "Allow using CTRL + MouseWheel for changing the scale.",
|
|
||||||
path = "use_mousewheel",
|
|
||||||
type = "toggle",
|
|
||||||
default = true,
|
|
||||||
on_apply = function(enabled)
|
|
||||||
if enabled then
|
|
||||||
keymap.add {
|
|
||||||
["ctrl+wheelup"] = "scale:increase",
|
|
||||||
["ctrl+wheeldown"] = "scale:decrease"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
keymap.unbind("ctrl+wheelup", "scale:increase")
|
|
||||||
keymap.unbind("ctrl+wheeldown", "scale:decrease")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, config.plugins.scale)
|
}, config.plugins.scale)
|
||||||
|
|
||||||
local scale_steps = 0.05
|
local scale_steps = 0.05
|
||||||
|
@ -114,6 +82,75 @@ local function dec_scale()
|
||||||
set_scale(current_scale - scale_steps)
|
set_scale(current_scale - scale_steps)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if default_scale ~= config.plugins.scale.default_scale then
|
||||||
|
if type(config.plugins.scale.default_scale) == "number" then
|
||||||
|
set_scale(config.plugins.scale.default_scale)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- The config specification used by gui generators
|
||||||
|
config.plugins.scale.config_spec = {
|
||||||
|
name = "Scale",
|
||||||
|
{
|
||||||
|
label = "Mode",
|
||||||
|
description = "The method used to apply the scaling.",
|
||||||
|
path = "mode",
|
||||||
|
type = "selection",
|
||||||
|
default = "code",
|
||||||
|
values = {
|
||||||
|
{"Everything", "ui"},
|
||||||
|
{"Code Only", "code"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label = "Default Scale",
|
||||||
|
description = "The scaling factor applied to lite-xl.",
|
||||||
|
path = "default_scale",
|
||||||
|
type = "selection",
|
||||||
|
default = "autodetect",
|
||||||
|
values = {
|
||||||
|
{"Autodetect", "autodetect"},
|
||||||
|
{"80%", 0.80},
|
||||||
|
{"90%", 0.90},
|
||||||
|
{"100%", 1.00},
|
||||||
|
{"110%", 1.10},
|
||||||
|
{"120%", 1.20},
|
||||||
|
{"125%", 1.25},
|
||||||
|
{"130%", 1.30},
|
||||||
|
{"140%", 1.40},
|
||||||
|
{"150%", 1.50},
|
||||||
|
{"175%", 1.75},
|
||||||
|
{"200%", 2.00},
|
||||||
|
{"250%", 2.50},
|
||||||
|
{"300%", 3.00}
|
||||||
|
},
|
||||||
|
on_apply = function(value)
|
||||||
|
if type(value) == "string" then value = default_scale end
|
||||||
|
if value ~= current_scale then
|
||||||
|
set_scale(value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label = "Use MouseWheel",
|
||||||
|
description = "Allow using CTRL + MouseWheel for changing the scale.",
|
||||||
|
path = "use_mousewheel",
|
||||||
|
type = "toggle",
|
||||||
|
default = true,
|
||||||
|
on_apply = function(enabled)
|
||||||
|
if enabled then
|
||||||
|
keymap.add {
|
||||||
|
["ctrl+wheelup"] = "scale:increase",
|
||||||
|
["ctrl+wheeldown"] = "scale:decrease"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
keymap.unbind("ctrl+wheelup", "scale:increase")
|
||||||
|
keymap.unbind("ctrl+wheeldown", "scale:decrease")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
command.add(nil, {
|
command.add(nil, {
|
||||||
["scale:reset" ] = function() res_scale() end,
|
["scale:reset" ] = function() res_scale() end,
|
||||||
|
|
Loading…
Reference in New Issue