Immediate Mode GUI library for LÖVE
up() places the next cell above the previous one, and left() places the next cell to the left of the previous one. down() and right() are aliases to row()/col(), for symmetry. Also added are nextX() variants for function. |
||
---|---|---|
docs | ||
.gitignore | ||
button.lua | ||
checkbox.lua | ||
core.lua | ||
imagebutton.lua | ||
init.lua | ||
input.lua | ||
label.lua | ||
layout.lua | ||
license.txt | ||
README.md | ||
slider.lua | ||
theme.lua |
SUIT
Simple User Interface Toolkit for LÖVE.
SUIT is an immediate mode GUI library.
Documentation?
Over at readthedocs.
Looks?
Here is how SUIT looks like with the default theme:
More info and code is over at readthedocs.
Hello, World!
-- suit up
local suit = require 'suit'
-- storage for text input
local input = {text = ""}
-- all the UI is defined in love.update or functions that are called from here
function love.update(dt)
-- put the layout origin at position (100,100)
-- the layout will grow down and to the right from this point
suit.layout:reset(100,100)
-- put an input widget at the layout origin, with a cell size of 200 by 30 pixels
suit.Input(input, suit.layout:row(200,30))
-- put a label that displays the text below the first cell
-- the cell size is the same as the last one (200x30 px)
-- the label text will be aligned to the left
suit.Label("Hello, "..input.text, {align = "left"}, suit.layout:row())
-- put an empty cell that has the same size as the last cell (200x30 px)
suit.layout:row()
-- put a button of size 200x30 px in the cell below
-- if the button is pressed, quit the game
if suit.Button("Close", suit.layout:row()).hit then
love.event.quit()
end
end
function love.draw()
-- draw the gui
suit.draw()
end
function love.textinput(t)
-- forward text input to SUIT
suit.textinput(t)
end
function love.keypressed(key)
-- forward keypresses to SUIT
suit.keypressed(key)
end