public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty m_Show = prop.FindPropertyRelative("m_Show"); SerializedProperty m_Type = prop.FindPropertyRelative("m_Type"); SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber"); SerializedProperty m_TextRotation = prop.FindPropertyRelative("m_TextRotation"); SerializedProperty m_ShowSplitLine = prop.FindPropertyRelative("m_ShowSplitLine"); SerializedProperty m_SplitLineType = prop.FindPropertyRelative("m_SplitLineType"); SerializedProperty m_BoundaryGap = prop.FindPropertyRelative("m_BoundaryGap"); SerializedProperty m_Data = prop.FindPropertyRelative("m_Data"); SerializedProperty m_AxisTick = prop.FindPropertyRelative("m_AxisTick"); SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType"); SerializedProperty m_Min = prop.FindPropertyRelative("m_Min"); SerializedProperty m_Max = prop.FindPropertyRelative("m_Max"); ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisModuleToggle, prop.displayName, m_Show); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_AxisModuleToggle) { Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex; EditorGUI.indentLevel++; EditorGUI.PropertyField(drawRect, m_Type); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (type == Axis.AxisType.Value) { EditorGUI.PropertyField(drawRect, m_MinMaxType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; Axis.AxisMinMaxType minMaxType = (Axis.AxisMinMaxType)m_MinMaxType.enumValueIndex; switch (minMaxType) { case Axis.AxisMinMaxType.Default: break; case Axis.AxisMinMaxType.MinMax: break; case Axis.AxisMinMaxType.Custom: EditorGUI.indentLevel++; EditorGUI.PropertyField(drawRect, m_Min); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Max); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.indentLevel--; break; } } EditorGUI.PropertyField(drawRect, m_SplitNumber); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_TextRotation); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_ShowSplitLine.boolValue) { drawRect.width = EditorGUIUtility.labelWidth + 10; EditorGUI.PropertyField(drawRect, m_ShowSplitLine); //drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.x = EditorGUIUtility.labelWidth + 35; drawRect.width = EditorGUIUtility.currentViewWidth - EditorGUIUtility.labelWidth - 55; EditorGUI.PropertyField(drawRect, m_SplitLineType, GUIContent.none); drawRect.x = pos.x; drawRect.width = pos.width; drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } else { EditorGUI.PropertyField(drawRect, m_ShowSplitLine); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } EditorGUI.PropertyField(drawRect, m_BoundaryGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_AxisTick); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUI.GetPropertyHeight(m_AxisTick); if (type == Axis.AxisType.Category) { drawRect.width = EditorGUIUtility.labelWidth + 10; m_DataFoldout = EditorGUI.Foldout(drawRect, m_DataFoldout, "Data"); ChartEditorHelper.MakeJsonData(ref drawRect, ref m_ShowJsonDataArea, ref m_JsonDataAreaText, prop); drawRect.width = pos.width; if (m_DataFoldout) { ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_Data); } } EditorGUI.indentLevel--; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { base.OnGUI(pos, prop, label); if (MakeFoldout(prop, "m_Show")) { SerializedProperty m_Type = prop.FindPropertyRelative("m_Type"); SerializedProperty m_LogBase = prop.FindPropertyRelative("m_LogBase"); SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType"); Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex; var chart = prop.serializedObject.targetObject as BaseChart; var isPolar = chart is PolarChart; EditorGUI.indentLevel++; PropertyField(prop, isPolar ? "m_PolarIndex" : "m_GridIndex"); PropertyField(prop, "m_Type"); PropertyField(prop, "m_Position"); PropertyField(prop, "m_Offset"); if (type == Axis.AxisType.Log) { PropertyField(prop, "m_LogBaseE"); EditorGUI.BeginChangeCheck(); PropertyField(prop, "m_LogBase"); if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1) { m_LogBase.floatValue = 10; } EditorGUI.EndChangeCheck(); } if (type == Axis.AxisType.Value || type == Axis.AxisType.Time) { PropertyField(prop, "m_MinMaxType"); Axis.AxisMinMaxType minMaxType = (Axis.AxisMinMaxType)m_MinMaxType.enumValueIndex; switch (minMaxType) { case Axis.AxisMinMaxType.Default: break; case Axis.AxisMinMaxType.MinMax: break; case Axis.AxisMinMaxType.Custom: EditorGUI.indentLevel++; PropertyField(prop, "m_Min"); PropertyField(prop, "m_Max"); EditorGUI.indentLevel--; break; } PropertyField(prop, "m_CeilRate"); if (type == Axis.AxisType.Value) { PropertyField(prop, "m_Inverse"); } } PropertyField(prop, "m_SplitNumber"); if (type == Axis.AxisType.Category) { PropertyField(prop, "m_InsertDataToHead"); PropertyField(prop, "m_MaxCache"); PropertyField(prop, "m_BoundaryGap"); } else { PropertyField(prop, "m_Interval"); } DrawExtendeds(prop); PropertyField(prop, "m_AxisLine"); PropertyField(prop, "m_AxisName"); PropertyField(prop, "m_AxisTick"); PropertyField(prop, "m_AxisLabel"); PropertyField(prop, "m_SplitLine"); PropertyField(prop, "m_SplitArea"); if (type == Axis.AxisType.Category) { PropertyListField(prop, "m_Data", true); } EditorGUI.indentLevel--; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty m_Show = prop.FindPropertyRelative("m_Show"); SerializedProperty m_Type = prop.FindPropertyRelative("m_Type"); SerializedProperty m_LogBaseE = prop.FindPropertyRelative("m_LogBaseE"); SerializedProperty m_LogBase = prop.FindPropertyRelative("m_LogBase"); SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber"); SerializedProperty m_Interval = prop.FindPropertyRelative("m_Interval"); SerializedProperty m_AxisLabel = prop.FindPropertyRelative("m_AxisLabel"); SerializedProperty m_BoundaryGap = prop.FindPropertyRelative("m_BoundaryGap"); SerializedProperty m_Data = prop.FindPropertyRelative("m_Data"); SerializedProperty m_AxisLine = prop.FindPropertyRelative("m_AxisLine"); SerializedProperty m_AxisName = prop.FindPropertyRelative("m_AxisName"); SerializedProperty m_AxisTick = prop.FindPropertyRelative("m_AxisTick"); SerializedProperty m_SplitArea = prop.FindPropertyRelative("m_SplitArea"); SerializedProperty m_SplitLine = prop.FindPropertyRelative("m_SplitLine"); SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType"); SerializedProperty m_Min = prop.FindPropertyRelative("m_Min"); SerializedProperty m_Max = prop.FindPropertyRelative("m_Max"); SerializedProperty m_CeilRate = prop.FindPropertyRelative("m_CeilRate"); SerializedProperty m_Inverse = prop.FindPropertyRelative("m_Inverse"); int index = InitToggle(prop); bool toggle = m_AxisModuleToggle[index]; m_AxisModuleToggle[index] = ChartEditorHelper.MakeFoldout(ref drawRect, ref toggle, GetDisplayName(prop.displayName), m_Show); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_AxisModuleToggle[index]) { Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex; EditorGUI.indentLevel++; EditorGUI.PropertyField(drawRect, m_Type); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (type == Axis.AxisType.Log) { EditorGUI.PropertyField(drawRect, m_LogBaseE); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.BeginChangeCheck(); EditorGUI.PropertyField(drawRect, m_LogBase); if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1) { m_LogBase.floatValue = 10; } EditorGUI.EndChangeCheck(); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } if (type == Axis.AxisType.Value) { EditorGUI.PropertyField(drawRect, m_MinMaxType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; Axis.AxisMinMaxType minMaxType = (Axis.AxisMinMaxType)m_MinMaxType.enumValueIndex; switch (minMaxType) { case Axis.AxisMinMaxType.Default: break; case Axis.AxisMinMaxType.MinMax: break; case Axis.AxisMinMaxType.Custom: EditorGUI.indentLevel++; EditorGUI.PropertyField(drawRect, m_Min); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Max); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.indentLevel--; break; } EditorGUI.PropertyField(drawRect, m_CeilRate); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Inverse); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } EditorGUI.PropertyField(drawRect, m_SplitNumber); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (type == Axis.AxisType.Category) { EditorGUI.PropertyField(drawRect, m_BoundaryGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } else { EditorGUI.PropertyField(drawRect, m_Interval); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } DrawExtended(ref drawRect, prop); EditorGUI.PropertyField(drawRect, m_AxisLine); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUI.GetPropertyHeight(m_AxisLine); EditorGUI.PropertyField(drawRect, m_AxisName); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUI.GetPropertyHeight(m_AxisName); EditorGUI.PropertyField(drawRect, m_AxisTick); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUI.GetPropertyHeight(m_AxisTick); EditorGUI.PropertyField(drawRect, m_AxisLabel); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUI.GetPropertyHeight(m_AxisLabel); EditorGUI.PropertyField(drawRect, m_SplitLine); drawRect.y += EditorGUI.GetPropertyHeight(m_SplitLine); EditorGUI.PropertyField(drawRect, m_SplitArea); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.y += EditorGUI.GetPropertyHeight(m_SplitArea); if (type == Axis.AxisType.Category) { drawRect.width = EditorGUIUtility.labelWidth + 10; m_DataFoldout[index] = EditorGUI.Foldout(drawRect, m_DataFoldout[index], "Data"); ChartEditorHelper.MakeJsonData(ref drawRect, ref m_ShowJsonDataArea, ref m_JsonDataAreaText, prop, pos.width); drawRect.width = pos.width; if (m_DataFoldout[index]) { ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_Data); } } EditorGUI.indentLevel--; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { base.OnGUI(pos, prop, label); if (MakeFoldout(prop, "m_Show")) { SerializedProperty m_Type = prop.FindPropertyRelative("m_Type"); SerializedProperty m_LogBase = prop.FindPropertyRelative("m_LogBase"); SerializedProperty m_Data = prop.FindPropertyRelative("m_Data"); SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType"); Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex; var chart = prop.serializedObject.targetObject as BaseChart; var isPolar = chart is PolarChart; EditorGUI.indentLevel++; PropertyField(prop, isPolar ? "m_PolarIndex" : "m_GridIndex"); PropertyField(prop, "m_Type"); PropertyField(prop, "m_Position"); PropertyField(prop, "m_Offset"); if (type == Axis.AxisType.Log) { PropertyField(prop, "m_LogBaseE"); EditorGUI.BeginChangeCheck(); PropertyField(prop, "m_LogBase"); if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1) { m_LogBase.floatValue = 10; } EditorGUI.EndChangeCheck(); } if (type == Axis.AxisType.Value) { PropertyField(prop, "m_MinMaxType"); Axis.AxisMinMaxType minMaxType = (Axis.AxisMinMaxType)m_MinMaxType.enumValueIndex; switch (minMaxType) { case Axis.AxisMinMaxType.Default: break; case Axis.AxisMinMaxType.MinMax: break; case Axis.AxisMinMaxType.Custom: EditorGUI.indentLevel++; PropertyField(prop, "m_Min"); PropertyField(prop, "m_Max"); EditorGUI.indentLevel--; break; } PropertyField(prop, "m_CeilRate"); PropertyField(prop, "m_Inverse"); } PropertyField(prop, "m_SplitNumber"); if (type == Axis.AxisType.Category) { PropertyField(prop, "m_BoundaryGap"); } else { PropertyField(prop, "m_Interval"); } DrawExtendeds(prop); PropertyField(prop, "m_AxisLine"); PropertyField(prop, "m_AxisName"); PropertyField(prop, "m_AxisTick"); PropertyField(prop, "m_AxisLabel"); PropertyField(prop, "m_SplitLine"); PropertyField(prop, "m_SplitArea"); if (type == Axis.AxisType.Category) { m_DrawRect.width = EditorGUIUtility.labelWidth + 10; m_DataToggles[m_KeyName] = EditorGUI.Foldout(m_DrawRect, m_DataToggles[m_KeyName], "Data"); AddSingleLineHeight(); m_DrawRect.width = pos.width; if (m_DataToggles[m_KeyName]) { var height = m_Heights[m_KeyName]; ChartEditorHelper.MakeList(ref m_DrawRect, ref height, ref m_DataSize, m_Data); m_Heights[m_KeyName] = height; } } EditorGUI.indentLevel--; } }
public override void OnInspectorGUI() { var m_Type = baseProperty.FindPropertyRelative("m_Type"); var m_LogBase = baseProperty.FindPropertyRelative("m_LogBase"); var m_MinMaxType = baseProperty.FindPropertyRelative("m_MinMaxType"); var type = (Axis.AxisType)m_Type.enumValueIndex; EditorGUI.indentLevel++; if (component is ParallelAxis) { PropertyField("m_ParallelIndex"); } else if (!(component is SingleAxis)) { PropertyField("m_GridIndex"); PropertyField("m_PolarIndex"); } PropertyField("m_Type"); PropertyField("m_Position"); PropertyField("m_Offset"); if (type == Axis.AxisType.Log) { PropertyField("m_LogBaseE"); EditorGUI.BeginChangeCheck(); PropertyField("m_LogBase"); if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1) { m_LogBase.floatValue = 10; } EditorGUI.EndChangeCheck(); } if (type == Axis.AxisType.Value || type == Axis.AxisType.Time) { PropertyField("m_MinMaxType"); Axis.AxisMinMaxType minMaxType = (Axis.AxisMinMaxType)m_MinMaxType.enumValueIndex; switch (minMaxType) { case Axis.AxisMinMaxType.Default: break; case Axis.AxisMinMaxType.MinMax: break; case Axis.AxisMinMaxType.Custom: EditorGUI.indentLevel++; PropertyField("m_Min"); PropertyField("m_Max"); EditorGUI.indentLevel--; break; } PropertyField("m_CeilRate"); if (type == Axis.AxisType.Value) { PropertyField("m_Inverse"); } } PropertyField("m_SplitNumber"); if (type == Axis.AxisType.Category) { //PropertyField("m_InsertDataToHead"); PropertyField("m_MaxCache"); PropertyField("m_BoundaryGap"); } else { PropertyField("m_Interval"); PropertyField("m_BoundaryGap"); } DrawExtendeds(); PropertyField("m_AxisLine"); PropertyField("m_AxisName"); PropertyField("m_AxisTick"); PropertyField("m_AxisLabel"); PropertyField("m_SplitLine"); PropertyField("m_SplitArea"); PropertyListField("m_Icons", true); if (type == Axis.AxisType.Category) { PropertyListField("m_Data", true, new HeaderMenuInfo("Import ECharts Axis Data", () => { PraseExternalDataEditor.UpdateData(chart, null, component as Axis); PraseExternalDataEditor.ShowWindow(); })); } EditorGUI.indentLevel--; }