Example #1
0
 void BubbleFace(GuiFace face, MouseEventArgument e)
 {
     foreach (var control in Enumerable.Reverse(face.Controls))
     {
         control.Bubble(BubbleControl, e);
     }
 }
Example #2
0
        void BubbleControl(GuiControl control, MouseEventArgument e)
        {
            int x = control.X;
            int y = control.Y;

            if (e.X >= x && e.X <= x + control.Width &&
                e.Y >= y && e.Y <= y + control.Height)
            {
                if (e is MouseClickEventArgument)
                {
                    control.MouseClick.Invoke(e as MouseClickEventArgument);
                }
                else if (e is MouseMoveEventArgument)
                {
                    control.MouseMove.Invoke(e as MouseMoveEventArgument);
                }

                if (!e.Bubble)
                {
                    return;
                }

                if (control is GuiFaceControl)
                {
                    e.X -= x;
                    e.Y -= y;

                    Game.GuiManager.GetFace((control as GuiFaceControl).FaceId).Bubble(BubbleFace, e);

                    e.X += x;
                    e.Y += y;
                }
            }
        }