mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-24 13:02:49 +01:00
97 lines
1.6 KiB
Lua
97 lines
1.6 KiB
Lua
|
||
_G.fs = require("filesystem")
|
||
_G.buffer = require("doubleBuffering")
|
||
|
||
local filemanager = {}
|
||
|
||
local massiv = {
|
||
{
|
||
name = "Root",
|
||
showContent = true,
|
||
content = {
|
||
{
|
||
name = "File1",
|
||
},
|
||
{
|
||
name = "File2",
|
||
},
|
||
{
|
||
name = "Folder1",
|
||
showContent = true,
|
||
content = {
|
||
{
|
||
name = "FileInFolder1",
|
||
},
|
||
{
|
||
name = "FileInFolder2",
|
||
},
|
||
{
|
||
name = "FolderInFolder1",
|
||
showContent = true,
|
||
content = {
|
||
{
|
||
name = "FileInFolderInFolder1",
|
||
},
|
||
},
|
||
},
|
||
},
|
||
},
|
||
{
|
||
name = "File3",
|
||
},
|
||
{
|
||
name = "File4",
|
||
},
|
||
},
|
||
},
|
||
}
|
||
|
||
filemanager.colors = {
|
||
background = 0xcccccc,
|
||
text = 0x262626,
|
||
scrollBar = 0x444444,
|
||
scrollBarPipe = 0x24c0ff,
|
||
}
|
||
|
||
local function recursiveDraw(x, y, array)
|
||
for i = 1, #array do
|
||
|
||
if array[i].content then
|
||
if array[i].showContent then
|
||
buffer.text(x, y, filemanager.colors.text, "∨ ▄ " .. array[i].name)
|
||
y = y + 1
|
||
_, y = recursiveDraw(x + 2, y, array[i].content)
|
||
else
|
||
buffer.text(x, y, filemanager.colors.text, "> ▄ " .. array[i].name)
|
||
y = y + 1
|
||
end
|
||
else
|
||
buffer.text(x, y, filemanager.colors.text, " • " .. array[i].name)
|
||
y = y + 1
|
||
end
|
||
end
|
||
|
||
return x, y
|
||
end
|
||
|
||
function filemanager.draw(x, y, width, height, path, fromElement)
|
||
buffer.square(x, y, width, height, filemanager.colors.background, 0xFFFFFF, " ")
|
||
|
||
buffer.setDrawLimit(x, y, width - 2, height)
|
||
recursiveDraw(x + 1, y, massiv)
|
||
buffer.resetDrawLimit()
|
||
|
||
buffer.scrollBar(x + width - 1, y, 1, height, #massiv, 1, filemanager.colors.scrollBar, filemanager.colors.scrollBarPipe)
|
||
end
|
||
|
||
return filemanager
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|