void OnGUI() { EditorGUI.BeginChangeCheck(); m_Info.name = EditorGUILayout.TextField("Enum name", m_Info.name); if (m_EnumList == null) { RebuildList(); } m_EnumList.DoLayoutList(); if (EditorGUI.EndChangeCheck()) { m_ErrorMessage = CheckForErrors(m_Info); m_EnumExist = EnumExist(m_Info); } GUILayout.Space(5); if (!string.IsNullOrEmpty(m_ErrorMessage)) { GUILayout.Space(5); EditorGUILayout.HelpBox(m_ErrorMessage, MessageType.Error); } else if (m_EnumExist) { EditorGUILayout.HelpBox("An enum with this name already exists", MessageType.Warning); } GUILayout.Space(5); using (new EditorGUI.DisabledScope(!string.IsNullOrEmpty(m_ErrorMessage))) using (new GUILayout.HorizontalScope()) { GUILayout.FlexibleSpace(); if (GUILayout.Button( m_EnumExist ? "Update Enum" : "Add New Enum", Styles.button, GUILayout.ExpandWidth(false))) { m_ProtoFile.AddEnum(m_Info); this.Close(); } } }