local pop = require "pop" local lg = love.graphics local visualTestsShown = false local testsRun = false local debugDrawEnabled = false function love.load() pop.text(nil, "Press \"s\" to show objects for visual testing/demo.\nPress \"t\" to run tests.\nPress \"d\" to toggle debug draw."):move(2, 2) --TODO correct the fact that the size is wrong here! (height doesn't take into account \n) --NOTE width? Is width calculated correctly when \n's exist? TEST THIS (also test tabs) pop.text(nil, "This is a test\ncollection of strings to see how width is determined.\nLooks like it takes width of widest line!"):move(30, 120) pop.element():align("right", "bottom"):setSize(25, 25):move(-5, -5) end function love.update(dt) pop.update(dt) end function love.draw() pop.draw() if debugDrawEnabled then pop.debugDraw() end end function love.textinput(text) pop.textinput(text) end function love.mousepressed(button, x, y) pop.mousepressed(button, x, y) end function love.mousereleased(button, x, y) pop.mousereleased(button, x, y) end function love.keypressed(key) if key == "escape" then love.event.quit() else if (key == "s") and (not visualTestsShown) then -- old visual tests local align = pop.box():align("center", "center"):setSize(200, 200) pop.box(align):align("left", "top"):setSize(75, 10):setColor(255, 0, 255, 255) pop.box(align):align("center", "top"):setColor(100, 100, 100) pop.box(align, {0, 255, 0, 255}):setSize(20, 5):align("right", "top") pop.box(align):align("left", "center"):setColor(0, 0, 255) pop.box(align):align("center", "center"):setSize(90, 90):setColor(255, 255, 255) pop.box(align):align("right", "center"):setColor(255, 0, 0) pop.box(align):align("left", "bottom"):setColor(0, 255, 0):setSize(nil, 40) pop.box(align):align("center", "bottom"):setColor(255, 255, 0) pop.box(align):align("right", "bottom"):setColor(0, 255, 255):setSize(40, 40) --pop.box(nil, {255, 0, 0, 255}):align("left", "top"):setSize(50, 50) --TODO adjust z-height of elements pop.text(nil, "Hello World!"):align("center"):setText("Hey, I've been modified!")--:move(0, 18) pop.text(nil, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()-=_+[]{}\\|:;\"',./<>?`~"):align("center", "bottom") visualTestsShown = true elseif (key == "t") and (not testsRun) then require "test" elseif key == "d" then debugDrawEnabled = not debugDrawEnabled end pop.keypressed(key) end end function love.keyreleased(key) pop.keyreleased(key) end