using System; using UnityEditor; using Unity.PlasticSCM.Editor.Diff; using Unity.PlasticSCM.Editor.CloudDrive; using Unity.PlasticSCM.Editor.Views.BranchExplorer; using Unity.PlasticSCM.Editor.Views.BranchExplorer.Options; namespace Unity.PlasticSCM.Editor.UI { internal static class GetWindowIfOpened { internal static UVCSWindow UVCS() { if (!EditorWindow.HasOpenInstances()) return null; UVCSWindow window = EditorWindow.GetWindow(null, false); if (EditorWindowHost.IsDetached(window)) return null; return window; } internal static BranchExplorerWindow BranchExplorer() { if (!EditorWindow.HasOpenInstances()) return null; return EditorWindow.GetWindow(null, false); } internal static BranchExplorerOptionsWindow BranchExplorerOptions() { if (!EditorWindow.HasOpenInstances()) return null; return EditorWindow.GetWindow(null, false); } internal static CloudDriveWindow CloudDrive() { if (!EditorWindow.HasOpenInstances()) return null; return EditorWindow.GetWindow(null, false); } internal static void SetGetDiffWindowForTesting(Func getDiffWindowForTesting) { mGetDiffWindowForTesting = getDiffWindowForTesting; } internal static IUnityDiffWindow Diff() { if (mGetDiffWindowForTesting != null) return mGetDiffWindowForTesting(); if (!EditorWindow.HasOpenInstances()) return null; return EditorWindow.GetWindow(null, false); } static Func mGetDiffWindowForTesting; } }