FReply SVisualLoggerTimelinesContainer::OnMouseWheel(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) { if (MouseEvent.IsLeftControlDown() || MouseEvent.IsLeftShiftDown()) { return TimeSliderController->OnMouseWheel(*this, MyGeometry, MouseEvent); } return FReply::Unhandled(); }
void FSceneViewport::UpdateModifierKeys( const FPointerEvent& InMouseEvent ) { KeyStateMap.Add( EKeys::LeftAlt, InMouseEvent.IsLeftAltDown() ); KeyStateMap.Add( EKeys::RightAlt, InMouseEvent.IsRightAltDown() ); KeyStateMap.Add(EKeys::LeftControl, InMouseEvent.IsLeftControlDown()); KeyStateMap.Add(EKeys::RightControl, InMouseEvent.IsRightControlDown()); KeyStateMap.Add(EKeys::LeftShift, InMouseEvent.IsLeftShiftDown()); KeyStateMap.Add(EKeys::RightShift, InMouseEvent.IsRightShiftDown()); }
void SVisualLoggerTimelinesContainer::ChangeSelection(TSharedPtr<SLogVisualizerTimeline> InTimeline, const FPointerEvent& MouseEvent) { if (MouseEvent.IsLeftShiftDown() == false) { if (MouseEvent.IsLeftControlDown()) { SetSelectionState(InTimeline, !InTimeline->IsSelected(), false); } else { SetSelectionState(InTimeline, true, true); } } else { if (CachedSelectedTimelines.Num() == 0 && TimelineItems.Num()) { SetSelectionState(TimelineItems[0], true, true); } TSharedPtr<SLogVisualizerTimeline> LastSelected = CachedSelectedTimelines.Num() ? CachedSelectedTimelines[CachedSelectedTimelines.Num() - 1] : nullptr; if (LastSelected.IsValid()) { bool bStartedSelection = false; for (TSharedPtr<SLogVisualizerTimeline>& TimelineItem : TimelineItems) { if (TimelineItem == LastSelected || InTimeline == TimelineItem) { if (!bStartedSelection) { bStartedSelection = true; } else { bStartedSelection = false; break; } } if (bStartedSelection) { SetSelectionState(TimelineItem, true, false); } } } SetSelectionState(InTimeline, true, false); } }
FReply FSequencerTimeSliderController::OnMouseWheel( TSharedRef<SWidget> WidgetOwner, const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) { TOptional<TRange<float>> NewTargetRange; float MouseFractionX = MyGeometry.AbsoluteToLocal(MouseEvent.GetScreenSpacePosition()).X / MyGeometry.GetLocalSize().X; if ( TimeSliderArgs.AllowZoom && (MouseEvent.IsLeftControlDown() || MouseEvent.IsRightControlDown()) ) { const float ZoomDelta = -0.2f * MouseEvent.GetWheelDelta(); if (ZoomByDelta(ZoomDelta, MouseFractionX)) { return FReply::Handled(); } } else if (MouseEvent.IsLeftShiftDown() || MouseEvent.IsRightShiftDown()) { PanByDelta(-MouseEvent.GetWheelDelta()); return FReply::Handled(); } return FReply::Unhandled(); }