diff options
| -rw-r--r-- | panel.lua | 3 | ||||
| -rw-r--r-- | startmenu.lua | 2 | ||||
| -rw-r--r-- | system.lua | 7 | ||||
| -rw-r--r-- | var.lua | 2 | ||||
| -rw-r--r-- | window.lua | 302 |
5 files changed, 131 insertions, 185 deletions
@@ -8,8 +8,7 @@ function drawPanelButton(id) and sys.mouse.p.x <= (panel.s.x+72+(137*id-137))+(panel.s.width*2) and sys.mouse.p.y >= panel.s.y and sys.mouse.p.y <= panel.s.y+panel.s.height) then if win[panel.b[id]].min == false then - win[panel.b[id]].oldlayer = win[panel.b[id]].layer - win[panel.b[id]].layer = 1 + layer.sentToFront = panel.b[id] elseif win[panel.b[id]].min == true then win[panel.b[id]].min = false win[panel.b[id]].oldlayer = win[panel.b[id]].layer diff --git a/startmenu.lua b/startmenu.lua index 69fd0c0..a49d5bd 100644 --- a/startmenu.lua +++ b/startmenu.lua @@ -9,7 +9,7 @@ function drawMenuItems(id) win[id].ex = false win[id].s = 0.2 win[id].oldlayer = win[id].layer - win[id].layer = 1 + layer.sentToFront = id end else love.graphics.rectangle("fill", 35, 5+(id*55-55), 208, 50) @@ -6,12 +6,7 @@ end function drawSystem() love.graphics.setBackgroundColor(0, 128, 128) drawDesktop() - orderWindow(1) - orderWindow(2) - orderWindow(3) - orderWindow(4) - orderWindow(5) - orderWindow(6) + orderWindows() if (win[1].hov == false and win[2].hov == false and win[3].hov == false and win[4].hov == false and win[5].hov == false and win[6].hov == false) then winHover = false @@ -20,6 +20,7 @@ function loadWin(id, w, h, title, ico) win[id].hover = false win[id].update = true win[id].icon = ico + win[id].exit = true end function loadVar() sys = {} @@ -80,6 +81,7 @@ function loadVar() layer[5] = 0 layer[6] = 0 layer[7] = 0 + layer.sentToFront = 0 desktop.bg.current = 0 fade = 0 fadeOpacity = 0 @@ -25,13 +25,13 @@ function drawWindow(id) win[id].update = false end if(sys.mouse.x >= win[id].x and sys.mouse.x <= win[id].x+win[id].w - and sys.mouse.y >= win[id].y and sys.mouse.y <= win[id].y+win[id].h) then + and sys.mouse.y >= win[id].y and sys.mouse.y <= win[id].y+win[id].h and win[id].ex == false) then win[id].hov = true winHover = true else win[id].hov = false end - if layer[1] ~= 0 then + if layer[1] ~= 0 and win[id].ex == false then if win[id].layer ~= 1 and win[layer[1]].hov == true then win[id].hover = false elseif win[id].layer ~= 1 and win[id].layer ~= 2 and layer[1] ~= 0 and layer[2] ~= 0 then @@ -52,14 +52,16 @@ function drawWindow(id) if sys.mouse.y >= sys.h-panel.thick then win[id].hover = false end + if win[id].ex == true then + win[id].hover = false + end if(sys.mouse.p.x >= win[id].x and sys.mouse.p.x <= win[id].x+win[id].w and sys.mouse.p.y >= win[id].y and sys.mouse.p.y <= win[id].y+win[id].h) then else win[id].hover = false end if win[id].hover == true and sys.mouse.p.p == true and sys.mouse.drag == false then - win[id].oldlayer = win[id].layer - win[id].layer = 1 + layer.sentToFront = id end if(sys.mouse.p.p == true and sys.mouse.p.x >= win[id].x+2 and sys.mouse.p.x <= (win[id].x+2)+(win[id].w-44) and sys.mouse.p.y >= win[id].y+2 and sys.mouse.p.y <= win[id].y+22 and win[id].hover == true) then @@ -109,115 +111,27 @@ function drawWindow(id) end love.graphics.setColor(255,255,255) end -function orderWindow(id) - if win[id].ex == true and win[id].s == 0 then - if layer[1] == id then - layer[1] = 0 - end - if layer[2] == id then - layer[2] = 0 - end - if layer[3] == id then - layer[3] = 0 - end - if layer[4] == id then - layer[4] = 0 - end - if layer[5] == id then - layer[5] = 0 - end - if layer[6] == id then - layer[6] = 0 - end - if layer[7] == id then - layer[7] = 0 - end - win[id].oldlayer = win[id].layer - win[id].layer = 0 - end - if win[id].ex == true then - win[id].hover = false - end - if win[id].ex == true and win[id].s == 0 then - win[id].oldlayer = win[id].layer - win[id].layer = 0 - win[id].panel = 0 - if panel.b[1] == id then - panel.b[1] = panel.b[2] - panel.b[2] = panel.b[3] - panel.b[3] = panel.b[4] - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[2] == id then - panel.b[2] = panel.b[3] - panel.b[3] = panel.b[4] - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[3] == id then - panel.b[3] = panel.b[4] - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[4] == id then - panel.b[4] = panel.b[5] - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[5] == id then - panel.b[5] = panel.b[6] - panel.b[6] = panel.b[7] - elseif panel.b[6] == id then - panel.b[6] = panel.b[7] - end - elseif win[id].ex == false or win[id].s ~= 0 then - if layer[1] == 0 and layer[2] == id then - layer[1] = id - win[id].oldlayer = win[id].layer - win[id].layer = 1 - elseif layer[1] == 0 and layer[2] == 0 and layer[3] == id then - layer[1] = id - win[id].oldlayer = win[id].layer - win[id].layer = 1 - elseif layer[1] == 0 and layer[2] == 0 and layer[3] == 0 and layer[4] == id then - layer[1] = id - win[id].oldlayer = win[id].layer - win[id].layer = 1 - elseif(layer[1] == 0 and layer[2] == 0 and layer[3] == 0 and layer[4] == 0 - and layer[5] == id) then - layer[1] = id - win[id].oldlayer = win[id].layer - win[id].layer = 1 - elseif(layer[1] == 0 and layer[2] == 0 and layer[3] == 0 and layer[4] == 0 - and layer[5] == 0 and layer[6] == id) then - layer[1] = id - win[id].oldlayer = win[id].layer - win[id].layer = 1 - elseif(layer[1] == 0 and layer[2] == 0 and layer[3] == 0 and layer[4] == 0 - and layer[5] == 0 and layer[6] == 0 and layer[7] == id) then - layer[1] = id - win[id].oldlayer = win[id].layer - win[id].layer = 1 - elseif layer[1] ~= id and win[id].layer == 1 then - if win[id].oldlayer == 2 then +function orderWindows() + if layer.sentToFront ~= 0 and layer[1] ~= layer.sentToFront then + if win[layer.sentToFront].oldlayer == 2 then layer[2] = layer[1] layer[1] = id - elseif win[id].oldlayer == 3 then + elseif win[layer.sentToFront].oldlayer == 3 then layer[3] = layer[2] layer[2] = layer[1] layer[1] = id - elseif win[id].oldlayer == 4 then + elseif win[layer.sentToFront].oldlayer == 4 then layer[4] = layer[3] layer[3] = layer[2] layer[2] = layer[1] layer[1] = id - elseif win[id].oldlayer == 5 then + elseif win[layer.sentToFront].oldlayer == 5 then layer[5] = layer[4] layer[4] = layer[3] layer[3] = layer[2] layer[2] = layer[1] layer[1] = id - elseif win[id].oldlayer == 6 then + elseif win[layer.sentToFront].oldlayer == 6 then layer[6] = layer[5] layer[5] = layer[4] layer[4] = layer[3] @@ -233,90 +147,126 @@ function orderWindow(id) layer[2] = layer[1] layer[1] = id end - win[id].layer = 1 - if layer[7] ~= 0 then - win[layer[7]].oldlayer = win[layer[7]].layer - win[layer[7]].layer = 7 - end - if layer[6] ~= 0 then - win[layer[6]].oldlayer = win[layer[6]].layer - win[layer[6]].layer = 6 - end - if layer[5] ~= 0 then - win[layer[5]].oldlayer = win[layer[5]].layer - win[layer[5]].layer = 5 - end - if layer[4] ~= 0 then - win[layer[4]].oldlayer = win[layer[4]].layer - win[layer[4]].layer = 4 - end - if layer[3] ~= 0 then - win[layer[3]].oldlayer = win[layer[3]].layer - win[layer[3]].layer = 3 - end - if layer[2] ~= 0 then - win[layer[2]].oldlayer = win[layer[2]].layer - win[layer[2]].layer = 2 - end - if layer[1] ~= 0 then - win[layer[1]].oldlayer = win[layer[1]].layer - win[layer[1]].layer = 1 - end - end - if layer[2] == id and win[id].layer ~= 2 and layer[1] == id then - layer[2] = 0 - end - if layer[3] == id and win[id].layer ~= 3 and layer[1] == id then - layer[3] = 0 - end - if layer[4] == id and win[id].layer ~= 4 and layer[1] == id then - layer[4] = 0 - end - if layer[5] == id and win[id].layer ~= 5 and layer[1] == id then - layer[5] = 0 - end - if layer[6] == id and win[id].layer ~= 6 and layer[1] == id then - layer[6] = 0 - end - if layer[7] == id and win[id].layer ~= 7 and layer[1] == id then - layer[7] = 0 - end - if panel.b[1] == 0 then - panel.b[1] = id - elseif panel.b[2] == 0 and panel.b[1] ~= id then - panel.b[2] = id - elseif panel.b[3] == 0 and panel.b[1] ~= id and panel.b[2] ~= id then - panel.b[3] = id - elseif (panel.b[4] == 0 and panel.b[1] ~= id and panel.b[2] ~= id - and panel.b[3] ~= id) then - panel.b[4] = id - elseif (panel.b[5] == 0 and panel.b[1] ~= id and panel.b[2] ~= id - and panel.b[3] ~= id and panel.b[4] ~= id) then - panel.b[5] = id - elseif (panel.b[6] == 0 and panel.b[1] ~= id and panel.b[2] ~= id - and panel.b[3] ~= id and panel.b[4] ~= id and panel.b[5] ~= id) then - panel.b[6] = id - end - drawWindow(id) + layer[1] = layer.sentToFront + win[layer.sentToFront].oldlayer = win[layer.sentToFront].layer + win[layer.sentToFront].layer = 1 + layer.sentToFront = 0 end - if layer[2] == 0 and layer[3] ~= 0 then - layer[2] = layer[3] - layer[3] = 0 + closeWindow(1) + closeWindow(2) + closeWindow(3) + closeWindow(4) + closeWindow(5) + closeWindow(6) + if layer[6] == 0 and layer[7] ~= 0 then + layer[6] = layer[7] + layer[7] = 0 end - if layer[3] == 0 and layer[4] ~= 0 then - layer[3] = layer[4] - layer[4] = 0 + if layer[5] == 0 and layer[6] ~= 0 then + layer[5] = layer[6] + layer[6] = 0 end if layer[4] == 0 and layer[5] ~= 0 then layer[4] = layer[5] layer[5] = 0 end - if layer[5] == 0 and layer[6] ~= 0 then - layer[5] = layer[6] - layer[6] = 0 + if layer[3] == 0 and layer[4] ~= 0 then + layer[3] = layer[4] + layer[4] = 0 end - if layer[6] == 0 and layer[7] ~= 0 then - layer[6] = layer[7] - layer[7] = 0 + if layer[2] == 0 and layer[3] ~= 0 then + layer[2] = layer[3] + layer[3] = 0 + end + if layer[1] == 0 and layer[2] ~= 0 then + layer[1] = layer[2] + layer[2] = 0 + end + setWindow(6) + setWindow(5) + setWindow(4) + setWindow(3) + setWindow(2) + setWindow(1) + setPanel(1) + setPanel(2) + setPanel(3) + setPanel(4) + setPanel(5) + setPanel(6) + drawWindow(1) + drawWindow(2) + drawWindow(3) + drawWindow(4) + drawWindow(5) + drawWindow(6) +end +function setWindow(id) + if layer[id] ~= 0 then + win[layer[id]].oldlayer = win[layer[id]].layer + win[layer[id]].layer = id + end +end +function setPanel(id) + if win[id].ex == false then + if panel.b[1] == 0 then + panel.b[1] = id + elseif panel.b[2] == 0 and panel.b[1] ~= id then + panel.b[2] = id + elseif panel.b[3] == 0 and panel.b[1] ~= id and panel.b[2] ~= id then + panel.b[3] = id + elseif (panel.b[4] == 0 and panel.b[1] ~= id and panel.b[2] ~= id + and panel.b[3] ~= id) then + panel.b[4] = id + elseif (panel.b[5] == 0 and panel.b[1] ~= id and panel.b[2] ~= id + and panel.b[3] ~= id and panel.b[4] ~= id) then + panel.b[5] = id + elseif (panel.b[6] == 0 and panel.b[1] ~= id and panel.b[2] ~= id + and panel.b[3] ~= id and panel.b[4] ~= id and panel.b[5] ~= id) then + panel.b[6] = id + end + end + if win[id].ex == true then + if panel.b[1] == id then + panel.b[1] = panel.b[2] + panel.b[2] = panel.b[3] + panel.b[3] = panel.b[4] + panel.b[4] = panel.b[5] + panel.b[5] = panel.b[6] + panel.b[6] = panel.b[7] + elseif panel.b[2] == id then + panel.b[2] = panel.b[3] + panel.b[3] = panel.b[4] + panel.b[4] = panel.b[5] + panel.b[5] = panel.b[6] + panel.b[6] = panel.b[7] + elseif panel.b[3] == id then + panel.b[3] = panel.b[4] + panel.b[4] = panel.b[5] + panel.b[5] = panel.b[6] + panel.b[6] = panel.b[7] + elseif panel.b[4] == id then + panel.b[4] = panel.b[5] + panel.b[5] = panel.b[6] + panel.b[6] = panel.b[7] + elseif panel.b[5] == id then + panel.b[5] = panel.b[6] + panel.b[6] = panel.b[7] + elseif panel.b[6] == id then + panel.b[6] = panel.b[7] + end + end +end +function closeWindow(id) + if win[id].ex == true and win[id].s == 0 then + win[id].exit = true + win[id].oldlayer = win[id].layer + else + win[id].exit = false + end + if win[id].layer ~= 0 and win[id].exit == true then + layer[win[id].layer] = 0 + win[id].oldlayer = win[id].layer + win[id].layer = 0 end end |
