75 lines
2.0 KiB
C#
75 lines
2.0 KiB
C#
|
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() {}
|
|||
|
}
|
|||
|
}
|