void DoAdvanvedView(Type canvasType, bool includeSimple) { SerializedProperty mainDivisions = serializedObject.FindProperty("mainDivisions"); SerializedProperty subDivisions = serializedObject.FindProperty("subDivisions"); mMain = mainDivisions.isExpanded = EditorGUILayout.Foldout(mainDivisions.isExpanded, "Main Divisions"); if (mMain) { EditorGUI.indentLevel++; SerializedProperty end = mainDivisions.GetEndProperty(); while (mainDivisions.NextVisible(true) && SerializedProperty.EqualContents(mainDivisions, end) == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(ChartDivisionInfo), mainDivisions.name, canvasType) == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(AxisBase), mainDivisions.name, canvasType) == false) { continue; } } if (includeSimple == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(ChartDivisionInfo), mainDivisions.name, typeof(SimpleAttribute))) { continue; } } EditorGUILayout.PropertyField(mainDivisions); } EditorGUI.indentLevel--; } mSub = subDivisions.isExpanded = EditorGUILayout.Foldout(subDivisions.isExpanded, "Sub Divisions"); if (mSub) { EditorGUI.indentLevel++; SerializedProperty end = subDivisions.GetEndProperty(); while (subDivisions.NextVisible(true) && SerializedProperty.EqualContents(subDivisions, end) == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(ChartDivisionInfo), subDivisions.name, canvasType) == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(AxisBase), subDivisions.name, canvasType) == false) { continue; } } if (includeSimple == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(ChartDivisionInfo), subDivisions.name, typeof(SimpleAttribute))) { continue; } } EditorGUILayout.PropertyField(subDivisions); } EditorGUI.indentLevel--; } }
void DoSimpleView(Type canvasType) { SerializedProperty it = serializedObject.FindProperty("mainDivisions"); SerializedProperty SubDivisions = serializedObject.FindProperty("subDivisions"); object mainDivision = ((AxisBase)target).MainDivisions; object subDivision = ((AxisBase)target).SubDivisions; if (it == null || SubDivisions == null) { return; } SerializedProperty end = it.GetEndProperty(); while (it.NextVisible(true) && SerializedProperty.EqualContents(end, it) == false) { if (it.name == "SimpleView") { continue; } if (ChartEditorCommon.HasAttributeOfType(typeof(ChartDivisionInfo), it.name, canvasType) == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(AxisBase), it.name, canvasType) == false) { continue; } } if (ChartEditorCommon.HasAttributeOfType(typeof(AxisBase), it.name, typeof(SimpleAttribute)) == false) { if (ChartEditorCommon.HasAttributeOfType(typeof(ChartDivisionInfo), it.name, typeof(SimpleAttribute)) == false) { continue; } } SerializedProperty clone = SubDivisions.FindPropertyRelative(it.name); if (clone == null) { Debug.LogWarning("can't find property " + it.name); } bool equal = CompareValues(typeof(ChartDivisionInfo), clone.name, mainDivision, subDivision); Type t = getTypeFromField(typeof(ChartDivisionInfo), clone.name); EditorGUI.BeginChangeCheck(); EditorGUI.showMixedValue = !equal; DoMixedFiled(it, t); EditorGUI.showMixedValue = false; if (EditorGUI.EndChangeCheck()) { SetValue(clone, it); } } DoAdvanvedView(canvasType, false); }
void OnGUI() { EditorGUILayout.LabelField(string.Format("Select a new {0} name", mType)); mValue = EditorGUILayout.TextField(mValue); bool disabled = false; if (mValue.Trim().Length == 0) { mMessage = null; EditorGUILayout.LabelField("Name can't be empty"); disabled = true; } else if (ChartEditorCommon.IsAlphaNum(mValue) == false) { mMessage = null; EditorGUILayout.LabelField("Name contains invalid charecters"); disabled = true; } if (mMessage != null) { EditorGUILayout.LabelField(mMessage); } EditorGUILayout.BeginHorizontal(); GUI.enabled = !disabled; if (GUILayout.Button("Rename")) { if (mStartName == mValue) { Close(); } else { if (mRenameMethod(mStartName, mValue)) { Close(); } else { mMessage = string.Format("A {0} by the name {1} already exists", mType, mValue); } } } GUI.enabled = true; GUILayout.FlexibleSpace(); if (GUILayout.Button("Cancel")) { Close(); } EditorGUILayout.EndHorizontal(); }