Example #1
0
        public override void OnMouseDown(MouseButtons mb)
        {
            base.OnMouseDown(mb);

            ChildrenCopy.HandleMouseDown(mb);
        }
Example #2
0
        public void HandleButton(bool isDown, bool wasDown, MouseButtons buttons)
        {
            if (isDown && !wasDown)
            {
                IsTouchDown = true;

                var ev = MouseDown;
                if (ev != null)
                {
                    ev(this, new GenericEventArgs <MouseButtons>(buttons));
                }

                InputOnMouseDown();
                ChildrenCopy.HandleMouseDown(buttons);

                var td = TouchDown;
                if (td != null)
                {
                    td(this, EventArgs.Empty);
                }

                ChildrenCopy.HandleTouchDown();

                if ((DateTime.Now - _lastTouch).TotalMilliseconds < DoubleClickIntervalInMs)
                {
                    // Double click
                    var ev2 = MouseDoubleClick;
                    if (ev2 != null)
                    {
                        ev2(this, new GenericEventArgs <MouseButtons>(buttons));
                    }

                    ChildrenCopy.HandleMouseDoubleClick(buttons);

                    _lastTouch = DateTime.MinValue;
                }
                else
                {
                    _lastTouch = DateTime.Now;
                }
            }
            else if (!isDown && wasDown)
            {
                IsTouchDown = false;

                var ev = MouseUp;
                if (ev != null)
                {
                    ev(this, new GenericEventArgs <MouseButtons>(buttons));
                }

                ChildrenCopy.HandleMouseUp(buttons);

                var tu = TouchUp;
                if (tu != null)
                {
                    tu(this, EventArgs.Empty);
                }

                ChildrenCopy.HandleTouchUp();
            }
        }