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