10 using System.Collections.Generic;
23 [ExcludeFromPresetAttribute]
27 public readonly
static string THEME_ASSET_NAME_PREFIX =
"XTheme-";
28 public readonly
static string THEME_ASSET_FOLDER =
"Assets/XCharts/Resources";
30 [SerializeField]
private Font m_Font =
null;
32 [SerializeField]
private TMP_FontAsset m_TMPFont =
null;
34 [SerializeField] [Range(1, 200)]
private int m_FontSizeLv1 = 28;
35 [SerializeField] [Range(1, 200)]
private int m_FontSizeLv2 = 24;
36 [SerializeField] [Range(1, 200)]
private int m_FontSizeLv3 = 20;
37 [SerializeField] [Range(1, 200)]
private int m_FontSizeLv4 = 18;
39 [SerializeField] [Range(0, 20)]
private float m_AxisLineWidth = 0.8f;
41 [SerializeField] [Range(0, 20)]
private float m_AxisSplitLineWidth = 0.8f;
42 [SerializeField] [Range(0, 20)]
private float m_AxisTickWidth = 0.8f;
43 [SerializeField] [Range(0, 20)]
private float m_AxisTickLength = 5f;
44 [SerializeField] [Range(0, 200)]
private float m_GaugeAxisLineWidth = 15f;
45 [SerializeField] [Range(0, 20)]
private float m_GaugeAxisSplitLineWidth = 0.8f;
46 [SerializeField] [Range(0, 20)]
private float m_GaugeAxisSplitLineLength = 15f;
47 [SerializeField] [Range(0, 20)]
private float m_GaugeAxisTickWidth = 0.8f;
48 [SerializeField] [Range(0, 20)]
private float m_GaugeAxisTickLength = 5f;
49 [SerializeField] [Range(0, 20)]
private float m_TootipLineWidth = 0.8f;
50 [SerializeField] [Range(0, 20)]
private float m_DataZoomBorderWidth = 0.5f;
51 [SerializeField] [Range(0, 20)]
private float m_DataZoomDataLineWidth = 0.5f;
52 [SerializeField] [Range(0, 20)]
private float m_VisualMapBorderWidth = 0f;
54 [SerializeField] [Range(0, 20)]
private float m_SerieLineWidth = 1.4f;
55 [SerializeField] [Range(0, 200)]
private float m_SerieLineSymbolSize = 4f;
56 [SerializeField] [Range(0, 200)]
private float m_SerieLineSymbolSelectedSize = 8f;
57 [SerializeField] [Range(0, 200)]
private float m_SerieScatterSymbolSize = 20f;
58 [SerializeField] [Range(0, 200)]
private float m_SerieScatterSymbolSelectedSize = 30f;
59 [SerializeField] [Range(0, 10)]
private float m_SerieCandlestickBorderWidth = 1f;
61 [SerializeField]
private bool m_EditorBlockEnable =
true;
62 [SerializeField]
private bool m_EditorShowAllListData =
false;
64 [SerializeField] [Range(1, 20)]
protected int m_MaxPainter = 10;
65 [SerializeField] [Range(1, 10)]
protected float m_LineSmoothStyle = 3f;
66 [SerializeField] [Range(1f, 20)]
protected float m_LineSmoothness = 2f;
67 [SerializeField] [Range(1f, 20)]
protected float m_LineSegmentDistance = 3f;
68 [SerializeField] [Range(1, 10)]
protected float m_CicleSmoothness = 2f;
69 [SerializeField] [Range(10, 50)]
protected float m_VisualMapTriangeLen = 20f;
70 [SerializeField] [Range(1, 20)]
protected float m_PieTooltipExtraRadius = 8f;
71 [SerializeField] [Range(1, 20)]
protected float m_PieSelectedOffset = 8f;
72 [SerializeField]
protected List<TextAsset> m_CustomThemes =
new List<TextAsset>();
74 public static Font font {
get {
return Instance.m_Font; } }
76 public static TMP_FontAsset tmpFont {
get {
return Instance.m_TMPFont; } }
78 public static int fontSizeLv1 {
get {
return Instance.m_FontSizeLv1; } }
82 public static int fontSizeLv2 {
get {
return Instance.m_FontSizeLv2; } }
83 public static int fontSizeLv3 {
get {
return Instance.m_FontSizeLv3; } }
84 public static int fontSizeLv4 {
get {
return Instance.m_FontSizeLv4; } }
85 public static LineStyle.
Type axisLineType {
get {
return Instance.m_AxisLineType; } }
86 public static float axisLineWidth {
get {
return Instance.m_AxisLineWidth; } }
87 public static LineStyle.
Type axisSplitLineType {
get {
return Instance.m_AxisSplitLineType; } }
88 public static float axisSplitLineWidth {
get {
return Instance.m_AxisSplitLineWidth; } }
89 public static float axisTickWidth {
get {
return Instance.m_AxisTickWidth; } }
90 public static float axisTickLength {
get {
return Instance.m_AxisTickLength; } }
91 public static float gaugeAxisLineWidth {
get {
return Instance.m_GaugeAxisLineWidth; } }
92 public static float gaugeAxisSplitLineWidth {
get {
return Instance.m_GaugeAxisSplitLineWidth; } }
93 public static float gaugeAxisSplitLineLength {
get {
return Instance.m_GaugeAxisSplitLineLength; } }
94 public static float gaugeAxisTickWidth {
get {
return Instance.m_GaugeAxisTickWidth; } }
95 public static float gaugeAxisTickLength {
get {
return Instance.m_GaugeAxisTickLength; } }
97 public static float tootipLineWidth {
get {
return Instance.m_TootipLineWidth; } }
98 public static float dataZoomBorderWidth {
get {
return Instance.m_DataZoomBorderWidth; } }
99 public static float dataZoomDataLineWidth {
get {
return Instance.m_DataZoomDataLineWidth; } }
100 public static float visualMapBorderWidth {
get {
return Instance.m_VisualMapBorderWidth; } }
103 public static float serieLineWidth {
get {
return Instance.m_SerieLineWidth; } }
104 public static float serieLineSymbolSize {
get {
return Instance.m_SerieLineSymbolSize; } }
105 public static float serieLineSymbolSelectedSize {
get {
return Instance.m_SerieLineSymbolSelectedSize; } }
106 public static float serieScatterSymbolSize {
get {
return Instance.m_SerieScatterSymbolSize; } }
107 public static float serieScatterSymbolSelectedSize {
get {
return Instance.m_SerieScatterSymbolSelectedSize; } }
108 public static float serieCandlestickBorderWidth {
get {
return Instance.m_SerieCandlestickBorderWidth; } }
112 public static bool editorBlockEnable {
get {
return Instance.m_EditorBlockEnable; } }
113 public static bool editorShowAllListData {
get {
return Instance.m_EditorShowAllListData; } }
117 public static int maxPainter {
get {
return Instance.m_MaxPainter; } }
118 public static float lineSmoothStyle {
get {
return Instance.m_LineSmoothStyle; } }
119 public static float lineSmoothness {
get {
return Instance.m_LineSmoothness; } }
120 public static float lineSegmentDistance {
get {
return Instance.m_LineSegmentDistance; } }
121 public static float cicleSmoothness {
get {
return Instance.m_CicleSmoothness; } }
122 public static float visualMapTriangeLen {
get {
return Instance.m_VisualMapTriangeLen; } }
123 public static float pieTooltipExtraRadius {
get {
return Instance.m_PieTooltipExtraRadius; } }
124 public static float pieSelectedOffset {
get {
return Instance.m_PieSelectedOffset; } }
127 public static List<TextAsset> customThemes {
get {
return Instance.m_CustomThemes; } }
134 if (s_Instance ==
null)
138 if (s_Instance ==
null)
140 XChartsPackageResourceImporterWindow.ShowPackageImporterWindow();
144 if (s_Instance.m_Font ==
null)
145 s_Instance.m_Font = Resources.GetBuiltinResource<Font>(
"Arial.ttf");
147 if (s_Instance.m_TMPFont ==
null)
148 s_Instance.m_TMPFont = Resources.Load<TMP_FontAsset>(
"LiberationSans SDF");
157 public static bool AddJsonTheme(TextAsset theme)
159 if (theme ==
null ||
string.IsNullOrEmpty(theme.text))
return false;
160 if (!Instance.m_CustomThemes.Contains(theme))
162 Instance.m_CustomThemes.Add(theme);
164 EditorUtility.SetDirty(Instance);
165 AssetDatabase.SaveAssets();
166 AssetDatabase.Refresh();