private void HandleRightClick(Vector mouse_position, MouseEventArgs e) { INode temp = Children.FirstOrDefault(x => CheckIfClicked(mouse_position, x)); if (temp == null) { temp = RelationshipManager.Relationships.FirstOrDefault(x => CheckIfClicked(mouse_position, x)); } if (temp != null) { if (temp is ClassDiagramNode cn) { IOptionsNode op = SearchForOptionsNode(temp, mouse_position); op.OptionsPrefab.Position = mouse_position; op.OnOptionsShow?.Invoke(this, EventArgs.Empty); } else if (temp is Relationship rs) { OnOptionsHide?.Invoke(this, EventArgs.Empty); rs.OptionsPrefab.Position = mouse_position; rs.OnOptionsShow?.Invoke(this, EventArgs.Empty); focusedRelationship = rs; } } else { OptionsPrefab.Position = mouse_position; OnOptionsShow?.Invoke(this, EventArgs.Empty); } }
public void GeneratePrefab() { float total_Width = Renderer.GetTextWidth(16); OptionsPrefab = new BasicContainerNode(new BasicNodeStructure(Vector.Zero, total_Width, Renderer.SingleTextHeight * 1), RectangleRenderElementStyle.Default); OptionsPrefab.AddNode(new ButtonNode(new ButtonStructure(Vector.Zero, "Proof of Concept", total_Width, Renderer.SingleTextHeight, () => { OnOptionsHide?.Invoke(this, EventArgs.Empty); }), RectangleRenderElementStyle.Default, TextRenderElementStyle.Default)); }
public void ShowOptions(object sender, EventArgs e) { if (OptionsMenu == null) { OptionsMenu = OptionsPrefab; TriggerAreas.Add(OptionsMenu.TriggerAreas[0]); OnFocused?.Invoke(this, new NodeEventArgs(OptionsMenu)); FocusedNode?.OnUnfocused?.Invoke(this, new NodeEventArgs(FocusedNode)); TriggerAreas.Add(OptionsMenu.TriggerAreas[0]); } else { OnOptionsHide?.Invoke(this, e); } }