Skip to content

Latest commit

 

History

History
76 lines (55 loc) · 1.79 KB

File metadata and controls

76 lines (55 loc) · 1.79 KB

SUIT (Refactored)

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:

Demo of all widgets

More info and code is over at readthedocs.

Hello, World!

-- suit up
local suit = require('SUIT').new()

-- storage for text input
local input = {text = ""}

-- make love use font which support CJK text
function love.load()
	love.graphics.setNewFont(32)
end

-- 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:TextInput(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.textedited(text, start, length)
	-- for IME input
	suit:textedited(text, start, length)
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