From 14d7e4a1beded256e3682d428c52b837dce1b3e5 Mon Sep 17 00:00:00 2001 From: Ale32bit Date: Fri, 2 Sep 2016 12:57:40 +0200 Subject: [PATCH] Create home.lua --- src/apps/home.lua | 133 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 src/apps/home.lua diff --git a/src/apps/home.lua b/src/apps/home.lua new file mode 100644 index 0000000..fc04a65 --- /dev/null +++ b/src/apps/home.lua @@ -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)