Exemple #1
0
        private void OnGUI()
        {
            if (INSTALLATION_TAB < 0)
            {
                INSTALLATION_TAB = 0;
            }

            if (EditorApplication.isCompiling)
            {
                this.ShowNotification(new GUIContent(" Compiling...", EditorGUIUtility.IconContent("cs Script Icon").image));
            }
            else
            {
                this.RemoveNotification();
            }

            //Header
            {
                if (SCPE_GUI.HeaderImg)
                {
                    Rect headerRect = new Rect(0, -5, width, SCPE_GUI.HeaderImg.height);
                    UnityEngine.GUI.DrawTexture(headerRect, SCPE_GUI.HeaderImg, ScaleMode.ScaleToFit);
                    GUILayout.Space(SCPE_GUI.HeaderImg.height - 10);
                }
                else
                {
                    EditorGUILayout.Space();
                    EditorGUILayout.LabelField("<b><size=24>SC Post Effects</size></b>\n<size=16>For Post Processing Stack</size>", SCPE_GUI.Header);
                }

                using (new EditorGUILayout.HorizontalScope())
                {
                    using (new EditorGUI.DisabledGroupScope((int)INSTALLATION_TAB != 0))
                    {
                        GUILayout.Toggle((INSTALLATION_TAB == 0), new GUIContent("Pre-install"), SCPE_GUI.ProgressTab);
                    }
                    using (new EditorGUI.DisabledGroupScope((int)INSTALLATION_TAB != 1))
                    {
                        GUILayout.Toggle(((int)INSTALLATION_TAB == 1), "Installation", SCPE_GUI.ProgressTab);
                    }
                    using (new EditorGUI.DisabledGroupScope((int)INSTALLATION_TAB != 2))
                    {
                        GUILayout.Toggle(((int)INSTALLATION_TAB == 2), "Finish", SCPE_GUI.ProgressTab);
                    }
                }
            }

            GUILayout.Space(5f);

            //Body
            Rect oRect    = EditorGUILayout.GetControlRect();
            Rect bodyRect = new Rect(oRect.x + 10, 115, width - 20, height);

            GUILayout.BeginArea(bodyRect);
            {
                switch (INSTALLATION_TAB)
                {
                case (Tab)0:
                    StartScreen();
                    break;

                case (Tab)1:
                    InstallScreen();
                    break;

                case (Tab)2:
                    FinalScreen();
                    break;
                }
            }
            GUILayout.EndArea();

            //Progress buttons

            Rect errorRect = new Rect(225, height - 95, width * 2.2f, 25);

            GUILayout.BeginArea(errorRect);

            if (hasError)
            {
                SCPE_GUI.DrawStatusString("Correct any errors to continue", SCPE_GUI.Status.Error, false);
            }
            GUILayout.EndArea();

            Rect buttonRect = new Rect(width / 2, height - 70, width / 2.2f, height - 25);

            GUILayout.BeginArea(buttonRect);

            using (new EditorGUILayout.HorizontalScope())
            {
                //EditorGUILayout.PrefixLabel(" ");

                //Disable buttons when installing
                using (new EditorGUI.DisabledGroupScope(Installer.CURRENTLY_INSTALLING))
                {
                    //Disable back button on first screen
                    using (new EditorGUI.DisabledGroupScope(INSTALLATION_TAB == Tab.Start))
                    {
                        if (GUILayout.Button("<size=16>‹</size> Back", SCPE_GUI.ProgressButtonLeft))
                        {
                            INSTALLATION_TAB--;
                        }
                    }
                    using (new EditorGUI.DisabledGroupScope(hasError))
                    {
                        string btnLabel = string.Empty;
                        if (INSTALLATION_TAB == Tab.Start)
                        {
                            btnLabel = "Next <size=16>›</size>";
                        }
                        if (INSTALLATION_TAB == Tab.Install)
                        {
                            btnLabel = "Install <size=16>›</size>";
                        }
                        if (INSTALLATION_TAB == Tab.Install && Installer.IS_INSTALLED)
                        {
                            btnLabel = "Finish";
                        }
                        if (INSTALLATION_TAB == Tab.Finish)
                        {
                            btnLabel = "Close";
                        }

                        if (GUILayout.Button(btnLabel, SCPE_GUI.ProgressButtonRight))
                        {
                            if (INSTALLATION_TAB == Tab.Start)
                            {
                                INSTALLATION_TAB = Tab.Install;
                                return;
                            }

                            //When pressing install again
                            if (INSTALLATION_TAB == Tab.Install)
                            {
                                if (Installer.IS_INSTALLED == false)
                                {
                                    Installer.Install();
                                }
                                else
                                {
                                    INSTALLATION_TAB = Tab.Finish;
                                }

                                return;
                            }

                            if (INSTALLATION_TAB == Tab.Finish)
                            {
                                Installer.PostInstall();
                                this.Close();
                            }
                        }
                    }
                }
            }
            GUILayout.EndArea();

            //Footer
            buttonRect = new Rect(width / 4, height - 30, width / 2.1f, height - 25);
            GUILayout.BeginArea(buttonRect);
            EditorGUILayout.LabelField("- Staggart Creations -", SCPE_GUI.Footer);
            GUILayout.EndArea();
        }