You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CrowdControl/Assets/3rd/StompyRobot/SRDebugger/Scripts/UI/Controls/Data/OptionsControlBase.cs

75 lines
2.0 KiB
C#

3 months ago
namespace SRDebugger.UI.Controls
{
using Internal;
using SRF;
using UnityEngine.UI;
public abstract class OptionsControlBase : SRMonoBehaviourEx
{
private bool _selectionModeEnabled;
[RequiredField] public Toggle SelectionModeToggle;
public OptionDefinition Option;
public bool SelectionModeEnabled
{
get { return _selectionModeEnabled; }
set
{
if (value == _selectionModeEnabled)
{
return;
}
_selectionModeEnabled = value;
SelectionModeToggle.gameObject.SetActive(_selectionModeEnabled);
if (SelectionModeToggle.graphic != null)
{
SelectionModeToggle.graphic.CrossFadeAlpha(IsSelected ? _selectionModeEnabled ? 1.0f : 0.2f : 0f, 0,
true);
}
}
}
public bool IsSelected
{
get { return SelectionModeToggle.isOn; }
set
{
SelectionModeToggle.isOn = value;
if (SelectionModeToggle.graphic != null)
{
SelectionModeToggle.graphic.CrossFadeAlpha(value ? _selectionModeEnabled ? 1.0f : 0.2f : 0f, 0, true);
}
}
}
protected override void Awake()
{
base.Awake();
IsSelected = false;
SelectionModeToggle.gameObject.SetActive(false);
}
protected override void OnEnable()
{
base.OnEnable();
// Reapply selection indicator alpha (is reset when disabled / reenabled)
if (SelectionModeToggle.graphic != null)
{
SelectionModeToggle.graphic.CrossFadeAlpha(IsSelected ? _selectionModeEnabled ? 1.0f : 0.2f : 0f, 0,
true);
}
}
public virtual void Refresh() {}
}
}