aboutsummaryrefslogtreecommitdiff
path: root/window.lua
diff options
context:
space:
mode:
authorChris B <1029chris@gmail.com>2016-02-25 20:05:39 -0800
committerChris B <1029chris@gmail.com>2016-02-25 20:05:39 -0800
commite1e1f5d58f68ffc03e8010f164f8aa4d605f3b63 (patch)
tree3e043918d54afcbd8a0a3f60e80411894eff25f4 /window.lua
parenta8b606be2dcdbd345d3f67d5c44275360f7a91e0 (diff)
Rewrote layer system, I hope it works this time...
Diffstat (limited to 'window.lua')
-rw-r--r--window.lua302
1 files changed, 126 insertions, 176 deletions
diff --git a/window.lua b/window.lua
index 7cb9bbd..16f3911 100644
--- a/window.lua
+++ b/window.lua
@@ -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