69 lines
No EOL
1.9 KiB
Lua
69 lines
No EOL
1.9 KiB
Lua
local lwtk = require("lwtk")
|
|
|
|
local Application = lwtk.Application
|
|
local Column = lwtk.Column
|
|
local Row = lwtk.Row
|
|
local PushButton = lwtk.PushButton
|
|
local TextInput = lwtk.TextInput
|
|
local TitleText = lwtk.TitleText
|
|
local Space = lwtk.Space
|
|
|
|
local app = Application("example01.lua")
|
|
|
|
local function quit()
|
|
app:close()
|
|
end
|
|
|
|
local win = app:newWindow {
|
|
title = "example01",
|
|
Column {
|
|
id = "c1",
|
|
TitleText { text = "What's your name?" },
|
|
TextInput { id = "i1", focus = true, style = { Columns = 40 } },
|
|
Row {
|
|
Space {},
|
|
PushButton { id = "b1", text = "&OK", disabled = true,
|
|
default = true },
|
|
|
|
PushButton { id = "b2", text = "&Quit", onClicked = quit },
|
|
Space {}
|
|
}
|
|
},
|
|
Column {
|
|
id = "c2",
|
|
visible = false,
|
|
Space {},
|
|
TitleText { id = "t2", style = { TextAlign = "center" } },
|
|
Space {},
|
|
Row {
|
|
Space {},
|
|
PushButton { id = "b3", text = "&Again" },
|
|
|
|
PushButton { id = "b4", text = "&Quit", default = true,
|
|
onClicked = quit },
|
|
Space {}
|
|
}
|
|
}
|
|
}
|
|
|
|
win:childById("c1"):setOnInputChanged(function(widget, input)
|
|
widget:childById("b1"):setDisabled(input.text == "")
|
|
end)
|
|
|
|
win:childById("b1"):setOnClicked(function(widget)
|
|
win:childById("t2"):setText("Hello "..win:childById("i1").text.."!")
|
|
win:childById("c1"):setVisible(false)
|
|
win:childById("c2"):setVisible(true)
|
|
end)
|
|
|
|
win:childById("b3"):setOnClicked(function(widget)
|
|
win:childById("i1"):setText("")
|
|
win:childById("i1"):setFocus()
|
|
win:childById("t2"):setText("")
|
|
win:childById("c1"):setVisible(true)
|
|
win:childById("c2"):setVisible(false)
|
|
end)
|
|
|
|
win:show()
|
|
|
|
app:runEventLoop() |