aboutsummaryrefslogtreecommitdiff
path: root/plugins/scale.lua
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/scale.lua')
-rw-r--r--plugins/scale.lua142
1 files changed, 0 insertions, 142 deletions
diff --git a/plugins/scale.lua b/plugins/scale.lua
deleted file mode 100644
index 14648fd..0000000
--- a/plugins/scale.lua
+++ /dev/null
@@ -1,142 +0,0 @@
--- mod-version:1 -- lite-xl 1.16
-local core = require "core"
-local common = require "core.common"
-local command = require "core.command"
-local config = require "core.config"
-local keymap = require "core.keymap"
-local style = require "core.style"
-local RootView = require "core.rootview"
-local CommandView = require "core.commandview"
-
-config.scale_mode = "code"
-config.scale_use_mousewheel = true
-
-local scale_level = 0
-local scale_steps = 0.1
-local font_cache = setmetatable({}, { __mode = "k" })
-
--- default lite fonts
-local regular_font = "font.ttf"
-local monospace_font = "monospace.ttf"
-
--- Set font names properly to work with latest lite-xl changes
-if io.open(DATADIR .. "/fonts/FiraSans-Regular.ttf", "r") then
- regular_font = "FiraSans-Regular.ttf"
-end
-
-if io.open(DATADIR .. "/fonts/JetBrainsMono-Regular.ttf", "r") then
- monospace_font = "JetBrainsMono-Regular.ttf"
-end
-
--- the following should be kept in sync with core.style's default font settings
-font_cache[style.font] = { DATADIR .. "/fonts/" .. regular_font, 13 * SCALE }
-font_cache[style.big_font] = { DATADIR .. "/fonts/" .. regular_font, 40 * SCALE }
-font_cache[style.icon_font] = { DATADIR .. "/fonts/icons.ttf", 14 * SCALE }
-font_cache[style.icon_big_font] = { DATADIR .. "/fonts/icons.ttf", 20 * SCALE }
-font_cache[style.code_font] = { DATADIR .. "/fonts/" .. monospace_font, 13 * SCALE }
-
-
-local load_font = renderer.font.load
-function renderer.font.load(...)
- local res = load_font(...)
- font_cache[res] = { ... }
- return res
-end
-
-
-local function scale_font(font, s)
- local fc = font_cache[font]
- return renderer.font.load(fc[1], fc[2] * s)
-end
-
-
-local current_scale = SCALE
-local default = current_scale
-
-
-local function get_scale() return current_scale end
-
-
-local function set_scale(scale)
- scale = common.clamp(scale, 0.2, 6)
-
- -- save scroll positions
- local scrolls = {}
- for _, view in ipairs(core.root_view.root_node:get_children()) do
- local n = view:get_scrollable_size()
- if n ~= math.huge and not view:is(CommandView) and n > view.size.y then
- scrolls[view] = view.scroll.y / (n - view.size.y)
- end
- end
-
- local s = scale / current_scale
- current_scale = scale
-
- if config.scale_mode == "ui" then
- SCALE = current_scale
-
- style.padding.x = style.padding.x * s
- style.padding.y = style.padding.y * s
- style.divider_size = style.divider_size * s
- style.scrollbar_size = style.scrollbar_size * s
- style.caret_width = style.caret_width * s
- style.tab_width = style.tab_width * s
-
- style.big_font = scale_font(style.big_font, s)
- style.icon_font = scale_font(style.icon_font, s)
- style.font = scale_font(style.font, s)
- end
-
- style.code_font = scale_font(style.code_font, s)
-
- -- restore scroll positions
- for view, n in pairs(scrolls) do
- view.scroll.y = n * (view:get_scrollable_size() - view.size.y)
- view.scroll.to.y = view.scroll.y
- end
-
- core.redraw = true
-end
-
-
-local on_mouse_wheel = RootView.on_mouse_wheel
-
-function RootView:on_mouse_wheel(d, ...)
- if keymap.modkeys["ctrl"] and config.scale_use_mousewheel then
- if d < 0 then command.perform "scale:decrease" end
- if d > 0 then command.perform "scale:increase" end
- else
- return on_mouse_wheel(self, d, ...)
- end
-end
-
-local function res_scale()
- scale_level = 0
- set_scale(default)
-end
-
-local function inc_scale()
- scale_level = scale_level + 1
- set_scale(default + scale_level * scale_steps)
-end
-
-local function dec_scale()
- scale_level = scale_level - 1
- set_scale(default + scale_level * scale_steps)
-end
-
-
-command.add(nil, {
- ["scale:reset" ] = function() res_scale() end,
- ["scale:decrease"] = function() dec_scale() end,
- ["scale:increase"] = function() inc_scale() end,
-})
-
-keymap.add {
- ["ctrl+0"] = "scale:reset",
- ["ctrl+-"] = "scale:decrease",
- ["ctrl+="] = "scale:increase",
-}
-
-return { get_scale = get_scale, set_scale = set_scale }
-