private void DrawQueuedConfigs()
        {
            for (int i = 0; i < BuilderManager.buildQueue.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();

                EditorGUILayout.LabelField((i + 1) + ".", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(15f));

                EditorGUILayout.LabelField(BuilderManager.data.Configs[BuilderManager.buildQueue[i]].name);

                if (GUILayout.Button("Build", EditorStyles.miniButtonLeft))
                {
                    if (EditorUtility.DisplayDialog("Builder", "Run solo build for " + BuilderManager.data.Configs[BuilderManager.buildQueue[i]].name + "?", "Yes", "No"))
                    {
                        BuilderManager.BuildConfig(BuilderManager.buildQueue[i]);
                    }
                }
                else if (GUILayout.Button("Edit", EditorStyles.miniButtonMid))
                {
                    ConfigEditorWindow.EditConfig(BuilderManager.buildQueue[i]);
                }
                else if (GUILayout.Button("Remove", EditorStyles.miniButtonRight))
                {
                    BuilderManager.buildQueue.RemoveAt(i);
                }

                EditorGUILayout.EndHorizontal();
            }
        }
        private void DrawConfig(int index)
        {
            EditorGUILayout.BeginHorizontal();

            EditorGUILayout.LabelField(new GUIContent(BuilderManager.data.Configs[index].name));

            if (GUILayout.Button("Build", EditorStyles.miniButtonLeft, GUILayout.MaxWidth(80f)))
            {
                if (EditorUtility.DisplayDialog("Builder", "Build " + BuilderManager.data.Configs[index].name + " configuration?", "Yes", "No"))
                {
                    BuilderManager.BuildConfig(index);
                }
            }
            if (GUILayout.Button("Edit", EditorStyles.miniButtonMid, GUILayout.MaxWidth(80f)))
            {
                ConfigEditorWindow.EditConfig(index);
            }
            if (GUILayout.Button("Set Active", EditorStyles.miniButtonMid, GUILayout.MaxWidth(80f)))
            {
                if (EditorUtility.DisplayDialog("Builder", "Set the environment to the " + BuilderManager.data.Configs[index].name + " configuration?", "Yes", "No"))
                {
                    EditorUserBuildSettings.SwitchActiveBuildTarget(BuilderManager.data.Configs[index].buildTarget);
                    PlayerSettings.SetScriptingDefineSymbolsForGroup(BuilderManager.data.Configs[index].BuildTargetGroup, BuilderManager.data.Configs[index].scriptingDefineSymbols);
                }
            }
            if (GUILayout.Button("Delete", EditorStyles.miniButtonRight, GUILayout.MaxWidth(80f)))
            {
                if (EditorUtility.DisplayDialog("Builder", "Really delete " + BuilderManager.data.Configs[index].name + " configuration?", "Yes", "No"))
                {
                    BuilderManager.data.RemoveConfig(index);
                }
            }

            EditorGUILayout.EndHorizontal();
        }
 public void AddNewBuildConfig()
 {
     ConfigEditorWindow.EditConfig(BuilderManager.data.AddNewConfig());
 }