/// <inheritdoc /> public override bool OnMouseUp(Vector2 location, MouseButton buttons) { if (base.OnMouseUp(location, buttons)) { return(true); } // Check if mouse was pressing if (_isMouseDown) { // Clear flag _isMouseDown = false; // Close topmost context menu ParentContextMenu?.TopmostCM.Hide(); // Fire event Clicked?.Invoke(); ParentContextMenu?.OnButtonClicked_Internal(this); // Event handled return(true); } return(false); }
/// <summary> /// Clicks this button. /// </summary> public void Click() { // Close topmost context menu ParentContextMenu?.TopmostCM.Hide(); // Auto check logic if (AutoCheck) { Checked = !Checked; } // Fire event Clicked?.Invoke(); ButtonClicked?.Invoke(this); ParentContextMenu?.OnButtonClicked(this); }
/// <inheritdoc /> public override bool OnKeyDown(KeyboardKeys key) { if (base.OnKeyDown(key)) { return(true); } switch (key) { case KeyboardKeys.ArrowUp: for (int i = IndexInParent - 1; i >= 0; i--) { if (ParentContextMenu.ItemsContainer.Children[i] is ContextMenuButton item && item.Visible && item.Enabled) { item.Focus(); ParentContextMenu.ItemsContainer.ScrollViewTo(item); return(true); } } break; case KeyboardKeys.ArrowDown: for (int i = IndexInParent + 1; i < ParentContextMenu.ItemsContainer.Children.Count; i++) { if (ParentContextMenu.ItemsContainer.Children[i] is ContextMenuButton item && item.Visible && item.Enabled) { item.Focus(); ParentContextMenu.ItemsContainer.ScrollViewTo(item); return(true); } } break; case KeyboardKeys.Return: Click(); return(true); case KeyboardKeys.Escape: ParentContextMenu.Hide(); return(true); } return(false); }
/// <inheritdoc /> public override void OnMouseEnter(Float2 location) { ParentContextMenu?.HideChild(); base.OnMouseEnter(location); }