Ejemplo n.º 1
0
        /// <summary>
        /// Base method propagates messages to children controls and managers.  Override to
        /// add custom handling.
        /// </summary>
        protected internal override void OnMouseMoved(MouseData mouseData)
        {
            base.OnMouseMoved(mouseData);

            foreach (Manager m in managerList)
            {
                m.OnMouseMoved(mouseData);
            }

            Control checkUnderMouse = GetTopControlAt(mouseData.Position);

            if (checkUnderMouse != CurrentUnderMouse)
            {
                // check for Leave and Enter actions

                if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive)
                {
                    CurrentUnderMouse.OnMouseLeave();
                }

                if (checkUnderMouse != null && checkUnderMouse.IsActive)
                {
                    checkUnderMouse.OnMouseEnter();
                }

                CurrentUnderMouse = checkUnderMouse;
            }

            if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive)
            {
                CurrentUnderMouse.OnMouseMoved(mouseData);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Base method propagates messages to children controls and managers.  Override to
        /// add custom handling.
        /// </summary>
        protected internal override void OnMouseHoverBegin(MouseData mouseData)
        {
            base.OnMouseHoverBegin(mouseData);

            foreach (Manager m in managerList)
            {
                m.OnMouseHoverBegin(mouseData);
            }

            if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive)
            {
                CurrentUnderMouse.OnMouseHoverBegin(mouseData);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Base method propagates messages to children controls and managers.  Override to
        /// add custom handling.
        /// </summary>
        protected internal override void OnMouseDragEnd(Point sPos)
        {
            base.OnMouseDragEnd(sPos);

            foreach (Manager m in managerList)
            {
                m.OnMouseDragEnd(sPos);
            }

            if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive)
            {
                CurrentDragging = null;
                CurrentUnderMouse.OnMouseDragEnd(sPos);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Base method propagates messages to children controls and managers.  Override to
        /// add custom handling.
        /// </summary>
        protected internal override void OnMouseButtonUp(MouseData mouseData)
        {
            base.OnMouseButtonUp(mouseData);

            foreach (Manager m in managerList)
            {
                m.OnMouseButtonUp(mouseData);
            }

            if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive)
            {
                CurrentUnderMouse.OnMouseButtonUp(mouseData);
            }

            LastLBDown = null;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Base method propagates messages to children controls and managers.  Override to
        /// add custom handling.
        /// </summary>
        protected internal override void OnMouseHoverEnd(MouseData mouseData)
        {
            if (CurrentTooltip != null)
            {
                CurrentTooltip.Dispose();
                CurrentTooltip = null;
            }

            base.OnMouseHoverEnd(mouseData);

            foreach (Manager m in managerList)
            {
                m.OnMouseHoverEnd(mouseData);
            }

            if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive)
            {
                CurrentUnderMouse.OnMouseHoverEnd(mouseData);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Base method propagates messages to children controls and managers.  Override to
        /// add custom handling.
        /// </summary>
        protected internal override void OnMouseButtonDown(MouseData mouseData)
        {
            base.OnMouseButtonDown(mouseData);

            foreach (Manager m in managerList)
            {
                m.OnMouseButtonDown(mouseData);
            }

            // If applicable, forward MouseDown and Select to child control
            if (CurrentUnderMouse != null && CurrentUnderMouse.IsActive)
            {
                CurrentUnderMouse.OnMouseButtonDown(mouseData);

                LastLBDown = CurrentUnderMouse;
            }

            // Check to see if a control looses KBFocus if user hit any mouse button outside current focused control
            if (CurrentKeyboardFocus != null)
            {
                if (CurrentKeyboardFocus != CurrentUnderMouse)
                {
                    CurrentKeyboardFocus.OnReleaseKeyboardFocus();
                    CurrentKeyboardFocus = null;
                }
            }

            // Give KBFocus to child on left button down, if applicable
            if (CurrentUnderMouse != null &&
                CurrentUnderMouse.CanHaveKeyboardFocus &&
                CurrentUnderMouse.HasKeyboardFocus == false &&
                mouseData.MouseButton == MouseButton.LeftButton &&
                CurrentUnderMouse.IsActive)
            {
                CurrentKeyboardFocus = CurrentUnderMouse;

                CurrentKeyboardFocus.OnTakeKeyboardFocus();
            }
        }