private void MeasureMenu() { surroundingRect.Width = 0; surroundingRect.Height = 0; foreach (string item in menuItems) { Vector2 size = textRenderer.MeasureString(item); if (size.X > surroundingRect.Width) { surroundingRect.Width = (int)size.X; } surroundingRect.Height += textRenderer.LineSpacing + LinePadding; menuItemHeight = Math.Max(menuItemHeight, textRenderer.LineSpacing + LinePadding); } position = new Vector2( (Game.Window.ClientBounds.Width - surroundingRect.Width) / 2, (Game.Window.ClientBounds.Height - surroundingRect.Height) / 2); paddedRect = surroundingRect; paddedRect.Width += padding * 2; paddedRect.Height += padding * 2; eventList.Add(TheMouse.MouseMoveEvent.Subscribe(TheMouse.Instance(), (Point newPoint) => { if (InsideMenu(newPoint)) { mouseInMenu = true; } })); eventList.Add(MouseButton.ClickedEvent.Subscribe(TheMouse.Instance().LeftButton, (MouseButton btn) => { if (mouseInMenu) { ItemSelected(this, SelectedIndex); } })); }
public MapObject(Tile[,] tiles) : base(tiles) { // Set up any mouse related event handlers eventHandlers.Add(MouseButton.PressedEvent.Subscribe(TheMouse.Instance().LeftButton, new MouseButtonChanged(MouseClicked))); }