How To Call It
This is a global function: call it directly, without a table prefix.
Adds a tabbed layout to a Setting dialog; define the fields of each tab with tab(...).
Documented for app version 1.0.51Updated:
This is a global function: call it directly, without a table prefix.
In dialog and HUD flow, validate user input and complete the sequence with close/dispose steps to keep the UI stable.
Parameters: tabs, selectedIndex?. Returns a field to add to a dialog with builder:add(key, field). Fields chain methods such as :required(true), :visibleWhen(field, value, matches) and :helper(text).
You can combine it with Setting.builder(), Dialog, Checkbox, EditText, Hud, and Console to build richer operator-facing flows.
The snippet below is a starter pattern that can be applied directly in runtime flow.
local builder = Setting.builder()
local tabs = TabLayout({}, 0)
tabs:tab("General", { "delay" }, {}, true)
builder:add("tabs", tabs)
builder:add("delay", EditText("500", 1, "Delay (ms)"))From foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.
local builder = Setting.builder()
local tabs = TabLayout({}, 0)
tabs:tab("General", { "delay" }, {}, true)
builder:add("tabs", tabs)
builder:add("delay", EditText("500", 1, "Delay (ms)"))local stepOk = true
local builder = Setting.builder()
local tabs = TabLayout({}, 0)
tabs:tab("General", { "delay" }, {}, true)
builder:add("tabs", tabs)
builder:add("delay", EditText("500", 1, "Delay (ms)"))
if stepOk then
wait(200)
endlocal ok, err = pcall(function()
local builder = Setting.builder()
local tabs = TabLayout({}, 0)
tabs:tab("General", { "delay" }, {}, true)
builder:add("tabs", tabs)
builder:add("delay", EditText("500", 1, "Delay (ms)"))
end)
if not ok then
print("API step failed: TabLayout(tabs, selectedIndex?): " .. tostring(err))
requestStop()
end-- In dialog and HUD flow, validate user input and complete the sequence with close/dispose steps to keep the UI stable.
local function run_tablayout_step()
local builder = Setting.builder()
local tabs = TabLayout({}, 0)
tabs:tab("General", { "delay" }, {}, true)
builder:add("tabs", tabs)
builder:add("delay", EditText("500", 1, "Delay (ms)"))
end
local ok, err = pcall(run_tablayout_step)
if not ok then
toast("Step failed")
print(err)
endlocal dialog = Setting.builder()
dialog:add("delay", EditText("500", 1, "Delay"))
dialog:add("enabled", Checkbox(true, "Enabled"))
Setting.setDialog(dialog:build())
Setting.show()
local builder = Setting.builder()
local tabs = TabLayout({}, 0)
tabs:tab("General", { "delay" }, {}, true)
builder:add("tabs", tabs)
builder:add("delay", EditText("500", 1, "Delay (ms)"))