Files
UnrealEngineUWP/Engine/Source/Editor/DetailCustomizations/Public/Customizations/MobilityCustomization.h
aurel cordonnier a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00

41 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Engine/EngineTypes.h"
#include "Styling/SlateColor.h"
#include "IDetailCustomNodeBuilder.h"
class IDetailCategoryBuilder;
class IPropertyHandle;
enum class ECheckBoxState : uint8;
// Helper class to create a Mobility customization for the specified Property in the specified CategoryBuilder.
class DETAILCUSTOMIZATIONS_API FMobilityCustomization : public IDetailCustomNodeBuilder, public TSharedFromThis<FMobilityCustomization>
{
public:
enum
{
StaticMobilityBitMask = (1u << EComponentMobility::Static),
StationaryMobilityBitMask = (1u << EComponentMobility::Stationary),
MovableMobilityBitMask = (1u << EComponentMobility::Movable),
};
FMobilityCustomization(TSharedPtr<IPropertyHandle> InMobilityHandle, uint8 InRestrictedMobilityBits, bool InForLight);
virtual void GenerateHeaderRowContent(FDetailWidgetRow& WidgetRow) override;
virtual FName GetName() const override;
virtual TSharedPtr<IPropertyHandle> GetPropertyHandle() const override { return MobilityHandle; }
private:
EComponentMobility::Type GetActiveMobility() const;
FSlateColor GetMobilityTextColor(EComponentMobility::Type InMobility) const;
void OnMobilityChanged(EComponentMobility::Type InMobility);
FText GetMobilityToolTip() const;
TSharedPtr<IPropertyHandle> MobilityHandle;
bool bForLight;
uint8 RestrictedMobilityBits;
};