Files
UnrealEngineUWP/Engine/Plugins/Runtime/ModelViewViewModel/Source/ModelViewViewModelBlueprint/Public/MVVMBlueprintView.h
sebastian nordgren 35fe208abe MVVM: Added transactions and property chain notifications to SMVVMViewBindingListEntryRow.
#jira UE-145128
[REVIEW] [at]patrick.boutot, [at]vincent.gauthier
#rnx
#preflight 62877376286cf1867a460c97

#ROBOMERGE-AUTHOR: sebastian.nordgren
#ROBOMERGE-SOURCE: CL 20294192 via CL 20294679 via CL 20294841
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v948-20297126)

[CL 20305133 by sebastian nordgren in ue5-main branch]
2022-05-20 18:54:53 -04:00

84 lines
2.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "View/MVVMView.h"
#include "MVVMBlueprintViewBinding.h"
#include "MVVMBlueprintViewModelContext.h"
#include "MVVMBlueprintView.generated.h"
class UWidget;
class UWidgetBlueprint;
/**
*
*/
UCLASS(Within=MVVMWidgetBlueprintExtension_View)
class MODELVIEWVIEWMODELBLUEPRINT_API UMVVMBlueprintView : public UObject
{
GENERATED_BODY()
public:
FMVVMBlueprintViewModelContext* FindViewModel(FGuid ViewModelId);
const FMVVMBlueprintViewModelContext* FindViewModel(FGuid ViewModelId) const;
void AddViewModel(const FMVVMBlueprintViewModelContext& NewContext);
void RemoveViewModel(FGuid ViewModelId);
void RemoveViewModels(const TArrayView<FGuid> ViewModelIds);
void SetViewModels(const TArray<FMVVMBlueprintViewModelContext>& ViewModelContexts);
const TArrayView<const FMVVMBlueprintViewModelContext> GetViewModels() const
{
return AvailableViewModels;
}
const FMVVMBlueprintViewBinding* FindBinding(const UWidget* Widget, const FProperty* Property) const;
FMVVMBlueprintViewBinding* FindBinding(const UWidget* Widget, const FProperty* Property);
void RemoveBinding(const FMVVMBlueprintViewBinding* Binding);
void RemoveBindingAt(int32 Index);
FMVVMBlueprintViewBinding& AddBinding(const UWidget* Widget, const FProperty* Property);
FMVVMBlueprintViewBinding& AddDefaultBinding();
int32 GetNumBindings() const
{
return Bindings.Num();
}
FMVVMBlueprintViewBinding* GetBindingAt(int32 Index);
const FMVVMBlueprintViewBinding* GetBindingAt(int32 Index) const;
TArrayView<FMVVMBlueprintViewBinding> GetBindings()
{
return Bindings;
}
const TArrayView<const FMVVMBlueprintViewBinding> GetBindings() const
{
return Bindings;
}
#if WITH_EDITOR
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
virtual void PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChainEvent) override;
void WidgetRenamed(FName OldObjectName, FName NewObjectName);
#endif
DECLARE_EVENT(UMVVMBlueprintView, FOnBindingsUpdated);
FOnBindingsUpdated OnBindingsUpdated;
DECLARE_EVENT(UMVVMBlueprintView, FOnViewModelsUpdated);
FOnViewModelsUpdated OnViewModelsUpdated;
private:
UPROPERTY(EditAnywhere, Category = "MVVM")
TArray<FMVVMBlueprintViewBinding> Bindings;
UPROPERTY(EditAnywhere, Category = "MVVM")
TArray<FMVVMBlueprintViewModelContext> AvailableViewModels;
};