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