aboutsummaryrefslogtreecommitdiff
path: root/window.lua
diff options
context:
space:
mode:
authorChris B <1029chris@gmail.com>2016-03-09 18:42:52 -0800
committerChris B <1029chris@gmail.com>2016-03-09 18:42:52 -0800
commitf09675cc51658532024e0aa53bf091fc7dbc0131 (patch)
tree9cbf4a7c466073ccb824c19848e31c6672c63c25 /window.lua
parenteb217a6eca0bb18b38a7bba2459643b64e2f8c6f (diff)
Optimized layers and panels
Diffstat (limited to 'window.lua')
-rw-r--r--window.lua124
1 files changed, 17 insertions, 107 deletions
diff --git a/window.lua b/window.lua
index f6c5cf9..e094843 100644
--- a/window.lua
+++ b/window.lua
@@ -125,41 +125,10 @@ function drawWindow(id)
end
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[layer.sentToFront].oldlayer == 3 then
- layer[3] = layer[2]
- layer[2] = layer[1]
- layer[1] = id
- elseif win[layer.sentToFront].oldlayer == 4 then
- layer[4] = layer[3]
- layer[3] = layer[2]
- layer[2] = layer[1]
- layer[1] = id
- 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[layer.sentToFront].oldlayer == 6 then
- layer[6] = layer[5]
- layer[5] = layer[4]
- layer[4] = layer[3]
- layer[3] = layer[2]
- layer[2] = layer[1]
- layer[1] = id
- else
- layer[7] = layer[6]
- layer[6] = layer[5]
- layer[5] = layer[4]
- layer[4] = layer[3]
- layer[3] = layer[2]
- layer[2] = layer[1]
- layer[1] = id
- end
- layer[1] = layer.sentToFront
+ if win[layer.sentToFront].layer ~= 0 then
+ table.remove(layer, win[layer.sentToFront].layer)
+ end
+ table.insert(layer, 1, layer.sentToFront)
win[layer.sentToFront].oldlayer = win[layer.sentToFront].layer
win[layer.sentToFront].layer = 1
layer.sentToFront = 0
@@ -167,30 +136,6 @@ function orderWindows()
for i=1,6 do
closeWindow(7-i)
end
- if layer[6] == 0 and layer[7] ~= 0 then
- layer[6] = layer[7]
- layer[7] = 0
- end
- 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[3] == 0 and layer[4] ~= 0 then
- layer[3] = layer[4]
- layer[4] = 0
- end
- 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
for i=1,6 do
setWindow(7-i)
setPanel(7-i)
@@ -198,59 +143,24 @@ function orderWindows()
end
end
function setWindow(id)
- if layer[id] ~= 0 then
+ if layer[id] ~= nil 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
+ if win[id].ex == false and win[id].pan == 0 then
+ table.insert(panel.b, id)
+ win[id].pan = #panel.b
+ end
+ if win[id].ex == true and win[id].pan ~= 0 then
+ table.remove(panel.b, win[id].panel)
+ for i=1,#panel.b do
+ if panel.b[i] == id then
+ table.remove(panel.b, i)
+ end
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
+ win[id].pan = 0
end
end
function closeWindow(id)
@@ -261,7 +171,7 @@ function closeWindow(id)
win[id].exit = false
end
if win[id].layer ~= 0 and win[id].exit == true then
- layer[win[id].layer] = 0
+ table.remove(layer, win[id].layer)
win[id].oldlayer = win[id].layer
win[id].layer = 0
end