コード例 #1
0
        /// <summary>
        /// ボタンが離された時の処理を行います.
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public RegulatedMouseInfo MouseUp(MouseEventArgs e)
        {
            _location = e.Location;
            _pressed &= ~e.Button;
            if (_multiPressed)
            {
                return(new RegulatedMouseInfo {
                    Button = RegulatedMouseButton.None, State = RegulatedMouseClickState.Click
                });
            }
            RegulatedMouseInfo ret = new RegulatedMouseInfo {
                Button = _buttonType, State = _clickType
            };

            _buttonType = RegulatedMouseButton.None;
            _clickType  = RegulatedMouseClickState.Click;
            return(ret);
        }
コード例 #2
0
        /// <summary>
        /// ボタンが押された時の処理を行います.
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        public RegulatedMouseButton MouseDown(MouseEventArgs e)
        {
            MouseButtons pressed = _pressed;

            _pressed |= e.Button;
            if (pressed == MouseButtons.None)
            {
                _buttonType   = convertValidButtonType(StandardizeButton(e));
                _clickType    = RegulatedMouseClickState.Click;
                _multiPressed = false;
                _downLocation = e.Location;
            }
            else
            {
                _multiPressed = true;
                _buttonType   = RegulatedMouseButton.None;
            }
            _location = e.Location;
            return(_buttonType);
        }
コード例 #3
0
        /// <summary>
        /// 有効でないボタンタイプが指定されたときに有効なボタンに変換します.
        /// </summary>
        /// <param name="bt"></param>
        /// <returns></returns>
        private RegulatedMouseButton convertValidButtonType(RegulatedMouseButton bt)
        {
            if (_validButtonTypes.Contains(bt))
            {
                return(bt);
            }
            switch (bt)
            {
            case RegulatedMouseButton.AltLeft:
            case RegulatedMouseButton.CtrlLeft:
            case RegulatedMouseButton.ShiftLeft:
                return(convertValidButtonType(RegulatedMouseButton.Left));

            case RegulatedMouseButton.ShiftCtrlLeft:
                if (!_validButtonTypes.Contains(RegulatedMouseButton.ShiftLeft))
                {
                    return(convertValidButtonType(RegulatedMouseButton.CtrlLeft));
                }
                return(convertValidButtonType(RegulatedMouseButton.ShiftLeft));
            }
            return(RegulatedMouseButton.None);
        }
コード例 #4
0
        private void pictDisplay_MouseDown(object sender, MouseEventArgs e)
        {
            TimeController timeController = _timeController;

            if (timeController == null)
            {
                return;
            }
            RegulatedMouseButton button = _mouse.MouseDown(e);
            decimal cursorTime          = getTimeFromPosition(e.X);

            //cursorTime = Math.Min(timeController.VisibleEndTime, Math.Max(timeController.VisibleBeginTime, cursorTime));
            _selectingTime = cursorTime;

            switch (button)
            {
            case RegulatedMouseButton.Left:
                timeController.CursorTime = cursorTime;
                timeController.SelectRange(Math.Min(cursorTime, _selectingTime), Math.Max(cursorTime, _selectingTime));
                break;

            case RegulatedMouseButton.CtrlLeft:
                timeController.CurrentTime = cursorTime;
                timeController.SelectRange(Math.Min(cursorTime, _selectingTime), Math.Max(cursorTime, _selectingTime));
                break;

            case RegulatedMouseButton.ShiftCtrlLeft:
                timeController.AdjustSelectedRange(cursorTime);
                timeController.CurrentTime = cursorTime;
                break;

            case RegulatedMouseButton.ShiftLeft:
                timeController.AdjustSelectedRange(cursorTime);
                break;
            }
        }