public void OnGUI()
        {
            if (AddSchemaDirButton == null)
            {
                AddSchemaDirButton = new GUIContent(EditorGUIUtility.IconContent("Toolbar Plus"))
                {
                    tooltip = "Add schema directory"
                };

                RemoveSchemaDirButton = new GUIContent(EditorGUIUtility.IconContent("Toolbar Minus"))
                {
                    tooltip = "Remove schema directory"
                };
            }

            using (new EditorGUILayout.VerticalScope())
                using (var scroll = new EditorGUILayout.ScrollViewScope(scrollPosition))
                    using (var check = new EditorGUI.ChangeCheckScope())
                    {
                        DrawGeneralSection();

                        DrawCodeGenerationOptions();

                        DrawCustomSnapshotDir();

                        if (check.changed)
                        {
                            configErrors = toolsConfig.Validate();

                            if (configErrors.Count == 0)
                            {
                                hasUnsavedData = true;
                            }
                        }

                        GUILayout.Space(10f);
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            GUILayout.FlexibleSpace();
                            if (GUILayout.Button(ResetConfigurationButtonText, EditorStyles.miniButtonMid, GUILayout.Width(150)))
                            {
                                if (EditorUtility.DisplayDialog("Confirmation", "Are you sure you want to reset to defaults?",
                                                                "Yes", "No"))
                                {
                                    GUI.FocusControl(null);
                                    toolsConfig.ResetToDefault();
                                }
                            }

                            GUILayout.FlexibleSpace();
                        }

                        scrollPosition = scroll.scrollPosition;
                    }

            foreach (var error in configErrors)
            {
                EditorGUILayout.HelpBox(error, MessageType.Error);
            }
        }
        public void OnGUI()
        {
            if (AddSchemaDirButton == null)
            {
                AddSchemaDirButton = new GUIContent(EditorGUIUtility.IconContent("Toolbar Plus"))
                {
                    tooltip = "Add schema directory"
                };

                RemoveSchemaDirButton = new GUIContent(EditorGUIUtility.IconContent("Toolbar Minus"))
                {
                    tooltip = "Remove schema directory"
                };
            }

            using (new EditorGUILayout.VerticalScope())
                using (var scroll = new EditorGUILayout.ScrollViewScope(scrollPosition))
                    using (var check = new EditorGUI.ChangeCheckScope())
                    {
                        using (new EditorGUILayout.HorizontalScope(EditorStyles.toolbar))
                        {
                            var canSave = configErrors.Count > 0;
                            using (new EditorGUI.DisabledScope(canSave))
                            {
                                if (GUILayout.Button(SaveConfigurationButtonText, EditorStyles.toolbarButton))
                                {
                                    toolsConfig.Save();
                                }
                            }

                            if (GUILayout.Button(ResetConfigurationButtonText, EditorStyles.toolbarButton))
                            {
                                if (EditorUtility.DisplayDialog("Confirmation", "Are you sure you want to reset to defaults?",
                                                                "Yes", "No"))
                                {
                                    toolsConfig.ResetToDefault();
                                }
                            }
                        }

                        DrawGeneralSection();

                        DrawCodeGenerationOptions();

                        DrawCustomSnapshotDir();

                        if (check.changed)
                        {
                            configErrors = toolsConfig.Validate();
                        }

                        scrollPosition = scroll.scrollPosition;
                    }

            foreach (var error in configErrors)
            {
                EditorGUILayout.HelpBox(error, MessageType.Error);
            }
        }
Esempio n. 3
0
        public void OnGUI()
        {
            EditorGUI.BeginChangeCheck();

            using (var check = new EditorGUI.ChangeCheckScope())
            {
                DrawCoreSdkOptions();
                DrawHorizontalBreak();
                DrawCodeGenerationOptions();
                DrawHorizontalBreak();

                using (new EditorGUI.DisabledScope(configErrors.Count != 0))
                {
                    if (GUILayout.Button(SaveConfigurationButtonText, GUILayout.Width(250)))
                    {
                        toolsConfig.Save();
                    }
                }

                GUILayout.Space(15);

                if (GUILayout.Button(ResetConfigurationButtonText, GUILayout.Width(250)))
                {
                    toolsConfig.ResetToDefault();
                }

                if (check.changed)
                {
                    configErrors = toolsConfig.Validate();
                }
            }

            if (configErrors.Count <= 0)
            {
                return;
            }

            DrawHorizontalBreak();
            foreach (var error in configErrors)
            {
                EditorGUILayout.HelpBox(error, MessageType.Error);
            }
        }