Example #1
0
        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);
                }
            }));
        }
Example #2
0
 public MapObject(Tile[,] tiles) : base(tiles)
 {
     // Set up any mouse related event handlers
     eventHandlers.Add(MouseButton.PressedEvent.Subscribe(TheMouse.Instance().LeftButton, new MouseButtonChanged(MouseClicked)));
 }