public TextMenuItem CreateItem(string text, string name) { var item = new TextMenuItem(this, text); _items.Add(item); item.Name = name; if (item.Name == null) { item.Name = text.Replace(' ', '_').ToLowerInvariant(); } return(item); }
private Color GetItemColor(TextMenuItem item) { var color = Color; if (!item.IsEnabled) { color = ColorDisabled; } else if (item.IsHovered) { color = ColorHover; } return(color); }
public void Update(GameTime time, IMouseManager mouse) { TextMenuItem currentHoveredItem = null; var currentPos = Pos; foreach (var item in _items) { currentPos = currentPos.Offset(item.Margin.Left, item.Margin.Top); var rect = item.GetScreenRect(currentPos); var isHovered = rect.Contains(mouse.Position); item.IsHovered = isHovered; if (item.IsHovered) { currentHoveredItem = item; if (_lastHoverItem != item) { _lastHoverItem = item; if (ItemHovered != null) { ItemHovered(item); } } } if (item.IsHovered && mouse.IsButtonPressed(MouseButton.Left) && item.IsEnabled) { if (ItemClicked != null) { ItemClicked(item); } item.RaiseClicked(); } currentPos = currentPos.Offset(0f, _font.Data.LineHeight + Padding + item.Margin.Bottom); } if (currentHoveredItem == null) { _lastHoverItem = null; } }