| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | 
							- using System;
 
- using UnityEngine;
 
- using UnityEngine.UI;
 
- namespace XCharts.Runtime
 
- {
 
-     /// <summary>
 
-     /// UI组件基类。
 
-     /// </summary>
 
-     [ExecuteInEditMode]
 
-     [RequireComponent(typeof(RectTransform))]
 
-     [DisallowMultipleComponent]
 
-     public class UIComponent : BaseGraph
 
-     {
 
-         [SerializeField] private bool m_DebugModel = false;
 
-         [SerializeField] protected UIComponentTheme m_Theme = new UIComponentTheme();
 
-         [SerializeField] private Background m_Background = new Background() { show = true };
 
-         protected bool m_DataDirty;
 
-         private ThemeType m_CheckTheme = 0;
 
-         public override HideFlags chartHideFlags { get { return m_DebugModel ? HideFlags.None : HideFlags.HideInHierarchy; } }
 
-         public UIComponentTheme theme { get { return m_Theme; } set { m_Theme = value; } }
 
-         /// <summary>
 
-         /// 背景样式。
 
-         /// </summary>
 
-         public Background background { get { return m_Background; } set { m_Background = value; color = Color.white; } }
 
-         /// <summary>
 
-         /// Update chart theme.
 
-         /// ||切换内置主题。
 
-         /// </summary>
 
-         /// <param name="theme">theme</param>
 
-         public bool UpdateTheme(ThemeType theme)
 
-         {
 
-             if (theme == ThemeType.Custom)
 
-             {
 
-                 Debug.LogError("UpdateTheme: not support switch to Custom theme.");
 
-                 return false;
 
-             }
 
-             if (m_Theme.sharedTheme == null)
 
-                 m_Theme.sharedTheme = XCThemeMgr.GetTheme(ThemeType.Default);
 
-             m_Theme.sharedTheme.CopyTheme(theme);
 
-             m_Theme.SetAllDirty();
 
-             return true;
 
-         }
 
-         [Since("v3.9.0")]
 
-         public void SetDataDirty()
 
-         {
 
-             m_DataDirty = true;
 
-             m_RefreshChart = true;
 
-         }
 
-         public override void SetAllDirty()
 
-         {
 
-             base.SetAllDirty();
 
-             SetDataDirty();
 
-         }
 
-         public override void SetVerticesDirty()
 
-         {
 
-             base.SetVerticesDirty();
 
-             m_RefreshChart = true;
 
-         }
 
-         protected override void InitComponent()
 
-         {
 
-             base.InitComponent();
 
-             if (m_Theme.sharedTheme == null)
 
-                 m_Theme.sharedTheme = XCThemeMgr.GetTheme(ThemeType.Default);
 
-             UIHelper.InitBackground(this);
 
-         }
 
-         protected override void CheckComponent()
 
-         {
 
-             base.CheckComponent();
 
-             if (m_Theme.anyDirty)
 
-             {
 
-                 if (m_Theme.componentDirty)
 
-                 {
 
-                     SetAllComponentDirty();
 
-                 }
 
-                 if (m_Theme.vertsDirty) RefreshGraph();
 
-                 m_Theme.ClearDirty();
 
-             }
 
-         }
 
-         protected override void SetAllComponentDirty()
 
-         {
 
-             base.SetAllComponentDirty();
 
-             InitComponent();
 
-         }
 
-         protected override void OnDrawPainterBase(VertexHelper vh, Painter painter)
 
-         {
 
-             vh.Clear();
 
-             UIHelper.DrawBackground(vh, this);
 
-         }
 
-         protected override void Awake()
 
-         {
 
-             CheckTheme(true);
 
-             base.Awake();
 
-         }
 
-         protected override void Update()
 
-         {
 
-             base.Update();
 
-             if (m_DataDirty)
 
-             {
 
-                 m_DataDirty = false;
 
-                 DataDirty();
 
-             }
 
-         }
 
- #if UNITY_EDITOR
 
-         protected override void Reset()
 
-         {
 
-             base.Reset();
 
-             Awake();
 
-         }
 
-         protected override void OnValidate()
 
-         {
 
-             base.OnValidate();
 
-         }
 
- #endif
 
-         protected virtual void DataDirty()
 
-         {
 
-         }
 
-         protected virtual void CheckTheme(bool firstInit = false)
 
-         {
 
-             if (m_Theme.sharedTheme == null)
 
-             {
 
-                 m_Theme.sharedTheme = XCThemeMgr.GetTheme(ThemeType.Default);
 
-             }
 
-             if (firstInit)
 
-             {
 
-                 m_CheckTheme = m_Theme.themeType;
 
-             }
 
-             if (m_Theme.sharedTheme != null && m_CheckTheme != m_Theme.themeType)
 
-             {
 
-                 m_CheckTheme = m_Theme.themeType;
 
-                 m_Theme.sharedTheme.CopyTheme(m_CheckTheme);
 
- #if UNITY_EDITOR
 
-                 UnityEditor.EditorUtility.SetDirty(this);
 
- #endif
 
-                 SetAllDirty();
 
-                 SetAllComponentDirty();
 
-                 OnThemeChanged();
 
-             }
 
-         }
 
-         protected virtual void OnThemeChanged() { }
 
-     }
 
- }
 
 
  |