Files
UnrealEngineUWP/Engine/Plugins/Runtime/ModelViewViewModel/Source/ModelViewViewModelBlueprint/Public/MVVMBlueprintViewBinding.h
sebastian nordgren 3a3f846e36 MVVM: Setting a conversion function with multiple arguments now generates a FunctionGraph in the widget blueprint that is used to call the function, which allows us to bind multiple properties to conversion functions.
Removed IFieldPathHelper. The functionality was moved to the editor subsystem, which made the abstraction unnecessary and unavailable to blueprint.

FBindingSource no longer contains the IsSelected member. This was very context-specific, and doesn't really make sense in the general case.

[REVIEW] [at]patrick.boutot
#jira UE-145128
#rnx
#preflight 62b9c947e77151e5996f3f36

#ROBOMERGE-OWNER: sebastian.nordgren
#ROBOMERGE-AUTHOR: sebastian.nordgren
#ROBOMERGE-SOURCE: CL 20833893 via CL 20836430 via CL 20836446
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20838757 by sebastian nordgren in ue5-main branch]
2022-06-27 16:24:02 -04:00

83 lines
2.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "MVVMPropertyPath.h"
#include "Types/MVVMBindingMode.h"
#include "MVVMBlueprintViewBinding.generated.h"
class UMVVMBlueprintView;
/**
*
*/
USTRUCT(BlueprintType)
struct MODELVIEWVIEWMODELBLUEPRINT_API FMVVMBlueprintViewConversionPath
{
GENERATED_BODY()
/** The Conversion function when converting the value from the destination to the source. */
UPROPERTY(EditAnywhere, Category = "MVVM", AdvancedDisplay)
FMemberReference DestinationToSourceFunction;
UPROPERTY()
FName DestinationToSourceWrapper;
/** The Conversion function when converting the value from the source to the destination. */
UPROPERTY(EditAnywhere, Category = "MVVM", AdvancedDisplay)
FMemberReference SourceToDestinationFunction;
UPROPERTY()
FName SourceToDestinationWrapper;
};
/**
*
*/
USTRUCT(BlueprintType)
struct MODELVIEWVIEWMODELBLUEPRINT_API FMVVMBlueprintViewBinding
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category = "MVVM")
FMVVMBlueprintPropertyPath ViewModelPath;
UPROPERTY(EditAnywhere, Category = "MVVM")
FMVVMBlueprintPropertyPath WidgetPath;
/** */
UPROPERTY(EditAnywhere, Category = "MVVM")
EMVVMBindingMode BindingType = EMVVMBindingMode::OneWayToDestination;
UPROPERTY(EditAnywhere, Category = "MVVM")
EMVVMViewBindingUpdateMode UpdateMode = EMVVMViewBindingUpdateMode::Immediate;
/** */
UPROPERTY(EditAnywhere, Category = "MVVM")
FMVVMBlueprintViewConversionPath Conversion;
/** */
UPROPERTY(VisibleAnywhere, Category = "MVVM", Transient)
TArray<FText> Errors;
/** Whether the binding is enabled or disabled by default. The instance may enable the binding at runtime. */
UPROPERTY(EditAnywhere, Category = "MVVM")
bool bEnabled = true;
/** The binding is visible in the editor, but is not compiled and cannot be used at runtime. */
UPROPERTY(EditAnywhere, Category = "MVVM")
bool bCompile = true;
/**
* Get an internal name. For use in the UI, use GetDisplayNameString()
*/
FName GetFName(const UMVVMBlueprintView* View) const;
/**
* Get a string that identifies this binding.
* This is of the form: ViewModel.Property -> Widget.Property
*/
FString GetDisplayNameString(const UMVVMBlueprintView* View) const;
};