/// <summary> /// Sets the selected value to default and deselects all control nodes. /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> public void OnValueDeselected(object sender, SelectedValueEventArgs eventArgs) { SetValue(DefaultValue); foreach (var item in _horizontalContainer.GetChildren()) { if (!(item is ClickableControl control)) { continue; } control.Deselect(); } }
/// <summary> /// Changes the selected value to the specified value and deselects all other control nodes. /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> public void OnValueSelected(object sender, SelectedValueEventArgs eventArgs) { SetValue(eventArgs.SelectedValue); foreach (ClickableControl item in _horizontalContainer.GetChildren()) { item.Deselect(); if (item.Value <= eventArgs.SelectedValue) { item.SetSelectedTexture(); if (item.Value == eventArgs.SelectedValue) { item.Select(); } } } }
/// <summary> /// Handles the pressed event. Changes the control's texture and inverts value of IsSelected. /// /// Invokes Selected or Deselected event handler. /// </summary> private void HandleClick() { var args = new SelectedValueEventArgs { SelectedValue = Value }; if (!IsSelected) { this.TextureNormal = _selectedTexture; IsSelected = true; Selected?.Invoke(this, args); } else { this.TextureNormal = _deselectedTexture; IsSelected = false; Deselected?.Invoke(this, args); } }
/// <summary> /// Changes the selected value to the specified value. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void ChangeValue(object sender, SelectedValueEventArgs e) { SetValue(e.SelectedValue); }
/// <summary> /// Removes the specified value from the set of selected values. /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> public void OnValueRemoved(object sender, SelectedValueEventArgs eventArgs) { SelectedValue.Remove(eventArgs.SelectedValue); }
/// <summary> /// Adds the specified value to the set of selected values. /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> public void OnValueAdded(object sender, SelectedValueEventArgs eventArgs) { SelectedValue.Add(eventArgs.SelectedValue); }