| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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;
- }
- }
- }
|