public void DrawWindowLayout(FlowWindow window) { var flowWindowWithLayout = FlowSystem.GetData().flowWindowWithLayout; if (flowWindowWithLayout == true) { if (this.layoutBoxStyle == null) this.layoutBoxStyle = FlowSystemEditorWindow.defaultSkin.FindStyle("LayoutBox"); GUILayout.Box(string.Empty, this.layoutBoxStyle, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true)); var rect = GUILayoutUtility.GetLastRect(); if (window.OnPreviewGUI(rect, FlowSystemEditorWindow.defaultSkin.button, this.layoutBoxStyle, drawInfo: true, selectable: true, onCreateScreen: () => { this.SelectWindow(window); FlowChooserFilter.CreateScreen(Selection.activeObject, window.compiledNamespace, "/Screens", () => { this.SelectWindow(window); }); }, onCreateLayout: () => { this.SelectWindow(window); Selection.activeObject = window.GetScreen(); FlowChooserFilter.CreateLayout(Selection.activeObject, Selection.activeGameObject, () => { this.SelectWindow(window); }); }) == true) { // Set for waiting connection var element = WindowLayoutElement.waitForComponentConnectionElementTemp; this.WaitForAttach(window.id, element); WindowLayoutElement.waitForComponentConnectionTemp = false; } UnityEditor.UI.Windows.Plugins.Flow.Flow.OnDrawWindowLayoutGUI(rect, window); } }