NagView: properly rescale on scale change (#1379)

* drop font option since style.font is always used
This commit is contained in:
Jefferson González 2023-02-06 13:38:00 -04:00 committed by George Sokianos
parent 7f91514d6a
commit 68108aeff2
5 changed files with 22 additions and 12 deletions

View File

@ -44,8 +44,8 @@ local function save(filename)
else else
core.error(err) core.error(err)
core.nag_view:show("Saving failed", string.format("Could not save \"%s\" do you want to save to another location?", doc().filename), { core.nag_view:show("Saving failed", string.format("Could not save \"%s\" do you want to save to another location?", doc().filename), {
{ font = style.font, text = "No", default_no = true }, { text = "No", default_no = true },
{ font = style.font, text = "Yes" , default_yes = true } { text = "Yes", default_yes = true }
}, function(item) }, function(item)
if item.text == "Yes" then if item.text == "Yes" then
core.add_thread(function() core.add_thread(function()

View File

@ -820,8 +820,8 @@ function core.init()
if #plugins_refuse_list.userdir.plugins > 0 or #plugins_refuse_list.datadir.plugins > 0 then if #plugins_refuse_list.userdir.plugins > 0 or #plugins_refuse_list.datadir.plugins > 0 then
local opt = { local opt = {
{ font = style.font, text = "Exit", default_no = true }, { text = "Exit", default_no = true },
{ font = style.font, text = "Continue" , default_yes = true } { text = "Continue", default_yes = true }
} }
local msg = {} local msg = {}
for _, entry in pairs(plugins_refuse_list) do for _, entry in pairs(plugins_refuse_list) do
@ -866,8 +866,8 @@ function core.confirm_close_docs(docs, close_fn, ...)
end end
local args = {...} local args = {...}
local opt = { local opt = {
{ font = style.font, text = "Yes", default_yes = true }, { text = "Yes", default_yes = true },
{ font = style.font, text = "No" , default_no = true } { text = "No", default_no = true }
} }
core.nag_view:show("Unsaved Changes", text, opt, function(item) core.nag_view:show("Unsaved Changes", text, opt, function(item)
if item.text == "Yes" then close_fn(table.unpack(args)) end if item.text == "Yes" then close_fn(table.unpack(args)) end

View File

@ -91,7 +91,7 @@ function NagView:each_option()
for i = #self.options, 1, -1 do for i = #self.options, 1, -1 do
opt = self.options[i] opt = self.options[i]
bw = opt.font:get_width(opt.text) + 2 * BORDER_WIDTH + style.padding.x bw = style.font:get_width(opt.text) + 2 * BORDER_WIDTH + style.padding.x
ox = ox - bw - style.padding.x ox = ox - bw - style.padding.x
coroutine.yield(i, opt, ox,oy,bw,bh) coroutine.yield(i, opt, ox,oy,bw,bh)
@ -230,7 +230,7 @@ local function draw_nagview_message(self)
renderer.draw_rect(lx,ly,uw,UNDERLINE_WIDTH, style.nagbar_text) renderer.draw_rect(lx,ly,uw,UNDERLINE_WIDTH, style.nagbar_text)
end end
common.draw_text(opt.font, style.nagbar_text, opt.text, "center", fx,fy,fw,fh) common.draw_text(style.font, style.nagbar_text, opt.text, "center", fx,fy,fw,fh)
end end
self:draw_scrollbar() self:draw_scrollbar()
@ -245,6 +245,16 @@ function NagView:draw()
core.root_view:defer_draw(draw_nagview_message, self) core.root_view:defer_draw(draw_nagview_message, self)
end end
function NagView:on_scale_change(new_scale, old_scale)
BORDER_WIDTH = common.round(1 * new_scale)
UNDERLINE_WIDTH = common.round(2 * new_scale)
UNDERLINE_MARGIN = common.round(1 * new_scale)
self.target_height = math.max(
self:get_message_height(),
self:get_buttons_height()
)
end
function NagView:get_message_height() function NagView:get_message_height()
local h = 0 local h = 0
for str in string.gmatch(self.message, "(.-)\n") do for str in string.gmatch(self.message, "(.-)\n") do

View File

@ -46,8 +46,8 @@ end
local function check_prompt_reload(doc) local function check_prompt_reload(doc)
if doc and doc.deferred_reload then if doc and doc.deferred_reload then
core.nag_view:show("File Changed", doc.filename .. " has changed. Reload this file?", { core.nag_view:show("File Changed", doc.filename .. " has changed. Reload this file?", {
{ font = style.font, text = "Yes", default_yes = true }, { text = "Yes", default_yes = true },
{ font = style.font, text = "No" , default_no = true } { text = "No", default_no = true }
}, function(item) }, function(item)
if item.text == "Yes" then reload_doc(doc) end if item.text == "Yes" then reload_doc(doc) end
doc.deferred_reload = false doc.deferred_reload = false

View File

@ -709,8 +709,8 @@ command.add(
local file_type = file_info.type == "dir" and "Directory" or "File" local file_type = file_info.type == "dir" and "Directory" or "File"
-- Ask before deleting -- Ask before deleting
local opt = { local opt = {
{ font = style.font, text = "Yes", default_yes = true }, { text = "Yes", default_yes = true },
{ font = style.font, text = "No" , default_no = true } { text = "No", default_no = true }
} }
core.nag_view:show( core.nag_view:show(
string.format("Delete %s", file_type), string.format("Delete %s", file_type),