UI.Button
From GiderosMobile
Available since: Gideros 2023.1
Class: UI
Description
Creates Button widgets. The widget can be a Button, a ToggleButton or a PopupButton.
UI.Button.new(params)
Available parameters are:
- Repeat (number) the repeat speed
- RepeatSpeedup (number) speedup factor (<1 to increase actual speed)
- NoDoubleClick (boolean) disables double clicking ability (faster response)
Parameters
params: (table) the Button widget parameters
Examples
A Button
UI.Style:setDefault(UI.Theme.PointCore_Pink)
local gui=UI.Button.new()
gui:setDimensions(96, 48)
gui:setPosition(50,50)
gui:setText("button")
gui.name = "btn1"
function gui:onWidgetAction(w)
print("Hello, "..w.name)
end
stage:addChild(gui)
Two buttons, introducing the events system
UI.Style:setDefault(UI.Theme.PointCore_Pink)
local buttonA=UI.Button.new()
buttonA:setDimensions(64, 48)
buttonA:setPosition(150,50)
buttonA:setText("btn1")
local buttonB=UI.Button.new()
buttonB:setDimensions(64, 48)
buttonB:setPosition(150,150)
buttonB:setText("btn2")
stage:addChild(buttonA)
stage:addChild(buttonB)
--Here we put the WidgetAction listener on stage.
--It will be propagated from each button up to stage through the sprite tree
--First parameter of event listeners are always the source widget of the event
function stage:onWidgetAction(w)
if w==buttonA then
print("b1")
elseif w==buttonB then
print("b2")
end
end
A button with repeat on
UI.Style:setDefault(UI.Theme.PointCore_Pink)
local gui=UI.Button.new({ Repeat=0.5, RepeatSpeedup=0.9, NoDoubleClick=true, })
gui:setDimensions(64, 48)
gui:setPosition(128, 128)
gui:setText("btn")
gui.name = "button"
stage:addChild(gui)
function gui:onWidgetAction(w)
print(w.name, "clicked")
end
A button with a long click indicator
UI.Style:setDefault(UI.Theme.PointCore_Pink)
local gui=UI.Button.new()
gui:setDimensions(64, 48)
gui:setPosition(128, 128)
gui:setText("btn")
gui.name = "button"
UI.Behavior.LongClick.new(gui,{ clsIndicator=UI.CircularProgress, szIndicator=24 })
function gui:onWidgetAction(w)
print(w.name, "clicked")
end
function gui:onWidgetLongAction(w)
print(w.name, "long clicked!")
end
local screen=UI.Screen.new() -- needed to add the long click indicator
screen:ui(gui)