Create home.lua
This commit is contained in:
parent
95f707a2d4
commit
14d7e4a1be
1 changed files with 133 additions and 0 deletions
133
src/apps/home.lua
Normal file
133
src/apps/home.lua
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
|
||||||
|
|
||||||
|
local buttonsInHome = {
|
||||||
|
{"sPhone.header",23,1,25,1,sPhone.theme["header"],sPhone.theme["headerText"],"vvv"},
|
||||||
|
{"sPhone.appsButton",12,20,14,20,sPhone.theme["backgroundColor"],sPhone.theme["header"],"==="},
|
||||||
|
{"sPhone.shell",2,3,8,5,colors.black,colors.yellow," Shell",2},
|
||||||
|
{"sPhone.lock",19,3,24,5,colors.lightGray,colors.black," Lock",2},
|
||||||
|
{"sPhone.chat",11,3,16,5,colors.black,colors.white," Chat",2},
|
||||||
|
{"sPhone.kst",2,7,8,9,colors.green,colors.white," Krist",2},
|
||||||
|
{"sPhone.gps",11,7,15,9,colors.red,colors.black," GPS",2},
|
||||||
|
{"sPhone.info",18,7,23,9,colors.lightGray,colors.black," Info",2},
|
||||||
|
{"sPhone.store",2,11,8,13,colors.orange,colors.white," Store",2},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
local appsOnHome = {
|
||||||
|
["sPhone.shell"] = "/.sPhone/apps/shell",
|
||||||
|
["sPhone.chat"] = "/.sPhone/apps/chat",
|
||||||
|
["sPhone.gps"] = "/.sPhone/apps/gps",
|
||||||
|
["sPhone.kst"] = "/.sPhone/apps/kstwallet",
|
||||||
|
["sPhone.info"] = "/.sPhone/apps/system/info",
|
||||||
|
["sPhone.store"] = "/.sPhone/apps/store",
|
||||||
|
["sPhone.appsButton"] = "/.sPhone/apps/appList",
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
local function clear()
|
||||||
|
term.setBackgroundColor(sPhone.theme["backgroundColor"])
|
||||||
|
term.clear()
|
||||||
|
term.setCursorPos(1,1)
|
||||||
|
term.setTextColor(sPhone.theme["text"])
|
||||||
|
end
|
||||||
|
|
||||||
|
local function drawHome()
|
||||||
|
local function box(x,y,text,bg,colorText,page)
|
||||||
|
graphics.box(x,y,x+1+#text,y+2,bg)
|
||||||
|
term.setCursorPos(x+1,y+1)
|
||||||
|
term.setTextColor(colorText)
|
||||||
|
write(text)
|
||||||
|
end
|
||||||
|
clear()
|
||||||
|
|
||||||
|
|
||||||
|
visum.buttons(buttonsInHome,true)
|
||||||
|
|
||||||
|
local w, h = term.getSize()
|
||||||
|
paintutils.drawLine(1,1,w,1, sPhone.theme["header"])
|
||||||
|
term.setTextColor(sPhone.theme["headerText"])
|
||||||
|
visum.align("right","vvv ",false,1)
|
||||||
|
end
|
||||||
|
local function footerMenu()
|
||||||
|
sPhone.isFooterMenuOpen = true
|
||||||
|
function redraw()
|
||||||
|
drawHome()
|
||||||
|
local w, h = term.getSize()
|
||||||
|
graphics.box(1,2,w,4,sPhone.theme["header"])
|
||||||
|
term.setTextColor(sPhone.theme["headerText"])
|
||||||
|
term.setBackgroundColor(sPhone.theme["header"])
|
||||||
|
visum.align("right","^^^ ",false,1)
|
||||||
|
visum.align("right", "Reboot ",false,3)
|
||||||
|
term.setCursorPos(11,3)
|
||||||
|
write("Settings")
|
||||||
|
term.setCursorPos(2,3)
|
||||||
|
write("Shutdown")
|
||||||
|
end
|
||||||
|
while true do
|
||||||
|
term.redirect(sPhone.mainTerm)
|
||||||
|
drawHome()
|
||||||
|
redraw()
|
||||||
|
local _,_,x,y = os.pullEvent("mouse_click")
|
||||||
|
if y == 3 then
|
||||||
|
if x > 1 and x < 10 then
|
||||||
|
os.shutdown()
|
||||||
|
sPhone.inHome = true
|
||||||
|
elseif x > 19 and x < 26 then
|
||||||
|
os.reboot()
|
||||||
|
sPhone.inHome = true
|
||||||
|
elseif x > 10 and x < 19 then
|
||||||
|
sPhone.inHome = false
|
||||||
|
sPhone.run("/.sPhone/apps/system/settings")
|
||||||
|
sPhone.inHome = true
|
||||||
|
drawHome()
|
||||||
|
end
|
||||||
|
elseif y == 1 then
|
||||||
|
if x < 26 and x > 22 then
|
||||||
|
sPhone.isFooterMenuOpen = false
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local function buttonHomeLoop()
|
||||||
|
while true do
|
||||||
|
drawHome()
|
||||||
|
term.setCursorBlink(false)
|
||||||
|
local autoLockTimer = os.startTimer(10)
|
||||||
|
local id = visum.buttons(buttonsInHome)
|
||||||
|
|
||||||
|
if id == "sPhone.header" then
|
||||||
|
footerMenu()
|
||||||
|
elseif id == "sPhone.lock" then
|
||||||
|
sPhone.inHome = false
|
||||||
|
sPhone.login()
|
||||||
|
sPhone.inHome = true
|
||||||
|
elseif appsOnHome[id] then
|
||||||
|
sPhone.inHome = false
|
||||||
|
os.pullEvent = os.oldPullEvent
|
||||||
|
shell.run(appsOnHome[id])
|
||||||
|
os.pullEvent = os.pullEventRaw
|
||||||
|
sPhone.inHome = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
sPhone.inHome = false
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
local function updateClock()
|
||||||
|
while true do
|
||||||
|
if sPhone.inHome then
|
||||||
|
term.setCursorPos(1,1)
|
||||||
|
term.setBackgroundColor(sPhone.theme["header"])
|
||||||
|
term.setTextColor(sPhone.theme["headerText"])
|
||||||
|
term.setCursorPos(1,1)
|
||||||
|
write(" ")
|
||||||
|
term.setCursorPos(1,1)
|
||||||
|
write(" "..textutils.formatTime(os.time(),true))
|
||||||
|
end
|
||||||
|
sleep(0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
parallel.waitForAll(buttonHomeLoop, updateClock)
|
Loading…
Reference in a new issue