Merge pull request #367 from Xertis/main
Added search to the content_menu
This commit is contained in:
commit
d8cf3ce596
@ -1,9 +1,13 @@
|
||||
<container size='1000,480' color='#0F1E2DB2' padding='8' interval='5' context='menu'>
|
||||
<panel id='contents' pos='15,15' size='440,390' color='0' max-length='406' scrollable='true'>
|
||||
<container size='1000,580' color='#0F1E2DB2' interval='5' context='menu'>
|
||||
<panel id='contents' pos='15,15' size='440,490' color='0' max-length='455' scrollable='true'>
|
||||
<!-- content is generated in script -->
|
||||
</panel>
|
||||
<button pos='15,430' size='440,40' onclick='menu:back()'>@Back</button>
|
||||
<button pos='485,430' size='500,40' onclick='core.open_folder("user:content")'>@Open content folder</button>
|
||||
<button pos='15,525' size='440,40' onclick='menu:back()'>@Back</button>
|
||||
<button pos='485,525' size='500,40' onclick='core.open_folder("user:content")'>@Open content folder</button>
|
||||
|
||||
<panel id='search_panel' size='440,35' pos='15,485' interval='1' color='#0000004C'>
|
||||
<textbox id='search_textbox' multiline='false' size='440,25' sub-consumer='function(x) refresh_search() end'></textbox>
|
||||
</panel>
|
||||
|
||||
<panel id='content_info' pos='485,15' size='440,406' color='0' max-length='406' scrollable='true'>
|
||||
<label>@Creator</label>
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user