void OnGUI()
        {
            if (Event.current.type == EventType.ValidateCommand)
            {
                if (Event.current.commandName == "UndoRedoPerformed")
                {
                    Repaint();
                }
            }

            if (list != null)
            {
                if (EditorGUILayout.BeginFadeGroup(showGroups.faded))
                {
                    ShowToDoList();
                }
                EditorGUILayout.EndFadeGroup();

                if (EditorGUILayout.BeginFadeGroup(showEditingGroups.faded))
                {
                    ShowGroupEditing();
                }
                EditorGUILayout.EndFadeGroup();

                if (EditorGUILayout.BeginFadeGroup(showPreferences.faded))
                {
                    ShowPreferences();
                }
                EditorGUILayout.EndFadeGroup();
            }
            else
            {
                GUIStyle warningLabel = new GUIStyle(GUI.skin.label);
                warningLabel.alignment = TextAnchor.MiddleCenter;

                GUI.Label(new Rect(0, 0, size.x, size.y), "The To-Do List can't be found in 'Resources/Editor'.\nPressing 'Fix Now' will create a Resources folder in the 'Assets' folder.", warningLabel);

                if (GUI.Button(new Rect(size.x / 2 - 100, size.y / 2 + 20, 200, 20), "Fix Now"))
                {
                    if (!Directory.Exists(Application.dataPath + "/Resources/Editor"))
                    {
                        Directory.CreateDirectory(Application.dataPath + "/Resources/Editor");
                    }

                    ToDoListObject asset         = CreateInstance <ToDoListObject>();
                    PriorityGroup  criticalGroup = new PriorityGroup();
                    PriorityGroup  majorGroup    = new PriorityGroup();
                    PriorityGroup  minorGroup    = new PriorityGroup();
                    PriorityGroup  bugsGroup     = new PriorityGroup();
                    PriorityGroup  featuresGroup = new PriorityGroup();

                    criticalGroup.groupColor = new Color(1f, 0f, 0f);
                    criticalGroup.groupName  = "Critical Issues";
                    criticalGroup.labelStyle = FontStyle.Bold;
                    majorGroup.groupColor    = new Color(0f, 0f, 1f);
                    majorGroup.groupName     = "Major Issues";
                    minorGroup.groupColor    = new Color(1f, 0f, 1f);
                    minorGroup.groupName     = "Minor Issues";
                    bugsGroup.groupColor     = new Color(1f, 0.5f, 0f);
                    bugsGroup.groupName      = "Bugs";
                    featuresGroup.groupColor = new Color(0f, 0.5f, 0f);
                    featuresGroup.groupName  = "Features";

                    asset.priorityGroups.Add(criticalGroup);
                    asset.priorityGroups.Add(majorGroup);
                    asset.priorityGroups.Add(minorGroup);
                    asset.priorityGroups.Add(bugsGroup);
                    asset.priorityGroups.Add(featuresGroup);

                    string path = AssetDatabase.GenerateUniqueAssetPath("Assets/Resources/Editor/ToDoList.asset");
                    AssetDatabase.CreateAsset(asset, path);
                    AssetDatabase.SaveAssets();
                    AssetDatabase.Refresh();
                    UpdateAnimBools();
                    MakeEditingList();
                }
            }
        }
 void FindList()
 {
     list = Resources.Load("Editor/ToDoList") as ToDoListObject;
 }