Nuklear module for the LÖVE game engine.
Provides a lightweight immediate mode GUI for LÖVE games.
-- Simple UI example.
local nuklear = require 'nuklear'
local ui
function love.load()
ui = nuklear.newUI()
end
local combo = {value = 1, items = {'A', 'B', 'C'}}
function love.update(dt)
ui:frameBegin()
if ui:windowBegin('Simple Example', 100, 100, 200, 160,
'border', 'title', 'movable') then
ui:layoutRow('dynamic', 30, 1)
ui:label('Hello, world!')
ui:layoutRow('dynamic', 30, 2)
ui:label('Combo box:')
if ui:combobox(combo, combo.items) then
print('Combo!', combo.items[combo.value])
end
ui:layoutRow('dynamic', 30, 3)
ui:label('Buttons:')
if ui:button('Sample') then
print('Sample!')
end
if ui:button('Button') then
print('Button!')
end
end
ui:windowEnd()
ui:frameEnd()
end
function love.draw()
ui:draw()
end
function love.keypressed(key, scancode, isrepeat)
ui:keypressed(key, scancode, isrepeat)
end
function love.keyreleased(key, scancode)
ui:keyreleased(key, scancode)
end
function love.mousepressed(x, y, button, istouch, presses)
ui:mousepressed(x, y, button, istouch, presses)
end
function love.mousereleased(x, y, button, istouch, presses)
ui:mousereleased(x, y, button, istouch, presses)
end
function love.mousemoved(x, y, dx, dy, istouch)
ui:mousemoved(x, y, dx, dy, istouch)
end
function love.textinput(text)
ui:textinput(text)
end
function love.wheelmoved(x, y)
ui:wheelmoved(x, y)
end
Windows binaries are available for each release.
To build the library yourself, grab the code with:
$ git clone --recursive https://github.com/keharriso/love-nuklear.git
Next, you need to compile the code to a native Lua module.
cmake
and luajit
or lua51-luajit
(for openSUSE) packages installed, as well as libluajit-5.1-dev
(for Ubuntu/Debian), luajit-devel
(for Fedora), or lua51-luajit-devel
(for openSUSE) if your distro has one of these packages.love-nuklear
called love-nuklear-build
.love-nuklear-build
.$ cmake -DCMAKE_BUILD_TYPE=Release ../love-nuklear
$ make
nuklear.so
in the build folder.LÖVE-Nuklear is also available as a Guix package, and can thus be directly downloaded and built via:
$ guix package --install love-nuklear
$ mingw32-make
lua51.dll
inside the LuaJIT src
folder.love-nuklear
folder.src
folder.lua51.dll
inside the LuaJIT src
folder.$ mingw32-make
nuklear.dll
inside the build folder.src
then
execute msvcbuild.bat
. This will create lua51.dll, lua51.lib, and luajit.exelove-nuklear
folder.set "LUA_DIR=<path to directory at step 3>"
cmake -Bbuild -H. -A Win32 -DLUA_INCLUDE_DIR=%LUA_DIR%\src -DLUA_LIBRARY=%LUA_DIR%\src\lua51.lib -DCMAKE_INSTALL_PREFIX=%CD%\install
.
If you previously compile LuaJIT using x64 VS command prompt, replace Win32
with x64
at above command.cmake --build build --config Release --target install
and you'll found nuklear.dll
inside "install" folder.A complete description of all functions and style properties, alongside additional examples, is available at the LÖVE-Nuklear wiki.
Copyright (c) 2016 Kevin Harrison, released under the MIT License (see LICENSE for details).