Files
UnrealEngineUWP/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/ControlRigLocalVariableDetails.h
helge mathee 4d9051f0b1 Control Rig: Refactor details panel groups to sections
#jira UE-134548 UE-134560
#rb jack.cai mike.beach
#preflight https://horde.devtools.epicgames.com/job/618d3611857f308d8568874b

#ROBOMERGE-AUTHOR: helge.mathee
#ROBOMERGE-SOURCE: CL 18152273 in //UE5/Release-5.0/... via CL 18152382
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v889-18060218)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 18152447 by helge mathee in ue5-release-engine-test branch]
2021-11-11 11:47:13 -05:00

68 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "IDetailCustomization.h"
#include "IPropertyTypeCustomization.h"
#include "ControlRig.h"
#include "ControlRigBlueprint.h"
#include "DetailsViewWrapperObject.h"
#include "Graph/ControlRigGraph.h"
#include "Graph/SControlRigGraphPinNameListValueWidget.h"
#include "Styling/SlateTypes.h"
#include "IPropertyUtilities.h"
#include "DetailsViewWrapperObject.h"
#include "Graph/ControlRigGraphSchema.h"
class IPropertyHandle;
class FRigVMLocalVariableDetails : public IDetailCustomization
{
FRigVMLocalVariableDetails()
: GraphBeingCustomized(nullptr)
, BlueprintBeingCustomized(nullptr)
, NameValidator(nullptr, nullptr, NAME_None)
{}
public:
// Makes a new instance of this detail layout class for a specific detail view requesting it
static TSharedRef<IDetailCustomization> MakeInstance()
{
return MakeShareable(new FRigVMLocalVariableDetails);
}
/** IDetailCustomization interface */
virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override;
private:
URigVMGraph* GraphBeingCustomized;
UControlRigBlueprint* BlueprintBeingCustomized;
FRigVMGraphVariableDescription VariableDescription;
TArray<TWeakObjectPtr<UDetailsViewWrapperObject>> ObjectsBeingCustomized;
TSharedPtr<IPropertyHandle> NameHandle;
TSharedPtr<IPropertyHandle> TypeHandle;
TSharedPtr<IPropertyHandle> TypeObjectHandle;
TSharedPtr<IPropertyHandle> DefaultValueHandle;
FControlRigLocalVariableNameValidator NameValidator;
TArray<TSharedPtr<FString>> EnumOptions;
FText GetName() const;
void SetName(const FText& InNewText, ETextCommit::Type InCommitType);
bool OnVerifyNameChanged(const FText& InText, FText& OutErrorMessage);
FEdGraphPinType OnGetPinInfo() const;
void HandlePinInfoChanged(const FEdGraphPinType& PinType);
ECheckBoxState HandleBoolDefaultValueIsChecked( ) const;
void OnBoolDefaultValueChanged(ECheckBoxState InCheckBoxState);
};