public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { InitProperty(prop); Rect drawRect = pos; float defaultLabelWidth = EditorGUIUtility.labelWidth; float defaultFieldWidth = EditorGUIUtility.fieldWidth; drawRect.height = EditorGUIUtility.singleLineHeight; int index = ChartEditorHelper.GetIndexFromPath(prop); ChartEditorHelper.MakeFoldout(ref drawRect, ref m_RadarModuleToggle, prop, "Radar " + index, null, true); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop)) { ++EditorGUI.indentLevel; EditorGUIUtility.labelWidth = defaultLabelWidth; EditorGUIUtility.fieldWidth = defaultFieldWidth; EditorGUI.PropertyField(drawRect, m_Shape); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_PositionType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.LabelField(drawRect, "Center"); var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15; var tempWidth = (pos.width - startX + 35) / 2; var centerXRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height); var centerYRect = new Rect(centerXRect.x + tempWidth - 20, drawRect.y, tempWidth, drawRect.height); while (m_Center.arraySize < 2) { m_Center.InsertArrayElementAtIndex(m_Center.arraySize); } EditorGUI.PropertyField(centerXRect, m_Center.GetArrayElementAtIndex(0), GUIContent.none); EditorGUI.PropertyField(centerYRect, m_Center.GetArrayElementAtIndex(1), GUIContent.none); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Radius); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SplitNumber); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SplitLine); drawRect.y += EditorGUI.GetPropertyHeight(m_SplitLine); EditorGUI.PropertyField(drawRect, m_SplitArea); drawRect.y += EditorGUI.GetPropertyHeight(m_SplitArea); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeFoldout(ref drawRect, ref m_IndicatorToggle, prop, "Indicators", m_Indicator, false); ChartEditorHelper.MakeJsonData(ref drawRect, ref m_IndicatorJsonAreaToggle, ref m_IndicatorJsonAreaText, prop, pos.width, 20); drawRect.width = pos.width; drawRect.x = pos.x; if (ChartEditorHelper.IsToggle(m_IndicatorToggle, prop)) { EditorGUI.PropertyField(drawRect, m_IndicatorGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeList(ref drawRect, ref m_IndicatorSize, m_IndicatorList); } --EditorGUI.indentLevel; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty show = prop.FindPropertyRelative("m_Show"); SerializedProperty m_SelectedMode = prop.FindPropertyRelative("m_SelectedMode"); SerializedProperty orient = prop.FindPropertyRelative("m_Orient"); SerializedProperty location = prop.FindPropertyRelative("m_Location"); SerializedProperty itemWidth = prop.FindPropertyRelative("m_ItemWidth"); SerializedProperty itemHeight = prop.FindPropertyRelative("m_ItemHeight"); SerializedProperty itemGap = prop.FindPropertyRelative("m_ItemGap"); SerializedProperty m_ItemAutoColor = prop.FindPropertyRelative("m_ItemAutoColor"); SerializedProperty m_Formatter = prop.FindPropertyRelative("m_Formatter"); SerializedProperty m_Data = prop.FindPropertyRelative("m_Data"); SerializedProperty m_Icons = prop.FindPropertyRelative("m_Icons"); SerializedProperty m_TextStyle = prop.FindPropertyRelative("m_TextStyle"); ChartEditorHelper.MakeFoldout(ref drawRect, ref m_LegendModuleToggle, "Legend", show); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_LegendModuleToggle) { ++EditorGUI.indentLevel; EditorGUI.PropertyField(drawRect, itemWidth); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, itemHeight); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, itemGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_ItemAutoColor); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SelectedMode); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, orient); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, location); drawRect.y += EditorGUI.GetPropertyHeight(location); EditorGUI.PropertyField(drawRect, m_Formatter); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.width = EditorGUIUtility.labelWidth + 10; m_DataFoldout = EditorGUI.Foldout(drawRect, m_DataFoldout, "Data"); ChartEditorHelper.MakeJsonData(ref drawRect, ref m_ShowJsonDataArea, ref m_JsonDataAreaText, prop, pos.width); drawRect.width = pos.width; if (m_DataFoldout) { ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_Data); } m_IconsFoldout = EditorGUI.Foldout(drawRect, m_IconsFoldout, "Icons"); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_IconsFoldout) { ChartEditorHelper.MakeList(ref drawRect, ref m_IconsSize, m_Icons); } EditorGUI.PropertyField(drawRect, m_TextStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_TextStyle); --EditorGUI.indentLevel; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty show = prop.FindPropertyRelative("m_Show"); //SerializedProperty type = prop.FindPropertyRelative("m_Type"); SerializedProperty name = prop.FindPropertyRelative("m_Name"); SerializedProperty stack = prop.FindPropertyRelative("m_Stack"); SerializedProperty m_Data = prop.FindPropertyRelative("m_Data"); string moduleName = "Serie " + prop.displayName.Split(' ')[1]; if (!string.IsNullOrEmpty(name.stringValue)) { moduleName += ":" + name.stringValue; } m_SerieModuleToggle = EditorGUI.Foldout(drawRect, m_SerieModuleToggle, "Serie"); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_SerieModuleToggle) { ++EditorGUI.indentLevel; EditorGUI.PropertyField(drawRect, show); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, name); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, stack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; 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) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty show = prop.FindPropertyRelative("m_Show"); SerializedProperty type = prop.FindPropertyRelative("m_Type"); SerializedProperty name = prop.FindPropertyRelative("m_Name"); SerializedProperty stack = prop.FindPropertyRelative("m_Stack"); SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex"); SerializedProperty m_RadarIndex = prop.FindPropertyRelative("m_RadarIndex"); SerializedProperty m_MinShow = prop.FindPropertyRelative("m_MinShow"); SerializedProperty m_MaxShow = prop.FindPropertyRelative("m_MaxShow"); SerializedProperty m_MaxCache = prop.FindPropertyRelative("m_MaxCache"); SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle"); SerializedProperty m_ItemStyle = prop.FindPropertyRelative("m_ItemStyle"); SerializedProperty m_LineArrow = prop.FindPropertyRelative("m_LineArrow"); SerializedProperty m_LineType = prop.FindPropertyRelative("m_LineType"); SerializedProperty m_SampleDist = prop.FindPropertyRelative("m_SampleDist"); SerializedProperty m_SampleType = prop.FindPropertyRelative("m_SampleType"); SerializedProperty m_SampleAverage = prop.FindPropertyRelative("m_SampleAverage"); SerializedProperty m_BarType = prop.FindPropertyRelative("m_BarType"); SerializedProperty m_BarPercentStack = prop.FindPropertyRelative("m_BarPercentStack"); SerializedProperty m_BarWidth = prop.FindPropertyRelative("m_BarWidth"); SerializedProperty m_BarGap = prop.FindPropertyRelative("m_BarGap"); SerializedProperty m_BarZebraWidth = prop.FindPropertyRelative("m_BarZebraWidth"); SerializedProperty m_BarZebraGap = prop.FindPropertyRelative("m_BarZebraGap"); SerializedProperty m_AreaStyle = prop.FindPropertyRelative("m_AreaStyle"); SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol"); SerializedProperty m_RoseType = prop.FindPropertyRelative("m_RoseType"); SerializedProperty m_Space = prop.FindPropertyRelative("m_Space"); SerializedProperty m_Center = prop.FindPropertyRelative("m_Center"); SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius"); SerializedProperty m_Label = prop.FindPropertyRelative("m_Label"); SerializedProperty m_Emphasis = prop.FindPropertyRelative("m_Emphasis"); SerializedProperty m_Animation = prop.FindPropertyRelative("m_Animation"); SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension"); SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName"); SerializedProperty m_ShowDataIcon = prop.FindPropertyRelative("m_ShowDataIcon"); SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data"); int index = InitToggle(prop); string moduleName = "Serie " + index; var toggle = ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieModuleToggle, prop, moduleName, show); if (!toggle) { drawRect.x = EditorGUIUtility.labelWidth - (EditorGUI.indentLevel - 1) * 15 - 2 + 20; drawRect.width = pos.width - drawRect.x + 15; EditorGUI.PropertyField(drawRect, type, GUIContent.none); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } else { var serieType = (SerieType)type.enumValueIndex; ++EditorGUI.indentLevel; drawRect.x = pos.x; drawRect.width = pos.width; drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, type); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, name); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, stack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (serieType == SerieType.Radar) { EditorGUI.PropertyField(drawRect, m_RadarIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } else { EditorGUI.PropertyField(drawRect, m_AxisIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } EditorGUI.PropertyField(drawRect, m_MinShow); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MaxShow); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MaxCache); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_MinShow.intValue < 0) { m_MinShow.intValue = 0; } if (m_MinShow.intValue < 0) { m_MinShow.intValue = 0; } if (m_MaxCache.intValue < 0) { m_MaxCache.intValue = 0; } if (serieType == SerieType.Line) { EditorGUI.PropertyField(drawRect, m_LineType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SampleDist); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SampleType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SampleAverage); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } if (serieType == SerieType.Line || serieType == SerieType.Scatter || serieType == SerieType.EffectScatter || serieType == SerieType.Radar) { EditorGUI.PropertyField(drawRect, m_Symbol); drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); } if (serieType == SerieType.Bar) { EditorGUI.PropertyField(drawRect, m_BarType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarPercentStack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarWidth); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarZebraWidth); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarZebraGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } if (serieType == SerieType.Pie) { EditorGUI.PropertyField(drawRect, m_RoseType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Space); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius"); } EditorGUI.PropertyField(drawRect, m_LineStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle); if (serieType == SerieType.Line) { EditorGUI.PropertyField(drawRect, m_LineArrow); drawRect.y += EditorGUI.GetPropertyHeight(m_LineArrow); } EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_AreaStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); EditorGUI.PropertyField(drawRect, m_Animation); drawRect.y += EditorGUI.GetPropertyHeight(m_Animation); 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]) { EditorGUI.indentLevel++; float nameWid = 42; EditorGUI.PropertyField(new Rect(drawRect.x, drawRect.y, pos.width - 2 * nameWid - 2, pos.height), m_DataDimension); var nameRect = new Rect(pos.width - 2 * nameWid + 14, drawRect.y, nameWid, pos.height); if (GUI.Button(nameRect, new GUIContent("Name"))) { m_ShowDataName.boolValue = !m_ShowDataName.boolValue; } var iconRect = new Rect(pos.width - nameWid + 14, drawRect.y, nameWid, pos.height); if (GUI.Button(iconRect, new GUIContent("Other"))) { m_ShowDataIcon.boolValue = !m_ShowDataIcon.boolValue; } drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; var listSize = m_Datas.arraySize; listSize = EditorGUI.IntField(drawRect, "Size", listSize); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (listSize < 0) { listSize = 0; } if (m_DataDimension.intValue < 1) { m_DataDimension.intValue = 1; } int dimension = m_DataDimension.intValue; bool showName = m_ShowDataName.boolValue; bool showIcon = m_ShowDataIcon.boolValue; bool showSelected = (serieType == SerieType.Pie); if (listSize != m_Datas.arraySize) { while (listSize > m_Datas.arraySize) { m_Datas.InsertArrayElementAtIndex(m_Datas.arraySize); } while (listSize < m_Datas.arraySize) { m_Datas.DeleteArrayElementAtIndex(m_Datas.arraySize - 1); } } if (listSize > 30) { int num = listSize > 10 ? 10 : listSize; for (int i = 0; i < num; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width); } if (num >= 10) { EditorGUI.LabelField(drawRect, "..."); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, listSize - 1, pos.width); } } else { for (int i = 0; i < m_Datas.arraySize; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width); } } EditorGUI.indentLevel--; } --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_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) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty show = prop.FindPropertyRelative("m_Show"); SerializedProperty type = prop.FindPropertyRelative("m_Type"); SerializedProperty name = prop.FindPropertyRelative("m_Name"); SerializedProperty stack = prop.FindPropertyRelative("m_Stack"); SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex"); SerializedProperty m_RadarType = prop.FindPropertyRelative("m_RadarType"); SerializedProperty m_RadarIndex = prop.FindPropertyRelative("m_RadarIndex"); SerializedProperty m_MinShow = prop.FindPropertyRelative("m_MinShow"); SerializedProperty m_MaxShow = prop.FindPropertyRelative("m_MaxShow"); SerializedProperty m_MaxCache = prop.FindPropertyRelative("m_MaxCache"); SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle"); SerializedProperty m_ItemStyle = prop.FindPropertyRelative("m_ItemStyle"); SerializedProperty m_LineArrow = prop.FindPropertyRelative("m_LineArrow"); SerializedProperty m_LineType = prop.FindPropertyRelative("m_LineType"); SerializedProperty m_SampleDist = prop.FindPropertyRelative("m_SampleDist"); SerializedProperty m_SampleType = prop.FindPropertyRelative("m_SampleType"); SerializedProperty m_SampleAverage = prop.FindPropertyRelative("m_SampleAverage"); SerializedProperty m_BarType = prop.FindPropertyRelative("m_BarType"); SerializedProperty m_BarPercentStack = prop.FindPropertyRelative("m_BarPercentStack"); SerializedProperty m_BarWidth = prop.FindPropertyRelative("m_BarWidth"); SerializedProperty m_BarGap = prop.FindPropertyRelative("m_BarGap"); SerializedProperty m_BarZebraWidth = prop.FindPropertyRelative("m_BarZebraWidth"); SerializedProperty m_BarZebraGap = prop.FindPropertyRelative("m_BarZebraGap"); SerializedProperty m_AreaStyle = prop.FindPropertyRelative("m_AreaStyle"); SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol"); SerializedProperty m_RoseType = prop.FindPropertyRelative("m_RoseType"); SerializedProperty m_Space = prop.FindPropertyRelative("m_Space"); SerializedProperty m_Center = prop.FindPropertyRelative("m_Center"); SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius"); SerializedProperty m_Label = prop.FindPropertyRelative("m_Label"); SerializedProperty m_Emphasis = prop.FindPropertyRelative("m_Emphasis"); SerializedProperty m_Animation = prop.FindPropertyRelative("m_Animation"); SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension"); SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName"); SerializedProperty m_ShowDataIcon = prop.FindPropertyRelative("m_ShowDataIcon"); SerializedProperty m_Min = prop.FindPropertyRelative("m_Min"); SerializedProperty m_Max = prop.FindPropertyRelative("m_Max"); SerializedProperty m_StartAngle = prop.FindPropertyRelative("m_StartAngle"); SerializedProperty m_EndAngle = prop.FindPropertyRelative("m_EndAngle"); SerializedProperty m_RingGap = prop.FindPropertyRelative("m_RingGap"); SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber"); SerializedProperty m_Clockwise = prop.FindPropertyRelative("m_Clockwise"); SerializedProperty m_RoundCap = prop.FindPropertyRelative("m_RoundCap"); SerializedProperty m_GaugeType = prop.FindPropertyRelative("m_GaugeType"); SerializedProperty m_GaugeAxis = prop.FindPropertyRelative("m_GaugeAxis"); SerializedProperty m_GaugePointer = prop.FindPropertyRelative("m_GaugePointer"); SerializedProperty m_TitleStyle = prop.FindPropertyRelative("m_TitleStyle"); SerializedProperty m_Clip = prop.FindPropertyRelative("m_Clip"); SerializedProperty m_Ignore = prop.FindPropertyRelative("m_Ignore"); SerializedProperty m_IgnoreValue = prop.FindPropertyRelative("m_IgnoreValue"); SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data"); int index = InitToggle(prop); string moduleName = "Serie " + index; var toggle = ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieModuleToggle, prop, moduleName, show); if (!toggle) { var orderButton = 46; var gap = 4; drawRect.x += EditorGUIUtility.labelWidth + gap; drawRect.width = pos.width - drawRect.x + ChartEditorHelper.BOOL_WIDTH - orderButton; EditorGUI.PropertyField(drawRect, type, GUIContent.none); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } else { var serieType = (SerieType)type.enumValueIndex; ++EditorGUI.indentLevel; drawRect.x = pos.x; drawRect.width = pos.width; drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, type); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, name); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; switch (serieType) { case SerieType.Line: EditorGUI.PropertyField(drawRect, stack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_AxisIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MinShow); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MaxShow); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MaxCache); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_MinShow.intValue < 0) { m_MinShow.intValue = 0; } if (m_MinShow.intValue < 0) { m_MinShow.intValue = 0; } if (m_MaxCache.intValue < 0) { m_MaxCache.intValue = 0; } EditorGUI.PropertyField(drawRect, m_LineType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SampleDist); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SampleType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SampleAverage); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Clip); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Ignore); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_IgnoreValue); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Symbol); drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); EditorGUI.PropertyField(drawRect, m_LineStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle); EditorGUI.PropertyField(drawRect, m_LineArrow); drawRect.y += EditorGUI.GetPropertyHeight(m_LineArrow); EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_AreaStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; case SerieType.Bar: EditorGUI.PropertyField(drawRect, stack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_AxisIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MinShow); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MaxShow); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_MaxCache); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_MinShow.intValue < 0) { m_MinShow.intValue = 0; } if (m_MinShow.intValue < 0) { m_MinShow.intValue = 0; } if (m_MaxCache.intValue < 0) { m_MaxCache.intValue = 0; } EditorGUI.PropertyField(drawRect, m_BarType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarPercentStack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarWidth); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarZebraWidth); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarZebraGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Clip); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Ignore); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_IgnoreValue); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; case SerieType.Pie: EditorGUI.PropertyField(drawRect, m_RoseType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Space); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius"); EditorGUI.PropertyField(drawRect, m_RoundCap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; case SerieType.Ring: ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius"); EditorGUI.PropertyField(drawRect, m_StartAngle); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_RingGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_RoundCap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Clockwise); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_TitleStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_TitleStyle); EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; case SerieType.Radar: EditorGUI.PropertyField(drawRect, m_RadarType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_RadarIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Symbol); drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); EditorGUI.PropertyField(drawRect, m_LineStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle); EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_AreaStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; case SerieType.Scatter: case SerieType.EffectScatter: EditorGUI.PropertyField(drawRect, m_Clip); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Symbol); drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; case SerieType.Heatmap: EditorGUI.PropertyField(drawRect, m_Ignore); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_IgnoreValue); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; case SerieType.Gauge: EditorGUI.PropertyField(drawRect, m_GaugeType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center"); //ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius"); EditorGUI.PropertyField(drawRect, m_Radius.GetArrayElementAtIndex(0), new GUIContent("Radius")); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Min); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Max); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_StartAngle); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_EndAngle); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SplitNumber); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_SplitNumber.intValue > 36) { m_SplitNumber.intValue = 36; } EditorGUI.PropertyField(drawRect, m_RoundCap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_TitleStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_TitleStyle); EditorGUI.PropertyField(drawRect, m_GaugeAxis); drawRect.y += EditorGUI.GetPropertyHeight(m_GaugeAxis); EditorGUI.PropertyField(drawRect, m_GaugePointer); drawRect.y += EditorGUI.GetPropertyHeight(m_GaugePointer); EditorGUI.PropertyField(drawRect, m_ItemStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle); EditorGUI.PropertyField(drawRect, m_Label); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_Emphasis); drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis); break; } EditorGUI.PropertyField(drawRect, m_Animation); drawRect.y += EditorGUI.GetPropertyHeight(m_Animation); 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]) { EditorGUI.indentLevel++; float nameWid = 45; #if UNITY_2019_3_OR_NEWER var gap = 2; var namegap = 3; #else var gap = 0; var namegap = 0; #endif EditorGUI.PropertyField(new Rect(drawRect.x, drawRect.y, pos.width - 2 * nameWid - 2, pos.height), m_DataDimension); var nameRect = new Rect(pos.width - 2 * nameWid + 14 + gap, drawRect.y, nameWid - gap, pos.height); if (GUI.Button(nameRect, new GUIContent("Name"))) { m_ShowDataName.boolValue = !m_ShowDataName.boolValue; } var iconRect = new Rect(pos.width - nameWid + 14, drawRect.y, nameWid + namegap, pos.height); if (GUI.Button(iconRect, new GUIContent("More..."))) { m_ShowDataIcon.boolValue = !m_ShowDataIcon.boolValue; } drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; var listSize = m_Datas.arraySize; listSize = EditorGUI.IntField(drawRect, "Size", listSize); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (listSize < 0) { listSize = 0; } if (m_DataDimension.intValue < 1) { m_DataDimension.intValue = 1; } int dimension = m_DataDimension.intValue; bool showName = m_ShowDataName.boolValue; bool showIcon = m_ShowDataIcon.boolValue; bool showSelected = (serieType == SerieType.Pie); if (listSize != m_Datas.arraySize) { while (listSize > m_Datas.arraySize) { m_Datas.InsertArrayElementAtIndex(m_Datas.arraySize); } while (listSize < m_Datas.arraySize) { m_Datas.DeleteArrayElementAtIndex(m_Datas.arraySize - 1); } } if (listSize > 30) { int num = listSize > 10 ? 10 : listSize; for (int i = 0; i < num; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width); } if (num >= 10) { EditorGUI.LabelField(drawRect, "..."); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, listSize - 1, pos.width); } } else { for (int i = 0; i < m_Datas.arraySize; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width); } } drawRect.y += EditorGUIUtility.standardVerticalSpacing; EditorGUI.indentLevel--; } --EditorGUI.indentLevel; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty show = prop.FindPropertyRelative("m_Show"); SerializedProperty type = prop.FindPropertyRelative("m_Type"); SerializedProperty name = prop.FindPropertyRelative("m_Name"); SerializedProperty stack = prop.FindPropertyRelative("m_Stack"); SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex"); SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol"); SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension"); SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName"); SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data"); int index = InitToggle(prop); string moduleName = "Serie " + index; bool toggle = m_SerieModuleToggle[index]; m_SerieModuleToggle[index] = ChartEditorHelper.MakeFoldout(ref drawRect, ref toggle, moduleName, show); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_SerieModuleToggle[index]) { ++EditorGUI.indentLevel; EditorGUI.PropertyField(drawRect, type); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, name); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, stack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_AxisIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (type.enumValueIndex == (int)SerieType.Line || type.enumValueIndex == (int)SerieType.Scatter || type.enumValueIndex == (int)SerieType.EffectScatter) { EditorGUI.PropertyField(drawRect, m_Symbol); drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); } 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); drawRect.width = pos.width; if (m_DataFoldout[index]) { EditorGUI.indentLevel++; EditorGUI.PropertyField(drawRect, m_ShowDataName); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_DataDimension); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; var listSize = m_Datas.arraySize; listSize = EditorGUI.IntField(drawRect, "Size", listSize); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (listSize < 0) { listSize = 0; } if (m_DataDimension.intValue < 1) { m_DataDimension.intValue = 1; } int dimension = m_DataDimension.intValue; bool showName = m_ShowDataName.boolValue; if (listSize != m_Datas.arraySize) { while (listSize > m_Datas.arraySize) { m_Datas.InsertArrayElementAtIndex(m_Datas.arraySize); } while (listSize < m_Datas.arraySize) { m_Datas.DeleteArrayElementAtIndex(m_Datas.arraySize - 1); } } if (listSize > 30) { int num = listSize > 10 ? 10 : listSize; for (int i = 0; i < num; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, i); } if (num >= 10) { EditorGUI.LabelField(drawRect, "..."); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; DrawDataElement(ref drawRect, dimension, m_Datas, showName, listSize - 1); } } else { for (int i = 0; i < m_Datas.arraySize; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, i); } } EditorGUI.indentLevel--; } --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) { Rect drawRect = pos; drawRect.height = EditorGUIUtility.singleLineHeight; SerializedProperty show = prop.FindPropertyRelative("m_Show"); SerializedProperty type = prop.FindPropertyRelative("m_Type"); SerializedProperty name = prop.FindPropertyRelative("m_Name"); SerializedProperty stack = prop.FindPropertyRelative("m_Stack"); SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex"); SerializedProperty m_RadarIndex = prop.FindPropertyRelative("m_RadarIndex"); SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle"); SerializedProperty m_LineType = prop.FindPropertyRelative("m_LineType"); SerializedProperty m_BarWidth = prop.FindPropertyRelative("m_BarWidth"); SerializedProperty m_BarGap = prop.FindPropertyRelative("m_BarGap"); SerializedProperty m_BarCategoryGap = prop.FindPropertyRelative("m_BarCategoryGap"); SerializedProperty m_AreaStyle = prop.FindPropertyRelative("m_AreaStyle"); SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol"); SerializedProperty m_RoseType = prop.FindPropertyRelative("m_RoseType"); SerializedProperty m_ClickOffset = prop.FindPropertyRelative("m_ClickOffset"); SerializedProperty m_Space = prop.FindPropertyRelative("m_Space"); SerializedProperty m_Center = prop.FindPropertyRelative("m_Center"); SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius"); SerializedProperty m_Label = prop.FindPropertyRelative("m_Label"); SerializedProperty m_HighlightLabel = prop.FindPropertyRelative("m_HighlightLabel"); SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension"); SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName"); SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data"); int index = InitToggle(prop); string moduleName = "Serie " + index; var toggle = ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieModuleToggle, prop, moduleName, show); if (!toggle) { drawRect.x = EditorGUIUtility.labelWidth - (EditorGUI.indentLevel - 1) * 15 - 2 + 20; drawRect.width = pos.width - drawRect.x + 15; EditorGUI.PropertyField(drawRect, type, GUIContent.none); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } else { var serieType = (SerieType)type.enumValueIndex; ++EditorGUI.indentLevel; drawRect.x = pos.x; drawRect.width = pos.width; drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, type); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, name); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, stack); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (serieType == SerieType.Radar) { EditorGUI.PropertyField(drawRect, m_RadarIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } else { EditorGUI.PropertyField(drawRect, m_AxisIndex); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } if (serieType == SerieType.Line) { EditorGUI.PropertyField(drawRect, m_LineType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } if (serieType == SerieType.Line || serieType == SerieType.Scatter || serieType == SerieType.EffectScatter || serieType == SerieType.Radar) { EditorGUI.PropertyField(drawRect, m_Symbol); drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol); } if (serieType == SerieType.Bar) { EditorGUI.PropertyField(drawRect, m_BarWidth); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_BarGap); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } if (serieType == SerieType.Pie) { EditorGUI.PropertyField(drawRect, m_RoseType); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Space); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.LabelField(drawRect, "Center"); var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15; var tempWidth = (pos.width - startX + 35) / 2; var centerXRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height); var centerYRect = new Rect(centerXRect.x + tempWidth - 20, drawRect.y, tempWidth, drawRect.height); while (m_Center.arraySize < 2) { m_Center.InsertArrayElementAtIndex(m_Center.arraySize); } EditorGUI.PropertyField(centerXRect, m_Center.GetArrayElementAtIndex(0), GUIContent.none); EditorGUI.PropertyField(centerYRect, m_Center.GetArrayElementAtIndex(1), GUIContent.none); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; centerXRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height); centerYRect = new Rect(centerXRect.x + tempWidth - 20, drawRect.y, tempWidth, drawRect.height); EditorGUI.LabelField(drawRect, "Radius"); while (m_Radius.arraySize < 2) { m_Radius.InsertArrayElementAtIndex(m_Radius.arraySize); } EditorGUI.PropertyField(centerXRect, m_Radius.GetArrayElementAtIndex(0), GUIContent.none); EditorGUI.PropertyField(centerYRect, m_Radius.GetArrayElementAtIndex(1), GUIContent.none); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_ClickOffset); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } EditorGUI.PropertyField(drawRect, m_LineStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle); EditorGUI.PropertyField(drawRect, m_AreaStyle); drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle); EditorGUI.PropertyField(drawRect, m_Label, new GUIContent("Normal Label")); drawRect.y += EditorGUI.GetPropertyHeight(m_Label); EditorGUI.PropertyField(drawRect, m_HighlightLabel, new GUIContent("Highlight Label")); drawRect.y += EditorGUI.GetPropertyHeight(m_HighlightLabel); 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]) { EditorGUI.indentLevel++; float nameWid = 76; EditorGUI.PropertyField(new Rect(drawRect.x, drawRect.y, pos.width - nameWid - 2, pos.height), m_DataDimension); var nameRect = new Rect(pos.width - nameWid + 14, drawRect.y, nameWid, pos.height); var btnName = m_ShowDataName.boolValue ? "Hide Name" : "Show Name"; if (GUI.Button(nameRect, new GUIContent(btnName))) { m_ShowDataName.boolValue = !m_ShowDataName.boolValue; } drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; var listSize = m_Datas.arraySize; listSize = EditorGUI.IntField(drawRect, "Size", listSize); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (listSize < 0) { listSize = 0; } if (m_DataDimension.intValue < 1) { m_DataDimension.intValue = 1; } int dimension = m_DataDimension.intValue; bool showName = m_ShowDataName.boolValue; bool showSelected = (serieType == SerieType.Pie); if (listSize != m_Datas.arraySize) { while (listSize > m_Datas.arraySize) { m_Datas.InsertArrayElementAtIndex(m_Datas.arraySize); } while (listSize < m_Datas.arraySize) { m_Datas.DeleteArrayElementAtIndex(m_Datas.arraySize - 1); } } if (listSize > 30) { int num = listSize > 10 ? 10 : listSize; for (int i = 0; i < num; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, showSelected, i, pos.width); } if (num >= 10) { EditorGUI.LabelField(drawRect, "..."); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; DrawDataElement(ref drawRect, dimension, m_Datas, showName, showSelected, listSize - 1, pos.width); } } else { for (int i = 0; i < m_Datas.arraySize; i++) { DrawDataElement(ref drawRect, dimension, m_Datas, showName, showSelected, i, pos.width); } } EditorGUI.indentLevel--; } --EditorGUI.indentLevel; } }
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label) { InitProperty(prop); Rect drawRect = pos; float defaultLabelWidth = EditorGUIUtility.labelWidth; float defaultFieldWidth = EditorGUIUtility.fieldWidth; drawRect.height = EditorGUIUtility.singleLineHeight; ChartEditorHelper.MakeFoldout(ref drawRect, ref m_RadarModuleToggle, "Radar"); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; if (m_RadarModuleToggle) { ++EditorGUI.indentLevel; EditorGUIUtility.fieldWidth = 10; EditorGUIUtility.labelWidth = 50; drawRect.width = 60; EditorGUI.PropertyField(drawRect, m_Cricle); EditorGUIUtility.labelWidth = 45; drawRect.x += 60; EditorGUI.PropertyField(drawRect, m_Area); EditorGUIUtility.labelWidth = 70; drawRect.x += 55; drawRect.width = 80; EditorGUI.PropertyField(drawRect, m_Indicator); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.x = pos.x; drawRect.width = pos.width; EditorGUIUtility.labelWidth = defaultLabelWidth; EditorGUIUtility.fieldWidth = defaultFieldWidth; EditorGUI.PropertyField(drawRect, m_Radius); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_SplitNumber); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Left); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Right); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Top); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_Bottom); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_LineTickness); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_LinePointSize); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_AreaAlpha); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; EditorGUI.PropertyField(drawRect, m_LineColor); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; m_BackgroundColorToggle = EditorGUI.Foldout(drawRect, m_BackgroundColorToggle, "BackgroundColors"); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; drawRect.width = pos.width; if (m_BackgroundColorToggle) { ChartEditorHelper.MakeList(ref drawRect, ref m_BackgroundColorSize, m_BackgroundColorList); } drawRect.width = EditorGUIUtility.labelWidth + 10; m_IndicatorToggle = EditorGUI.Foldout(drawRect, m_IndicatorToggle, "Indicators"); ChartEditorHelper.MakeJsonData(ref drawRect, ref m_IndicatorJsonAreaToggle, ref m_IndicatorJsonAreaText, prop); drawRect.width = pos.width; if (m_IndicatorToggle) { ChartEditorHelper.MakeList(ref drawRect, ref m_IndicatorSize, m_IndicatorList); } --EditorGUI.indentLevel; } }