60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | namespace SRF.UI | |||
|  | { | |||
|  |     using Internal; | |||
|  |     using UnityEngine; | |||
|  | 
 | |||
|  |     [ExecuteInEditMode] | |||
|  |     [AddComponentMenu(ComponentMenuPaths.StyleRoot)] | |||
|  |     public sealed class StyleRoot : SRMonoBehaviour | |||
|  |     { | |||
|  |         private StyleSheet _activeStyleSheet; | |||
|  |         public StyleSheet StyleSheet; | |||
|  | 
 | |||
|  |         public Style GetStyle(string key) | |||
|  |         { | |||
|  |             if (StyleSheet == null) | |||
|  |             { | |||
|  |                 Debug.LogWarning("[StyleRoot] StyleSheet is not set.", this); | |||
|  |                 return null; | |||
|  |             } | |||
|  | 
 | |||
|  |             return StyleSheet.GetStyle(key); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void OnEnable() | |||
|  |         { | |||
|  |             _activeStyleSheet = null; | |||
|  | 
 | |||
|  |             if (StyleSheet != null) | |||
|  |             { | |||
|  |                 OnStyleSheetChanged(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private void OnDisable() | |||
|  |         { | |||
|  |             OnStyleSheetChanged(); | |||
|  |         } | |||
|  | 
 | |||
|  |         private void Update() | |||
|  |         { | |||
|  |             if (_activeStyleSheet != StyleSheet) | |||
|  |             { | |||
|  |                 OnStyleSheetChanged(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         private void OnStyleSheetChanged() | |||
|  |         { | |||
|  |             _activeStyleSheet = StyleSheet; | |||
|  | 
 | |||
|  |             BroadcastMessage("SRStyleDirty", SendMessageOptions.DontRequireReceiver); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void SetDirty() | |||
|  |         { | |||
|  |             _activeStyleSheet = null; | |||
|  |         } | |||
|  |     } | |||
|  | } |