118 lines
4.1 KiB
C#
118 lines
4.1 KiB
C#
|
using UnityEngine;
|
||
|
using UnityEngine.UI;
|
||
|
|
||
|
namespace XCharts.Runtime
|
||
|
{
|
||
|
[System.Serializable]
|
||
|
public class IconStyle : ChildComponent
|
||
|
{
|
||
|
public enum Layer
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// The icon is display under the label text.
|
||
|
/// 图标在标签文字下
|
||
|
/// </summary>
|
||
|
UnderText,
|
||
|
/// <summary>
|
||
|
/// The icon is display above the label text.
|
||
|
/// 图标在标签文字上
|
||
|
/// </summary>
|
||
|
AboveText
|
||
|
}
|
||
|
|
||
|
[SerializeField] private bool m_Show = false;
|
||
|
[SerializeField] private Layer m_Layer;
|
||
|
[SerializeField] private Align m_Align = Align.Left;
|
||
|
[SerializeField] private Sprite m_Sprite;
|
||
|
[SerializeField] private Image.Type m_Type;
|
||
|
[SerializeField] private Color m_Color = Color.white;
|
||
|
[SerializeField] private float m_Width = 20;
|
||
|
[SerializeField] private float m_Height = 20;
|
||
|
[SerializeField] private Vector3 m_Offset;
|
||
|
[SerializeField] private bool m_AutoHideWhenLabelEmpty = false;
|
||
|
|
||
|
public void Reset()
|
||
|
{
|
||
|
m_Show = false;
|
||
|
m_Layer = Layer.UnderText;
|
||
|
m_Sprite = null;
|
||
|
m_Color = Color.white;
|
||
|
m_Width = 20;
|
||
|
m_Height = 20;
|
||
|
m_Offset = Vector3.zero;
|
||
|
m_AutoHideWhenLabelEmpty = false;
|
||
|
}
|
||
|
/// <summary>
|
||
|
/// Whether the data icon is show.
|
||
|
/// |是否显示图标。
|
||
|
/// </summary>
|
||
|
public bool show { get { return m_Show; } set { m_Show = value; } }
|
||
|
/// <summary>
|
||
|
/// 显示在上层还是在下层。
|
||
|
/// </summary>
|
||
|
public Layer layer { get { return m_Layer; } set { m_Layer = value; } }
|
||
|
/// <summary>
|
||
|
/// The image of icon.
|
||
|
/// |图标的图片。
|
||
|
/// </summary>
|
||
|
public Sprite sprite { get { return m_Sprite; } set { m_Sprite = value; } }
|
||
|
/// <summary>
|
||
|
/// How to display the icon.
|
||
|
/// |图片的显示类型。
|
||
|
/// </summary>
|
||
|
public Image.Type type { get { return m_Type; } set { m_Type = value; } }
|
||
|
/// <summary>
|
||
|
/// 图标颜色。
|
||
|
/// </summary>
|
||
|
public Color color { get { return m_Color; } set { m_Color = value; } }
|
||
|
/// <summary>
|
||
|
/// 图标宽。
|
||
|
/// </summary>
|
||
|
public float width { get { return m_Width; } set { m_Width = value; } }
|
||
|
/// <summary>
|
||
|
/// 图标高。
|
||
|
/// </summary>
|
||
|
public float height { get { return m_Height; } set { m_Height = value; } }
|
||
|
/// <summary>
|
||
|
/// 图标偏移。
|
||
|
/// </summary>
|
||
|
public Vector3 offset { get { return m_Offset; } set { m_Offset = value; } }
|
||
|
/// <summary>
|
||
|
/// 水平方向对齐方式。
|
||
|
/// </summary>
|
||
|
public Align align { get { return m_Align; } set { m_Align = value; } }
|
||
|
/// <summary>
|
||
|
/// 当label内容为空时是否自动隐藏图标
|
||
|
/// </summary>
|
||
|
public bool autoHideWhenLabelEmpty { get { return m_AutoHideWhenLabelEmpty; } set { m_AutoHideWhenLabelEmpty = value; } }
|
||
|
public IconStyle Clone()
|
||
|
{
|
||
|
var iconStyle = new IconStyle();
|
||
|
iconStyle.show = show;
|
||
|
iconStyle.layer = layer;
|
||
|
iconStyle.sprite = sprite;
|
||
|
iconStyle.type = type;
|
||
|
iconStyle.color = color;
|
||
|
iconStyle.width = width;
|
||
|
iconStyle.height = height;
|
||
|
iconStyle.offset = offset;
|
||
|
iconStyle.align = align;
|
||
|
iconStyle.autoHideWhenLabelEmpty = autoHideWhenLabelEmpty;
|
||
|
return iconStyle;
|
||
|
}
|
||
|
|
||
|
public void Copy(IconStyle iconStyle)
|
||
|
{
|
||
|
show = iconStyle.show;
|
||
|
layer = iconStyle.layer;
|
||
|
sprite = iconStyle.sprite;
|
||
|
type = iconStyle.type;
|
||
|
color = iconStyle.color;
|
||
|
width = iconStyle.width;
|
||
|
height = iconStyle.height;
|
||
|
offset = iconStyle.offset;
|
||
|
align = iconStyle.align;
|
||
|
autoHideWhenLabelEmpty = iconStyle.autoHideWhenLabelEmpty;
|
||
|
}
|
||
|
}
|
||
|
}
|