Files
FlexLove/examples/ThemeInitDemo.lua
2025-10-13 09:03:23 -04:00

105 lines
2.2 KiB
Lua

-- Example: Setting theme in Gui.init()
-- NOTE: This should be called in love.load() after LÖVE graphics is initialized
local FlexLove = require("FlexLove")
local Gui = FlexLove.GUI
local Color = FlexLove.Color
local Theme = FlexLove.Theme
-- In love.load():
-- Initialize GUI with theme
Gui.init({
baseScale = { width = 1920, height = 1080 },
theme = "space" -- Load and activate the space theme
})
-- Alternative: Load theme manually if Gui.init() is called before love.load()
-- Theme.load("space")
-- Theme.setActive("space")
-- Now all elements can use the theme
local panel = Gui.new({
x = 100,
y = 100,
width = 400,
height = 300,
themeComponent = "panel",
padding = { top = 20, right = 20, bottom = 20, left = 20 },
})
local button1 = Gui.new({
parent = panel,
x = 20,
y = 20,
width = 150,
height = 50,
text = "Normal Button",
textAlign = "center",
textColor = Color.new(1, 1, 1, 1),
themeComponent = "button",
callback = function(element, event)
if event.type == "click" then
print("Button clicked!")
end
end
})
local button2 = Gui.new({
parent = panel,
x = 20,
y = 80,
width = 150,
height = 50,
text = "Disabled",
textAlign = "center",
textColor = Color.new(0.6, 0.6, 0.6, 1),
themeComponent = "button",
disabled = true, -- Shows disabled state
callback = function(element, event)
print("This won't fire!")
end
})
local input1 = Gui.new({
parent = panel,
x = 20,
y = 140,
width = 200,
height = 40,
text = "Type here...",
textColor = Color.new(1, 1, 1, 1),
themeComponent = "input",
})
local input2 = Gui.new({
parent = panel,
x = 20,
y = 190,
width = 200,
height = 40,
text = "Active input",
textColor = Color.new(1, 1, 1, 1),
themeComponent = "input",
active = true, -- Shows active/focused state
})
local input3 = Gui.new({
parent = panel,
x = 20,
y = 240,
width = 200,
height = 40,
text = "Disabled input",
textColor = Color.new(0.6, 0.6, 0.6, 1),
themeComponent = "input",
disabled = true, -- Shows disabled state
})
return {
panel = panel,
button1 = button1,
button2 = button2,
input1 = input1,
input2 = input2,
input3 = input3,
}