Add ability to enable/disable system cursors

This commit is contained in:
Kenny Shields 2014-10-30 19:34:05 -04:00
parent cc52f38f38
commit 11264bb14e

143
init.lua
View File

@ -22,6 +22,7 @@ loveframes.config["DEFAULTSKIN"] = "Blue"
loveframes.config["ACTIVESKIN"] = "Blue"
loveframes.config["INDEXSKINIMAGES"] = true
loveframes.config["DEBUG"] = false
loveframes.config["ENABLE_SYSTEM_CURSORS"] = false
-- misc library vars
loveframes.state = "none"
@ -84,84 +85,86 @@ function loveframes.update(dt)
end
end
local hoverobject = loveframes.hoverobject
local arrow = love.mouse.getSystemCursor("arrow")
local curcursor = love.mouse.getCursor()
if hoverobject then
local ibeam = love.mouse.getSystemCursor("ibeam")
local mx, my = love.mouse.getPosition()
if hoverobject.type == "textinput" and not loveframes.resizeobject then
if curcursor ~= ibeam then
love.mouse.setCursor(ibeam)
end
elseif hoverobject.type == "frame" then
if not hoverobject.dragging and hoverobject.canresize then
if loveframes.util.BoundingBox(hoverobject.x, mx, hoverobject.y, my, 5, 1, 5, 1) then
local sizenwse = love.mouse.getSystemCursor("sizenwse")
if curcursor ~= sizenwse then
love.mouse.setCursor(sizenwse)
end
elseif loveframes.util.BoundingBox(hoverobject.x + hoverobject.width - 5, mx, hoverobject.y + hoverobject.height - 5, my, 5, 1, 5, 1) then
local sizenwse = love.mouse.getSystemCursor("sizenwse")
if curcursor ~= sizenwse then
love.mouse.setCursor(sizenwse)
end
elseif loveframes.util.BoundingBox(hoverobject.x + hoverobject.width - 5, mx, hoverobject.y, my, 5, 1, 5, 1) then
local sizenesw = love.mouse.getSystemCursor("sizenesw")
if curcursor ~= sizenesw then
love.mouse.setCursor(sizenesw)
end
elseif loveframes.util.BoundingBox(hoverobject.x, mx, hoverobject.y + hoverobject.height - 5, my, 5, 1, 5, 1) then
local sizenesw = love.mouse.getSystemCursor("sizenesw")
if curcursor ~= sizenesw then
love.mouse.setCursor(sizenesw)
end
elseif loveframes.util.BoundingBox(hoverobject.x + 5, mx, hoverobject.y, my, hoverobject.width - 10, 1, 2, 1) then
local sizens = love.mouse.getSystemCursor("sizens")
if curcursor ~= sizens then
love.mouse.setCursor(sizens)
end
elseif loveframes.util.BoundingBox(hoverobject.x + 5, mx, hoverobject.y + hoverobject.height - 2, my, hoverobject.width - 10, 1, 2, 1) then
local sizens = love.mouse.getSystemCursor("sizens")
if curcursor ~= sizens then
love.mouse.setCursor(sizens)
end
elseif loveframes.util.BoundingBox(hoverobject.x, mx, hoverobject.y + 5, my, 2, 1, hoverobject.height - 10, 1) then
local sizewe = love.mouse.getSystemCursor("sizewe")
if curcursor ~= sizewe then
love.mouse.setCursor(sizewe)
end
elseif loveframes.util.BoundingBox(hoverobject.x + hoverobject.width - 2, mx, hoverobject.y + 5, my, 2, 1, hoverobject.height - 10, 1) then
local sizewe = love.mouse.getSystemCursor("sizewe")
if curcursor ~= sizewe then
love.mouse.setCursor(sizewe)
end
else
if not loveframes.resizeobject then
local arrow = love.mouse.getSystemCursor("arrow")
if curcursor ~= arrow then
love.mouse.setCursor(arrow)
if loveframes.config["ENABLE_SYSTEM_CURSORS"] then
local hoverobject = loveframes.hoverobject
local arrow = love.mouse.getSystemCursor("arrow")
local curcursor = love.mouse.getCursor()
if hoverobject then
local ibeam = love.mouse.getSystemCursor("ibeam")
local mx, my = love.mouse.getPosition()
if hoverobject.type == "textinput" and not loveframes.resizeobject then
if curcursor ~= ibeam then
love.mouse.setCursor(ibeam)
end
elseif hoverobject.type == "frame" then
if not hoverobject.dragging and hoverobject.canresize then
if loveframes.util.BoundingBox(hoverobject.x, mx, hoverobject.y, my, 5, 1, 5, 1) then
local sizenwse = love.mouse.getSystemCursor("sizenwse")
if curcursor ~= sizenwse then
love.mouse.setCursor(sizenwse)
end
elseif loveframes.util.BoundingBox(hoverobject.x + hoverobject.width - 5, mx, hoverobject.y + hoverobject.height - 5, my, 5, 1, 5, 1) then
local sizenwse = love.mouse.getSystemCursor("sizenwse")
if curcursor ~= sizenwse then
love.mouse.setCursor(sizenwse)
end
elseif loveframes.util.BoundingBox(hoverobject.x + hoverobject.width - 5, mx, hoverobject.y, my, 5, 1, 5, 1) then
local sizenesw = love.mouse.getSystemCursor("sizenesw")
if curcursor ~= sizenesw then
love.mouse.setCursor(sizenesw)
end
elseif loveframes.util.BoundingBox(hoverobject.x, mx, hoverobject.y + hoverobject.height - 5, my, 5, 1, 5, 1) then
local sizenesw = love.mouse.getSystemCursor("sizenesw")
if curcursor ~= sizenesw then
love.mouse.setCursor(sizenesw)
end
elseif loveframes.util.BoundingBox(hoverobject.x + 5, mx, hoverobject.y, my, hoverobject.width - 10, 1, 2, 1) then
local sizens = love.mouse.getSystemCursor("sizens")
if curcursor ~= sizens then
love.mouse.setCursor(sizens)
end
elseif loveframes.util.BoundingBox(hoverobject.x + 5, mx, hoverobject.y + hoverobject.height - 2, my, hoverobject.width - 10, 1, 2, 1) then
local sizens = love.mouse.getSystemCursor("sizens")
if curcursor ~= sizens then
love.mouse.setCursor(sizens)
end
elseif loveframes.util.BoundingBox(hoverobject.x, mx, hoverobject.y + 5, my, 2, 1, hoverobject.height - 10, 1) then
local sizewe = love.mouse.getSystemCursor("sizewe")
if curcursor ~= sizewe then
love.mouse.setCursor(sizewe)
end
elseif loveframes.util.BoundingBox(hoverobject.x + hoverobject.width - 2, mx, hoverobject.y + 5, my, 2, 1, hoverobject.height - 10, 1) then
local sizewe = love.mouse.getSystemCursor("sizewe")
if curcursor ~= sizewe then
love.mouse.setCursor(sizewe)
end
else
if not loveframes.resizeobject then
local arrow = love.mouse.getSystemCursor("arrow")
if curcursor ~= arrow then
love.mouse.setCursor(arrow)
end
end
end
end
elseif hoverobject.type == "text" and hoverobject.linkcol and not loveframes.resizeobject then
local hand = love.mouse.getSystemCursor("hand")
if curcursor ~= hand then
love.mouse.setCursor(hand)
end
end
elseif hoverobject.type == "text" and hoverobject.linkcol and not loveframes.resizeobject then
local hand = love.mouse.getSystemCursor("hand")
if curcursor ~= hand then
love.mouse.setCursor(hand)
if curcursor ~= arrow then
if hoverobject.type ~= "textinput" and hoverobject.type ~= "frame" and not hoverobject.linkcol and not loveframes.resizeobject then
love.mouse.setCursor(arrow)
elseif hoverobject.type ~= "textinput" and curcursor == ibeam then
love.mouse.setCursor(arrow)
end
end
end
if curcursor ~= arrow then
if hoverobject.type ~= "textinput" and hoverobject.type ~= "frame" and not hoverobject.linkcol and not loveframes.resizeobject then
love.mouse.setCursor(arrow)
elseif hoverobject.type ~= "textinput" and curcursor == ibeam then
else
if curcursor ~= arrow and not loveframes.resizeobject then
love.mouse.setCursor(arrow)
end
end
else
if curcursor ~= arrow and not loveframes.resizeobject then
love.mouse.setCursor(arrow)
end
end
loveframes.collisions = {}