mirror of
https://github.com/airstruck/luigi.git
synced 2025-11-18 12:25:06 +00:00
74 lines
2.0 KiB
Lua
74 lines
2.0 KiB
Lua
local Layout = require 'luigi.layout'
|
|
local Backend = require 'luigi.backend'
|
|
|
|
local window = Layout {
|
|
type = 'window',
|
|
icon = 'logo.png',
|
|
title = 'Test window',
|
|
width = 300,
|
|
height = 200,
|
|
minwidth = 200,
|
|
minheight = 100,
|
|
maxwidth = 640,
|
|
maxheight = 480,
|
|
left = 400,
|
|
top = 400,
|
|
{ type = 'panel',
|
|
{
|
|
text = 'This is an example of the "window" widget type.',
|
|
align = 'middle center', wrap = true,
|
|
},
|
|
{ flow = 'x', height = 'auto',
|
|
{ type = 'button', id = 'maximize', text = 'Maximize' },
|
|
{ type = 'button', id = 'minimize', text = 'Minimize' },
|
|
{ type = 'button', id = 'restore', text = 'Restore' },
|
|
},
|
|
{ flow = 'x', height = 'auto',
|
|
{
|
|
{ type = 'label', text = 'Left' },
|
|
{ type = 'text', id = 'left' },
|
|
},
|
|
{
|
|
{ type = 'label', text = 'Top' },
|
|
{ type = 'text', id = 'top' },
|
|
},
|
|
{
|
|
{ type = 'label', text = 'Width' },
|
|
{ type = 'text', id = 'width' },
|
|
},
|
|
{
|
|
{ type = 'label', text = 'Height' },
|
|
{ type = 'text', id = 'height' },
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
window.maximize:onPress(function ()
|
|
window.root.maximized = true
|
|
end)
|
|
window.minimize:onPress(function ()
|
|
window.root.minimized = true
|
|
end)
|
|
window.restore:onPress(function ()
|
|
window.root.maximized = false
|
|
end)
|
|
window:onReshape(function (event)
|
|
-- local w, h = Backend:getWindowSize()
|
|
-- use widget.attributes to do a raw update, avoid firing onChange
|
|
window.width.attributes.value = tostring(event.width)
|
|
window.height.attributes.value = tostring(event.height)
|
|
end)
|
|
window:onChange(function (event)
|
|
local target = event.target
|
|
if target.type ~= 'text' then return end
|
|
local id = target.id
|
|
if id and window.root.attributeDescriptors[id] then
|
|
window.root[id] = tonumber(event.value)
|
|
end
|
|
end)
|
|
|
|
window:show()
|
|
|
|
Backend.run()
|