/// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <inheritdoc />
        public override void OnMouseEnter(Float2 location)
        {
            ParentContextMenu?.HideChild();

            base.OnMouseEnter(location);
        }