| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 | 
							- using System;
 
- using UnityEngine;
 
- #if dUI_TextMeshPro
 
- using TMPro;
 
- #endif
 
- namespace XCharts.Runtime
 
- {
 
-     /// <summary>
 
-     /// Settings related to text.
 
-     /// ||文本的相关设置。
 
-     /// </summary>
 
-     [Serializable]
 
-     public class TextStyle : ChildComponent
 
-     {
 
-         [SerializeField] private bool m_Show = true;
 
-         [SerializeField] private Font m_Font;
 
-         [SerializeField] private bool m_AutoWrap = false;
 
-         [SerializeField] private bool m_AutoAlign = true;
 
-         [SerializeField] private float m_Rotate = 0;
 
-         [SerializeField] private bool m_AutoColor = false;
 
-         [SerializeField] private Color m_Color = Color.clear;
 
-         [SerializeField] private int m_FontSize = 0;
 
-         [SerializeField] private FontStyle m_FontStyle = FontStyle.Normal;
 
-         [SerializeField] private float m_LineSpacing = 1f;
 
-         [SerializeField] private TextAnchor m_Alignment = TextAnchor.MiddleCenter;
 
- #if dUI_TextMeshPro
 
-         [SerializeField] private TMP_FontAsset m_TMPFont;
 
-         [SerializeField] private FontStyles m_TMPFontStyle = FontStyles.Normal;
 
-         [SerializeField] private TextAlignmentOptions m_TMPAlignment = TextAlignmentOptions.Left;
 
-         [SerializeField][Since("v3.1.0")] private TMP_SpriteAsset m_TMPSpriteAsset;
 
- #endif
 
-         public bool show
 
-         {
 
-             get { return m_Show; }
 
-             set { if (PropertyUtil.SetStruct(ref m_Show, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// Rotation of text.
 
-         /// ||文本的旋转。
 
-         /// [default: `0f`]
 
-         /// </summary>
 
-         public float rotate
 
-         {
 
-             get { return m_Rotate; }
 
-             set { if (PropertyUtil.SetStruct(ref m_Rotate, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// 是否开启自动颜色。当开启时,会自动设置颜色。
 
-         /// </summary>
 
-         public bool autoColor
 
-         {
 
-             get { return m_AutoColor; }
 
-             set { if (PropertyUtil.SetStruct(ref m_AutoColor, value)) SetAllDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// the color of text.
 
-         /// ||文本的颜色。
 
-         /// [default: `Color.clear`]
 
-         /// </summary>
 
-         public Color color
 
-         {
 
-             get { return m_Color; }
 
-             set { if (PropertyUtil.SetColor(ref m_Color, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// the font of text. When `null`, the theme's font is used by default.
 
-         /// ||文本字体。
 
-         /// [default: null]
 
-         /// </summary>
 
-         public Font font
 
-         {
 
-             get { return m_Font; }
 
-             set { if (PropertyUtil.SetClass(ref m_Font, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// font size.
 
-         /// ||文本字体大小。
 
-         /// [default: 18]
 
-         /// </summary>
 
-         public int fontSize
 
-         {
 
-             get { return m_FontSize; }
 
-             set { if (PropertyUtil.SetStruct(ref m_FontSize, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// font style.
 
-         /// ||文本字体的风格。
 
-         /// [default: FontStyle.Normal]
 
-         /// </summary>
 
-         public FontStyle fontStyle
 
-         {
 
-             get { return m_FontStyle; }
 
-             set { if (PropertyUtil.SetStruct(ref m_FontStyle, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// text line spacing.
 
-         /// ||行间距。
 
-         /// [default: 1f]
 
-         /// </summary>
 
-         public float lineSpacing
 
-         {
 
-             get { return m_LineSpacing; }
 
-             set { if (PropertyUtil.SetStruct(ref m_LineSpacing, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// 是否自动换行。
 
-         /// </summary>
 
-         public bool autoWrap
 
-         {
 
-             get { return m_AutoWrap; }
 
-             set { if (PropertyUtil.SetStruct(ref m_AutoWrap, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// 文本是否让系统自动选对齐方式。为false时才会用alignment。
 
-         /// </summary>
 
-         public bool autoAlign
 
-         {
 
-             get { return m_AutoAlign; }
 
-             set { if (PropertyUtil.SetStruct(ref m_AutoAlign, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// 对齐方式。
 
-         /// </summary>
 
-         public TextAnchor alignment
 
-         {
 
-             get { return m_Alignment; }
 
-             set { if (PropertyUtil.SetStruct(ref m_Alignment, value)) SetComponentDirty(); }
 
-         }
 
- #if dUI_TextMeshPro
 
-         /// <summary>
 
-         /// the font of textmeshpro.
 
-         /// ||TextMeshPro字体。
 
-         /// </summary>
 
-         public TMP_FontAsset tmpFont
 
-         {
 
-             get { return m_TMPFont; }
 
-             set { if (PropertyUtil.SetClass(ref m_TMPFont, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// the font style of TextMeshPro.
 
-         /// ||TextMeshPro字体类型。
 
-         /// </summary>
 
-         public FontStyles tmpFontStyle
 
-         {
 
-             get { return m_TMPFontStyle; }
 
-             set { if (PropertyUtil.SetStruct(ref m_TMPFontStyle, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// the text alignment of TextMeshPro.
 
-         /// ||TextMeshPro字体对齐方式。
 
-         /// </summary>
 
-         public TextAlignmentOptions tmpAlignment
 
-         {
 
-             get { return m_TMPAlignment; }
 
-             set { if (PropertyUtil.SetStruct(ref m_TMPAlignment, value)) SetComponentDirty(); }
 
-         }
 
-         /// <summary>
 
-         /// the sprite asset of TextMeshPro.
 
-         /// ||TextMeshPro的Sprite Asset。
 
-         /// </summary>
 
-         public TMP_SpriteAsset tmpSpriteAsset
 
-         {
 
-             get { return m_TMPSpriteAsset; }
 
-             set { if (PropertyUtil.SetClass(ref m_TMPSpriteAsset, value)) SetComponentDirty(); }
 
-         }
 
- #endif
 
-         public TextStyle() { }
 
-         public TextStyle(int fontSize)
 
-         {
 
-             this.fontSize = fontSize;
 
-         }
 
-         public TextStyle(int fontSize, FontStyle fontStyle)
 
-         {
 
-             this.fontSize = fontSize;
 
-             this.fontStyle = fontStyle;
 
-         }
 
-         public TextStyle(int fontSize, FontStyle fontStyle, Color color)
 
-         {
 
-             this.fontSize = fontSize;
 
-             this.fontStyle = fontStyle;
 
-             this.color = color;
 
-         }
 
-         public TextStyle(int fontSize, FontStyle fontStyle, Color color, int rorate)
 
-         {
 
-             this.fontSize = fontSize;
 
-             this.fontStyle = fontStyle;
 
-             this.color = color;
 
-             this.rotate = rotate;
 
-         }
 
-         public void Copy(TextStyle textStyle)
 
-         {
 
-             font = textStyle.font;
 
-             rotate = textStyle.rotate;
 
-             color = textStyle.color;
 
-             fontSize = textStyle.fontSize;
 
-             fontStyle = textStyle.fontStyle;
 
-             lineSpacing = textStyle.lineSpacing;
 
-             alignment = textStyle.alignment;
 
-             autoWrap = textStyle.autoWrap;
 
-             autoAlign = textStyle.autoAlign;
 
- #if dUI_TextMeshPro
 
-             m_TMPFont = textStyle.tmpFont;
 
-             m_TMPFontStyle = textStyle.tmpFontStyle;
 
-             m_TMPSpriteAsset = textStyle.tmpSpriteAsset;
 
- #endif
 
-         }
 
-         public void UpdateAlignmentByLocation(Location location)
 
-         {
 
- #if dUI_TextMeshPro
 
-             m_TMPAlignment = location.runtimeTMPTextAlignment;
 
- #else
 
-             m_Alignment = location.runtimeTextAlignment;
 
- #endif
 
-         }
 
-         public Color GetColor(Color defaultColor)
 
-         {
 
-             if (ChartHelper.IsClearColor(color))
 
-                 return defaultColor;
 
-             else
 
-                 return color;
 
-         }
 
-         public int GetFontSize(ComponentTheme defaultTheme)
 
-         {
 
-             if (fontSize == 0)
 
-                 return defaultTheme.fontSize;
 
-             else
 
-                 return fontSize;
 
-         }
 
-         public TextAnchor GetAlignment(TextAnchor defaultAlignment)
 
-         {
 
-             return m_AutoAlign ? defaultAlignment : alignment;
 
-         }
 
-     }
 
- }
 
 
  |