private void OnGUI() { Event e = Event.current; mousePos = e.mousePosition; if (e.type == EventType.MouseDown) { BaseNode tempNode = ClickedOnANode(); if (e.button == 1) { if (tempNode == null) { GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("Create Node"), false, AddNode, typeof(EmptyNode)); menu.ShowAsContext(); e.Use(); } else { GUI.BringWindowToFront(tempNode.id); GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("Delete Node"), false, DeleteNode, tempNode); menu.ShowAsContext(); e.Use(); } } else if (e.button == 0) { if (tempNode != null) { selectedElement = tempNode.ClickedOn(mousePos); //!= tempNode ? tempNode.ClickedOn(mousePos) : null; if (selectedElement) { } //Debug.Log(selectedElement.GetType()); } } } if (e.type == EventType.mouseDrag) { Debug.Log("calling this"); if (selectedElement != null)//&& !(selectedElement is BaseNode)) { selectedElement.IncrementElementRect(e.delta); //selectedElement.GetBaseNode().CalculateRect(); Event.current.Use(); } } if (e.type == EventType.mouseUp) { selectedElement = null; } BeginWindows(); for (int i = 0; i < nodes.Count; i++) { nodes[i].localElementRect = GUI.Window(i, nodes[i].localElementRect, showNode, nodes[i].windowName); } EndWindows(); }
public virtual AbstractVisualElement ClickedOn(Vector2 mousePos) { //Debug.Log(worldElementRect.Contains(mousePos) + " " + GetType()); if (worldElementRect.Contains(mousePos)) { foreach (AbstractVisualElement field in elements) { AbstractVisualElement el = field.ClickedOn(mousePos); if (el != null) { return(el); } } return(this); } return(null); }
public override void AddField(AbstractVisualElement field) { EmptyField newField = new EmptyField(this) { leftMargin = leftMargin, rightMargin = rightMargin }; field.parentElement = newField; newField.AddField(field); base.AddField(newField); if (fieldDict.ContainsKey(field.name)) { fieldDict[field.name] = field; } else { fieldDict.Add(field.name, field); } }
public virtual void AddField(AbstractVisualElement field) { elements.Add(field); field.parentElement = this; field.id = elements.Count - 1; }