// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" struct FDiffResults; struct FMVVMBlueprintPinId; class IDiffCustomObject; class IDiffCustomProperty; class UWidgetBlueprint; class UMVVMBlueprintViewEvent; class UMVVMBlueprintViewCondition; namespace UE::MVVM { struct FMVVMDiffCustomObjectProvider : TSharedFromThis { virtual ~FMVVMDiffCustomObjectProvider() = default; virtual TSharedPtr CreateObjectDiff(const UWidgetBlueprint* NewBlueprint, const UWidgetBlueprint* OldBlueprint) { return nullptr; } virtual TSharedPtr CreatePropertyBindingDiff(FGuid NewBinding, FGuid OldBinding) {return nullptr;} virtual TSharedPtr CreatePropertyConditionDiff(const UMVVMBlueprintViewCondition* NewCondition, const UMVVMBlueprintViewCondition* OldCondition) {return nullptr;} virtual TSharedPtr CreatePropertyEventDiff(const UMVVMBlueprintViewEvent* NewEvent, const UMVVMBlueprintViewEvent* OldEvent) {return nullptr;} virtual TSharedPtr CreatePropertyParameterDiff(const FMVVMBlueprintPinId& NewParameter, const FMVVMBlueprintPinId& OldParameter) {return nullptr;} }; namespace FMVVMWidgetBlueprintDiff { void MODELVIEWVIEWMODELBLUEPRINT_API FindDiffs(const UWidgetBlueprint* NewBlueprint, const UWidgetBlueprint* OldBlueprint, FDiffResults& Results); void MODELVIEWVIEWMODELBLUEPRINT_API RegisterCustomDiff(TSharedPtr DiffCustomObject); void MODELVIEWVIEWMODELBLUEPRINT_API UnregisterCustomDiff(); } }