public void SetData(WidgetDataLaunchCommandElement data) { _widgetData = data; _nameLabel.text = data.GameConsoleInvokable.DisplayName; _activeToggle.value = data.Active; _paramsContainer.Clear(); int paramIndex = 0; foreach (IGameConsoleParameter param in data.GameConsoleInvokable.Parameters) { if (param.Type == typeof(bool)) { var field = new Toggle(); bool.TryParse(TryPopParam(), out bool val); field.value = val; field.RegisterValueChangedCallback((evt) => OnParameterModified()); _paramsContainer.Add(field); } else if (param.Type == typeof(int)) { var field = new IntegerField(); int.TryParse(TryPopParam(), out int val); field.value = val; field.RegisterValueChangedCallback((evt) => OnParameterModified()); _paramsContainer.Add(field); } else if (param.Type == typeof(float)) { var field = new FloatField(); float.TryParse(TryPopParam(), out float val); field.value = val; field.RegisterValueChangedCallback((evt) => OnParameterModified()); _paramsContainer.Add(field); } else { var field = new TextField(); field.value = TryPopParam(); field.RegisterValueChangedCallback((evt) => OnParameterModified()); _paramsContainer.Add(field); } } _nameLabel.SetEnabled(data.Active); foreach (var item in _paramsContainer.Children()) { item.SetEnabled(data.Active); } OnParameterModified(); string TryPopParam() { if (data.Parameters == null) { return(default);
private WidgetDataLaunchCommandElement CreateWidgetDataElement() { var widgetData = new WidgetDataLaunchCommandElement(); widgetData.OnActiveClickCallback = OnToggleActiveClicked; widgetData.OnRemoveClickCallback = OnRemoveClicked; widgetData.OnParameterModified = (x) => Save(); return(widgetData); }
private void Bind(LaunchCommandElement v, int index) { WidgetDataLaunchCommandElement widgetData = _widgetDatas[index]; v.SetData(widgetData); }