/// <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); }
/// <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); }
/// <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); }
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; } }