// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Templates/SharedPointerFwd.h" #include "UserInterface/Widgets/PropertyUpdatedWidgetBuilder.h" #include "OverrideStatusSubject.h" class FOverrideStatusDetailsDisplayManager; /** * A Display builder for the override status combo button */ class ANIMATIONEDITORWIDGETS_API FOverrideStatusDetailsWidgetBuilder : public FPropertyUpdatedWidgetBuilder { public: DECLARE_DELEGATE_RetVal(TSharedRef, FOnGetWidget); public: /** * The constructor, which takes a @code TSharedRef @endcode to initialize * the Details Display Manager * * @param InDetailsDisplayManager the FDetailsDisplayManager which manages the details display * than a property row */ FOverrideStatusDetailsWidgetBuilder( const TSharedRef& InDetailsDisplayManager, const TArray& InObjects, const TSharedPtr& InPropertyPath, const FName& InCategory); /** * Implements the generation of the Category Menu button SWidget */ virtual TSharedPtr GenerateWidget() override; /** * Converts this into the SWidget it builds */ virtual ~FOverrideStatusDetailsWidgetBuilder() override; FOverrideStatus_CanCreateWidget& OnCanCreateWidget(); FOverrideStatus_GetStatus& OnGetStatus(); FOverrideStatus_OnWidgetClicked& OnWidgetClicked(); FOverrideStatus_OnGetMenuContent& OnGetMenuContent(); FOverrideStatus_AddOverride& OnAddOverride(); FOverrideStatus_ClearOverride& OnClearOverride(); FOverrideStatus_ResetToDefault& OnResetToDefault(); FOverrideStatus_ValueDiffersFromDefault& OnValueDiffersFromDefault(); private: /** * The @code DetailsDisplayManager @endcode which provides an API to manage some of the characteristics of the * details display */ TSharedRef DisplayManager; FOverrideStatusSubject Subject; };