ComponentThemeDrawer.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using System.Collections.Generic;
  2. using UnityEditor;
  3. using UnityEngine;
  4. #if dUI_TextMeshPro
  5. using TMPro;
  6. #endif
  7. using XCharts.Runtime;
  8. namespace XCharts.Editor
  9. {
  10. [CustomPropertyDrawer(typeof(ComponentTheme), true)]
  11. public class ComponentThemeDrawer : BasePropertyDrawer
  12. {
  13. public override string ClassName { get { return ""; } }
  14. public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
  15. {
  16. base.OnGUI(pos, prop, label);
  17. if (MakeComponentFoldout(prop, "", true))
  18. {
  19. ++EditorGUI.indentLevel;
  20. #if dUI_TextMeshPro
  21. PropertyField(prop, "m_TMPFont");
  22. #else
  23. PropertyField(prop, "m_Font");
  24. #endif
  25. PropertyField(prop, "m_FontSize");
  26. PropertyField(prop, "m_TextColor");
  27. DrawExtendeds(prop);
  28. --EditorGUI.indentLevel;
  29. }
  30. }
  31. }
  32. [CustomPropertyDrawer(typeof(BaseAxisTheme), true)]
  33. public class BaseAxisThemeDrawer : ComponentThemeDrawer
  34. {
  35. public override string ClassName { get { return "Axis"; } }
  36. protected override void DrawExtendeds(SerializedProperty prop)
  37. {
  38. base.DrawExtendeds(prop);
  39. PropertyField(prop, "m_LineType");
  40. PropertyField(prop, "m_LineWidth");
  41. PropertyField(prop, "m_LineLength");
  42. PropertyField(prop, "m_LineColor");
  43. PropertyField(prop, "m_SplitLineType");
  44. PropertyField(prop, "m_SplitLineWidth");
  45. PropertyField(prop, "m_SplitLineLength");
  46. PropertyField(prop, "m_SplitLineColor");
  47. PropertyField(prop, "m_TickWidth");
  48. PropertyField(prop, "m_TickLength");
  49. PropertyField(prop, "m_TickColor");
  50. PropertyField(prop, "m_SplitAreaColors");
  51. }
  52. }
  53. [CustomPropertyDrawer(typeof(AxisTheme), true)]
  54. public class AxisThemeDrawer : BaseAxisThemeDrawer
  55. {
  56. public override string ClassName { get { return "Axis"; } }
  57. }
  58. [CustomPropertyDrawer(typeof(RadiusAxisTheme), true)]
  59. public class RadiusAxisThemeDrawer : BaseAxisThemeDrawer
  60. {
  61. public override string ClassName { get { return "Radius Axis"; } }
  62. public override List<string> IngorePropertys
  63. {
  64. get
  65. {
  66. return new List<string>
  67. {
  68. "m_TextBackgroundColor",
  69. "m_LineLength",
  70. "m_SplitLineLength",
  71. };
  72. }
  73. }
  74. }
  75. [CustomPropertyDrawer(typeof(DataZoomTheme), true)]
  76. public class DataZoomThemeDrawer : ComponentThemeDrawer
  77. {
  78. public override string ClassName { get { return "DataZoom"; } }
  79. protected override void DrawExtendeds(SerializedProperty prop)
  80. {
  81. base.DrawExtendeds(prop);
  82. PropertyField(prop, "m_BackgroundColor");
  83. PropertyField(prop, "m_BorderWidth");
  84. PropertyField(prop, "m_BorderColor");
  85. PropertyField(prop, "m_DataLineWidth");
  86. PropertyField(prop, "m_DataLineColor");
  87. PropertyField(prop, "m_FillerColor");
  88. PropertyField(prop, "m_DataAreaColor");
  89. }
  90. }
  91. [CustomPropertyDrawer(typeof(LegendTheme), true)]
  92. public class LegendThemeDrawer : ComponentThemeDrawer
  93. {
  94. public override string ClassName { get { return "Legend"; } }
  95. protected override void DrawExtendeds(SerializedProperty prop)
  96. {
  97. base.DrawExtendeds(prop);
  98. PropertyField(prop, "m_UnableColor");
  99. }
  100. }
  101. [CustomPropertyDrawer(typeof(TooltipTheme), true)]
  102. public class TooltipThemeDrawer : ComponentThemeDrawer
  103. {
  104. public override string ClassName { get { return "Tooltip"; } }
  105. protected override void DrawExtendeds(SerializedProperty prop)
  106. {
  107. base.DrawExtendeds(prop);
  108. PropertyField(prop, "m_LineType");
  109. PropertyField(prop, "m_LineWidth");
  110. PropertyField(prop, "m_LineColor");
  111. PropertyField(prop, "m_AreaColor");
  112. PropertyField(prop, "m_LabelTextColor");
  113. PropertyField(prop, "m_LabelBackgroundColor");
  114. }
  115. }
  116. [CustomPropertyDrawer(typeof(VisualMapTheme), true)]
  117. public class VisualMapThemeDrawer : ComponentThemeDrawer
  118. {
  119. public override string ClassName { get { return "VisualMap"; } }
  120. protected override void DrawExtendeds(SerializedProperty prop)
  121. {
  122. base.DrawExtendeds(prop);
  123. // PropertyField(prop, "m_BorderWidth");
  124. // PropertyField(prop, "m_BorderColor");
  125. // PropertyField(prop, "m_BackgroundColor");
  126. }
  127. }
  128. [CustomPropertyDrawer(typeof(SerieTheme), true)]
  129. public class SerieThemeDrawer : BasePropertyDrawer
  130. {
  131. public override string ClassName { get { return "Serie"; } }
  132. public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
  133. {
  134. base.OnGUI(pos, prop, label);
  135. if (MakeComponentFoldout(prop, "", true))
  136. {
  137. ++EditorGUI.indentLevel;
  138. PropertyField(prop, "m_LineWidth");
  139. PropertyField(prop, "m_LineSymbolSize");
  140. PropertyField(prop, "m_ScatterSymbolSize");
  141. PropertyField(prop, "m_CandlestickColor");
  142. PropertyField(prop, "m_CandlestickColor0");
  143. PropertyField(prop, "m_CandlestickBorderColor");
  144. PropertyField(prop, "m_CandlestickBorderColor0");
  145. PropertyField(prop, "m_CandlestickBorderWidth");
  146. --EditorGUI.indentLevel;
  147. }
  148. }
  149. }
  150. }