mirror of
https://github.com/Siccity/xNode.git
synced 2026-03-26 22:49:02 +08:00
!WO(Node Editor Window) Multi Open Support
This commit is contained in:
parent
2c45dd4d66
commit
25053eaa2c
@ -7,7 +7,29 @@ using Object = UnityEngine.Object;
|
|||||||
|
|
||||||
namespace XNodeEditor {
|
namespace XNodeEditor {
|
||||||
[InitializeOnLoad]
|
[InitializeOnLoad]
|
||||||
public partial class NodeEditorWindow : EditorWindow {
|
public partial class NodeEditorWindow : EditorWindow,IHasCustomMenu {
|
||||||
|
|
||||||
|
public bool Lock { get; private set; }
|
||||||
|
|
||||||
|
[System.NonSerialized]
|
||||||
|
GUIStyle lockButtonStyle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Magic method which Unity detects automatically.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="position">Position of button.</param>
|
||||||
|
void ShowButton(Rect position) {
|
||||||
|
if (lockButtonStyle == null)
|
||||||
|
lockButtonStyle = "IN LockButton";
|
||||||
|
Lock = GUI.Toggle(position, Lock, GUIContent.none, lockButtonStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddItemsToMenu(GenericMenu menu)
|
||||||
|
{
|
||||||
|
menu.AddItem(new GUIContent("Lock"), Lock, () => {
|
||||||
|
Lock = !Lock;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
[MenuItem("Icarus/Node Editor/Close All Editor Window")]
|
[MenuItem("Icarus/Node Editor/Close All Editor Window")]
|
||||||
static void CloseAllNodeEditorWindow()
|
static void CloseAllNodeEditorWindow()
|
||||||
@ -203,7 +225,30 @@ namespace XNodeEditor {
|
|||||||
public static void Open(XNode.NodeGraph graph) {
|
public static void Open(XNode.NodeGraph graph) {
|
||||||
if (!graph) return;
|
if (!graph) return;
|
||||||
|
|
||||||
NodeEditorWindow w = GetWindow(typeof(NodeEditorWindow), false, "xNode", true) as NodeEditorWindow;
|
var windows = Resources.FindObjectsOfTypeAll<NodeEditorWindow>();
|
||||||
|
NodeEditorWindow w = null;
|
||||||
|
foreach (var window in windows)
|
||||||
|
{
|
||||||
|
if (window.Lock)
|
||||||
|
{
|
||||||
|
if (window.graph == graph)
|
||||||
|
{
|
||||||
|
w = window;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
w = window;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!w)
|
||||||
|
{
|
||||||
|
w = CreateWindow<NodeEditorWindow>("xNode");
|
||||||
|
}
|
||||||
|
|
||||||
|
w.Show(true);
|
||||||
|
w.Focus();
|
||||||
w.wantsMouseMove = true;
|
w.wantsMouseMove = true;
|
||||||
w.graph = graph;
|
w.graph = graph;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user