SW 중심대학 OSS GIT 서버
박건태, 이승준, 고기완, 이준호
새로운 배포
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using UnityEngine;using UnityEditor.Collaboration;using UnityEditor.Web;using UnityEditor.Connect;
namespace UnityEditor{ [InitializeOnLoad] internal class WebViewStatic : ScriptableSingleton<WebViewStatic> { [SerializeField] WebView m_WebView;
static public WebView GetWebView() { return instance.m_WebView; }
static public void SetWebView(WebView webView) { instance.m_WebView = webView; } }
[InitializeOnLoad] internal class CollabToolbarWindow : WebViewEditorStaticWindow, IHasCustomMenu { internal override WebView webView { get {return WebViewStatic.GetWebView(); } set {WebViewStatic.SetWebView(value); } }
private const string kWindowName = "Unity Collab Toolbar";
private static long s_LastClosedTime; private static CollabToolbarWindow s_CollabToolbarWindow;
public static bool s_ToolbarIsVisible = false;
const int kWindowWidth = 320; const int kWindowHeight = 350;
public static void CloseToolbar() { foreach (CollabToolbarWindow window in Resources.FindObjectsOfTypeAll<CollabToolbarWindow>()) window.Close(); }
[MenuItem("Window/Asset Management/Collab Toolbar", false /*IsValidateFunction*/, 2, true /* IsInternalMenu */)] public static CollabToolbarWindow ShowToolbarWindow() { //Create a new window if it does not exist
if (s_CollabToolbarWindow == null) { s_CollabToolbarWindow = GetWindow<CollabToolbarWindow>(false, kWindowName) as CollabToolbarWindow; }
return s_CollabToolbarWindow; }
[MenuItem("Window/Asset Management/Collab Toolbar", true /*IsValidateFunction*/)] public static bool ValidateShowToolbarWindow() { return true; }
public static bool IsVisible() { return s_ToolbarIsVisible; }
public static bool ShowCenteredAtPosition(Rect buttonRect) { buttonRect.x -= kWindowWidth / 2; // We could not use realtimeSinceStartUp since it is set to 0 when entering/exitting playmode, we assume an increasing time when comparing time.
long nowMilliSeconds = System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond; bool justClosed = nowMilliSeconds < s_LastClosedTime + 50; if (!justClosed) { // Method may have been triggered programmatically, without a user event to consume.
if (Event.current.type != EventType.Layout) { Event.current.Use(); } if (s_CollabToolbarWindow == null) s_CollabToolbarWindow = CreateInstance<CollabToolbarWindow>() as CollabToolbarWindow; var windowSize = new Vector2(kWindowWidth, kWindowHeight); s_CollabToolbarWindow.initialOpenUrl = "file:///" + EditorApplication.userJavascriptPackagesPath + "unityeditor-collab-toolbar/dist/index.html"; s_CollabToolbarWindow.Init(); s_CollabToolbarWindow.ShowAsDropDown(buttonRect, windowSize); s_CollabToolbarWindow.OnFocus(); return true; } return false; }
// Receives HTML title
public void OnReceiveTitle(string title) { titleContent.text = title; }
public new void OnInitScripting() { base.OnInitScripting(); }
public override void OnEnable() { minSize = new Vector2(kWindowWidth, kWindowHeight); maxSize = new Vector2(kWindowWidth, kWindowHeight); initialOpenUrl = "file:///" + EditorApplication.userJavascriptPackagesPath + "unityeditor-collab-toolbar/dist/index.html"; base.OnEnable(); s_ToolbarIsVisible = true; }
internal new void OnDisable() { s_LastClosedTime = System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond; if (s_CollabToolbarWindow) { s_ToolbarIsVisible = false; NotifyVisibility(s_ToolbarIsVisible); } s_CollabToolbarWindow = null;
base.OnDisable(); }
public new void OnDestroy() { OnLostFocus(); base.OnDestroy(); } }}
|