added search to the content_menu

This commit is contained in:
Xertis
2024-11-13 22:41:52 +03:00
parent 4b0b643342
commit ef3f1c5d33
2 changed files with 37 additions and 8 deletions
+29 -4
View File
@@ -1,3 +1,5 @@
local packs_installed = {}
function on_open(params)
refresh()
end
@@ -13,11 +15,33 @@ function place_pack(panel, packinfo, callback)
end
packinfo.callback = callback
panel:add(gui.template("pack", packinfo))
if not callback then
document["pack_"..packinfo.id].enabled = false
end
function refresh_search()
local search_text = document.search_textbox.text:lower()
local visible = 0
local interval = 4
local step = -1
for i, v in ipairs(packs_installed) do
local id = v[1]
local title = v[2]
local content = document["pack_" .. id]
local pos = content.pos
local size = content.size
if title:lower():find(search_text) or search_text == '' then
content.enabled = true
content.pos = {pos[1], visible * (size[2] + interval) - step}
visible = visible + 1
else
content.enabled = false
content.pos = {pos[1], (visible + #packs_installed - i) * (size[2] + interval) - step}
end
end
end
function open_pack(id)
local packinfo = pack.get_info(id)
@@ -28,8 +52,8 @@ function open_pack(id)
end
function refresh()
local packs_installed = pack.get_installed()
local packs_available = pack.get_available()
packs_installed = pack.get_installed()
for i,k in ipairs(packs_available) do
table.insert(packs_installed, k)
@@ -41,7 +65,8 @@ function refresh()
for i,id in ipairs(packs_installed) do
local packinfo = pack.get_info(id)
packinfo.index = i
packinfo.id = id
packs_installed[i] = {packinfo.id, packinfo.title}
local callback = string.format('open_pack("%s")', id)
place_pack(contents, packinfo, callback)
end