// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Types/SlateEnums.h" #include "IDetailCustomization.h" #include "LevelInstance/LevelInstanceTypes.h" #include "Input/Reply.h" class AActor; class FLevelInstancePivotDetails : public IDetailCustomization { public: /** Makes a new instance of this detail layout class for a specific detail view requesting it */ static TSharedRef MakeInstance(); /** IDetailCustomization interface */ virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override; /** End IDetailCustomization interface */ private: /** Use MakeInstance to create an instance of this class */ FLevelInstancePivotDetails(); bool IsApplyButtonEnabled(TWeakObjectPtr LevelInstancePivot) const; FReply OnApplyButtonClicked(TWeakObjectPtr LevelInstancePivot); int32 GetSelectedPivotType() const; void OnSelectedPivotTypeChanged(int32 NewValue, ESelectInfo::Type SelectionType, TWeakObjectPtr LevelInstancePivot); void OnPivotActorPicked(AActor* InPivotActor, TWeakObjectPtr LevelInstancePivot); bool IsPivotActorSelectionEnabled() const; void ShowPivotLocation(const TWeakObjectPtr& LevelInstancePivot); // Settings for Apply button ELevelInstancePivotType PivotType; TWeakObjectPtr PivotActor; };