// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "MVVMBlueprintViewCompilerInterface.h" #include "MVVMBlueprintViewExtension.generated.h" class UMVVMViewClass; class UWidgetBlueprintGeneratedClass; /** * An extension class to define MVVM-related properties and behaviour. When WBP compiled, this information is copied * into UMVVMViewClassExtension. This class provides a hook into the MVVM compiler and partially exposes it for injecting * user-defined behaviour at compile-time. */ UCLASS(MinimalAPI) class UMVVMBlueprintViewExtension : public UObject { GENERATED_BODY() public: //~ Functions to be overriden in a user-defined UMVVMViewBlueprintMyWidgetExtension class virtual TArray AddProperties() { return TArray(); }; virtual TArray AddWidgetProperties() { return TArray(); }; virtual void Precompile(UE::MVVM::Compiler::IMVVMBlueprintViewPrecompile* Compiler, UWidgetBlueprintGeneratedClass* Class) {} virtual void Compile(UE::MVVM::Compiler::IMVVMBlueprintViewCompile* Compiler, UWidgetBlueprintGeneratedClass* Class, UMVVMViewClass* ViewExtension) {} virtual bool WidgetRenamed(FName OldName, FName NewName) { return false; } virtual void OnPreviewContentChanged(TSharedRef NewContent) {} };