Guest User

Untitled

a guest
Dec 9th, 2019
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.53 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEditor;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System;
  6.  
  7. namespace UI.Xml.Configuration
  8. {
  9.     [CustomEditor(typeof(XmlLayoutConfiguration))]
  10.     public class XmlConfigurationEditor : Editor
  11.     {
  12.         public override void OnInspectorGUI()
  13.         {
  14.             var config = target as XmlLayoutConfiguration;
  15.  
  16.             var comprehensiveAssemblySearch = config.ComprehensiveCustomElementAndAttributeCheck;
  17.  
  18.             base.OnInspectorGUI();
  19.  
  20.             // if we've changed this, we need to update symbols/etc.
  21.             if (comprehensiveAssemblySearch != config.ComprehensiveCustomElementAndAttributeCheck)
  22.             {
  23.                 XmlLayoutAssemblyHelper.ClearAssemblyNames();
  24.                 XmlLayoutPluginProcessor.ProcessInstalledPlugins();
  25.                 XmlLayoutSchemaProcessor.ProcessXmlSchema();
  26.             }
  27.  
  28. #if UNITY_2018_1_OR_NEWER
  29.                 EditorGUILayout.Space();
  30.                 EditorGUILayout.Space();
  31.                 EditorGUILayout.Space();
  32.  
  33.             if (GUILayout.Button("Generate Assembly Definition Files"))
  34.             {
  35.                 XmlLayoutPluginProcessor.GenerateAssemblyDefinitionFiles();
  36.             }
  37.  
  38.             if (GUILayout.Button("Delete Assembly Definition Files"))
  39.             {
  40.                 if (config.ManageAssemblyDefinitionsAutomatically)
  41.                 {
  42.                     Debug.LogWarning("[XmlLayout] Please note: as 'Manage Assembly Definitions Automatically' is enabled, XmlLayout will automatically recreate assembly definition files immediately.");
  43.                 }
  44.  
  45.                 XmlLayoutPluginProcessor.DeleteAssemblyDefinitionFiles();
  46.             }
  47. #endif
  48.  
  49.             EditorGUILayout.Space();
  50.             EditorGUILayout.Space();
  51.             EditorGUILayout.Space();
  52.  
  53.             if (GUILayout.Button("Regenerate XSD file Now"))
  54.             {
  55.                 XmlLayoutSchemaProcessor.ProcessXmlSchema(true);
  56.             }
  57.  
  58.             EditorGUILayout.Space();
  59.             EditorGUILayout.Space();
  60.             EditorGUILayout.Space();
  61.  
  62.             if (GUILayout.Button("Edit XSD file in Visual Studio"))
  63.             {
  64.                 AssetDatabase.OpenAsset(((XmlLayoutConfiguration)target).XSDFile);
  65.             }
  66.  
  67.             if (GUILayout.Button("Edit XSD file in MonoDevelop"))
  68.             {
  69. #if UNITY_2019_2_OR_NEWER
  70.                 Unity.CodeEditor.CodeEditor.CurrentEditor.OpenProject(AssetDatabase.GetAssetPath(((XmlLayoutConfiguration)target).XSDFile), 0);
  71. #else
  72.                 UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal(AssetDatabase.GetAssetPath(((XmlLayoutConfiguration)target).XSDFile), 0);
  73. #endif
  74.             }
  75.  
  76.             EditorGUILayout.Space();
  77.             EditorGUILayout.Space();
  78.             EditorGUILayout.Space();
  79.  
  80. #if MVVM_ENABLED
  81.             if (GUILayout.Button("Disable MVVM Functionality"))
  82.             {
  83.                 XmlLayoutEditorUtilities.RemoveSymbol("MVVM_ENABLED");
  84.             }
  85. #else
  86.             if (GUILayout.Button("Enable MVVM Functionality"))
  87.             {
  88.                 EditorUtility.DisplayDialog("Notice", "Please be advised that you may need to re-import XmlLayout in order for this to work in some versions of Unity. To do this, right click on the UI/XmlLayout/ folder and select 'Reimport'.", "Ok");
  89.                 XmlLayoutEditorUtilities.AddSymbol("MVVM_ENABLED");
  90.             }
  91. #endif
  92.  
  93. #if MVVM_DISABLED
  94.             XmlLayoutEditorUtilities.RemoveSymbol("MVVM_DISABLED");
  95. #endif
  96.         }
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment