Skip to Content

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 value on the invoke payload before calling the function

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