Exemple #1
0
 internal override void Update(GuiMouseState mouseState)
 {
     foreach (var widget in children)
     {
         if (this.BoundingRect.Intersects(widget.BoundingRect))
         {
             widget.Update(mouseState);
         }
     }
 }
Exemple #2
0
        public Gui()
        {
            var width  = Game.Instance.Canvas.Width;
            var height = Game.Instance.Canvas.Height;

            surface = new CanvasSurface(Rect.FromBox(0, 0, width, height));

            Game.Instance.Platform.OnWinResized += OnWinResized;

            mouse_state = new GuiMouseState();

            theme = new DefaultTheme(Game.Instance.Canvas.DefaultFont);

            root = new GuiContainer(this, width, height);

            Game.Instance.Canvas.AddSurface(surface);
        }
Exemple #3
0
        internal override void Update(GuiMouseState mouseState)
        {
            if (this.ContainsPoint(mouseState.MouseX, mouseState.MouseY))
            {
                if (!this.Hovered)
                {
                    this.Hovered = true;
                    Gui.InvalidateVisual();
                }

                if (mouseState.MouseLeftDown && !this.Active)
                {
                    this.Active = true;
                    OnPressed?.Invoke(this, EventArgs.Empty);
                    Gui.InvalidateVisual();
                }
                else if (!mouseState.MouseLeftDown && this.Active)
                {
                    this.Active = false;
                    OnReleased?.Invoke(this, EventArgs.Empty);
                    OnClick?.Invoke(this, EventArgs.Empty);
                    Gui.InvalidateVisual();
                }
            }
            else
            {
                if (this.Hovered)
                {
                    if (this.Active)
                    {
                        this.Active = false;
                    }

                    this.Hovered = false;

                    Gui.InvalidateVisual();
                }
            }
        }