// ---------------------------------------------------------------------- void ProcessPicking(iCS_PickInfo pickInfo) { if (myClickCount < 2) { return; } iCS_EditorObject pickedObject = pickInfo.PickedObject; switch (pickInfo.PickedPart) { case iCS_PickPartEnum.Name: case iCS_PickPartEnum.Value: case iCS_PickPartEnum.EditorObject: { if (pickedObject.IsPort) { CloseSubEditor(); mySubEditor = PortEditor.Create(pickedObject, new Vector2(100, 100)); } else { CloseSubEditor(); if (pickedObject.IsIconizedInLayout) { iCS_UserCommands.Unfold(pickedObject); } else { mySubEditor = NodeEditor.Create(pickedObject, new Vector2(100, 100)); } } myClickCount = 0; break; } } }
// =================================================================== // BUILDER // ------------------------------------------------------------------- /// Creates a port editor window at the given screen position. /// /// @param screenPosition The screen position where the editor /// should be displayed. /// public static EditorWindow Create(iCS_EditorObject port, Vector2 screenPosition) { if (port == null) { return(null); } // Create the specific port editors. var parent = port.ParentNode; if (parent.IsEventHandler) { return(EventHandlerPortEditor.Create(port, screenPosition)); } if (parent.IsFunctionDefinition) { return(FunctionDefinitionPortEditor.Create(port, screenPosition)); } if (parent.IsPackage) { return(PackagePortEditor.Create(port, screenPosition)); } if (parent.IsKindOfFunction) { return(FunctionCallPortEditor.Create(port, screenPosition)); } // Create a generic port editor. var self = PortEditor.CreateInstance <PortEditor>(); self.vsObject = port; Texture2D iCanScriptLogo = null; TextureCache.GetTexture(iCS_EditorStrings.TitleLogoIcon, out iCanScriptLogo); self.titleContent = new GUIContent("Port Editor", iCanScriptLogo); self.ShowUtility(); return(self); }