// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Widgets/SWindow.h" #include "Containers/ArrayView.h" struct FKeyHandle; struct FTimeToPixel; struct FMovieSceneFloatChannel; class ISequencer; class UMovieSceneSection; class MOVIESCENETOOLS_API MovieSceneSectionHelpers { public: /** Consolidate color curves for all track sections. */ static void ConsolidateColorCurves(TArray< TTuple >& OutColorKeys, const FLinearColor& DefaultColor, TArrayView ColorChannels, const FTimeToPixel& TimeConverter); }; class MOVIESCENETOOLS_API FMovieSceneKeyColorPicker { public: FMovieSceneKeyColorPicker(UMovieSceneSection* Section, FMovieSceneFloatChannel* RChannel, FMovieSceneFloatChannel* GChannel, FMovieSceneFloatChannel* BChannel, FMovieSceneFloatChannel* AChannel, const TArray& KeyHandles, TWeakPtr InSequencer); private: void OnColorPickerPicked(FLinearColor NewColor, UMovieSceneSection* Section, FMovieSceneFloatChannel* RChannel, FMovieSceneFloatChannel* GChannel, FMovieSceneFloatChannel* BChannel, FMovieSceneFloatChannel* AChannel, TWeakPtr InSequencer); void OnColorPickerClosed(const TSharedRef& Window, UMovieSceneSection* Section, FMovieSceneFloatChannel* RChannel, FMovieSceneFloatChannel* GChannel, FMovieSceneFloatChannel* BChannel, FMovieSceneFloatChannel* AChannel, TWeakPtr InSequencer); void OnColorPickerCancelled(FLinearColor NewColor, UMovieSceneSection* Section, FMovieSceneFloatChannel* RChannel, FMovieSceneFloatChannel* GChannel, FMovieSceneFloatChannel* BChannel, FMovieSceneFloatChannel* AChannel, TWeakPtr InSequencer); private: static FFrameNumber KeyTime; static FLinearColor InitialColor; static bool bColorPickerWasCancelled; };