Toggle
GnosisUIElementToggle is a control element (elementId = "Toggle") for boolean selection.
It inherits GnosisUIElementControl, so it also uses control identity fields (viewId, controlIdMode, controlId) configured on the component.
Runtime parameters
In addition to built-in element parameters, GnosisUIElementToggle supports:
isOn(bool) - current toggle value.onValueChangedInvokes(list) - list of service invokes to execute when the toggle value changes.- each item shape:
{ service, function, parameters? } - runtime adds/updates
valueon the invoke payload before calling the function
- each item shape:
Example - create a toggle under a view
GameUI.CreateToggle.Example.cs
private GnosisFunctionResult CreateFullscreenToggle()
{
if (Context?.Store == null || Context.CallService == null)
return GnosisFunctionResult.Fail("No context");
var payload = GnosisNode.CreateObject(Context.Store);
payload.Set("elementId", "Toggle");
payload.Set("parentId", "ui.SettingsView");
var parameters = GnosisNode.CreateObject(Context.Store);
parameters.Set("name", "FullscreenToggle");
parameters.Set("isOn", true);
var invokes = GnosisNode.CreateList(Context.Store);
var setVsync = GnosisNode.CreateObject(Context.Store);
setVsync.Set("service", "Setting");
setVsync.Set("function", "SetBool");
var setVsyncArgs = GnosisNode.CreateObject(Context.Store);
setVsyncArgs.Set("key", "settings.vsyncEnabled");
setVsyncArgs.Set("value", false); // Placeholder; runtime overwrites this with live toggle value.
setVsync.Set("parameters", setVsyncArgs);
invokes.Add(setVsync);
parameters.Set("onValueChangedInvokes", invokes);
payload.Set("parameters", parameters);
return CallService("GameUI", "CreateElement", payload);
}Example - JSON payload shape
{
"service": "GameUI",
"function": "CreateElement",
"parameters": {
"elementId": "Toggle",
"parentId": "ui.SettingsView",
"parameters": {
"name": "FullscreenToggle",
"isOn": true,
"onValueChangedInvokes": [
{
"service": "Setting",
"function": "SetBool",
"parameters": {
"key": "settings.vsyncEnabled",
"value": false
}
}
]
}
}
}Example - inspect schema via DescribeUIElement
GameUI.DescribeToggle.Example.cs
private GnosisFunctionResult DescribeToggleElement()
{
if (Context?.Store == null || Context.CallService == null)
return GnosisFunctionResult.Fail("No context");
var payload = GnosisNode.CreateObject(Context.Store);
payload.Set("elementId", "Toggle");
return CallService("GameUI", "DescribeUIElement", payload);
}Last updated on