コード例 #1
0
        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();
                    }
                }
        }