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() {}
 | 
						|
    }
 | 
						|
}
 |