ArticyXImporter
ArticyXImporter for Unreal Engine
Loading...
Searching...
No Matches
ArticyEditorCustomizationManager.h
1//
2// Copyright (c) 2023 articy Software GmbH & Co. KG. All rights reserved.
3//
4
5#pragma once
6
7#include "CoreMinimal.h"
8#include "ArticyRef.h"
9#include "Framework/MultiBox/MultiBoxExtender.h"
10
12
20{
21 TSharedPtr<FExtender> ExtraButtonExtender;
22};
23
31{
32public:
38 explicit FArticyIdPropertyWidgetCustomizationBuilder(const UArticyObject* InObject) : ArticyObject(InObject)
39 {}
40
46 void AddCustomization(const FArticyIdPropertyWidgetCustomizationInfo& Customization) { Customizations.Add(Customization); }
47
53 const TArray<FArticyIdPropertyWidgetCustomizationInfo>& GetCustomizations() const { return Customizations; }
54
60 const UArticyObject* GetArticyObject() const { return ArticyObject; }
61
62private:
63 const UArticyObject* ArticyObject;
64 TArray<FArticyIdPropertyWidgetCustomizationInfo> Customizations;
65};
66
90
98{
99public:
101
107 virtual TSharedPtr<IArticyIdPropertyWidgetCustomization> CreateCustomization() = 0;
108
115 virtual bool SupportsType(const UArticyObject* InObject) = 0;
116};
117
119DECLARE_DELEGATE_RetVal(TSharedRef<IArticyIdPropertyWidgetCustomizationFactory>, FOnCreateArticyIdPropertyWidgetCustomizationFactory);
120
128{
129public:
132
139 IArticyIdPropertyWidgetCustomizationFactory* RegisterArticyIdPropertyWidgetCustomizationFactory(FOnCreateArticyIdPropertyWidgetCustomizationFactory GetCustomizationDelegate);
140
147
154 void CreateArticyIdPropertyWidgetCustomizations(const UArticyObject* ArticyObject, TArray<TSharedPtr<IArticyIdPropertyWidgetCustomization>>& OutCustomizations);
155
156private:
158 void Shutdown();
159
163
164 TArray<TSharedPtr<IArticyIdPropertyWidgetCustomizationFactory>> ArticyIdPropertyWidgetCustomizationFactories;
165
166 friend class FArticyEditorModule;
167};
FArticyEditorCustomizationManager()
Constructs an instance of FArticyEditorCustomizationManager.
Definition ArticyEditorCustomizationManager.cpp:13
void CreateArticyIdPropertyWidgetCustomizations(const UArticyObject *ArticyObject, TArray< TSharedPtr< IArticyIdPropertyWidgetCustomization > > &OutCustomizations)
Creates the ArticyIdPropertyWidget customizations for an ArticyRef.
Definition ArticyEditorCustomizationManager.cpp:60
IArticyIdPropertyWidgetCustomizationFactory * RegisterArticyIdPropertyWidgetCustomizationFactory(FOnCreateArticyIdPropertyWidgetCustomizationFactory GetCustomizationDelegate)
Registers an ArticyIdPropertyWidget customization factory.
Definition ArticyEditorCustomizationManager.cpp:25
void UnregisterArticyIdPropertyWidgetCustomizationFactory(const IArticyIdPropertyWidgetCustomizationFactory *)
Unregisters an ArticyIdPropertyWidget customization factory.
Definition ArticyEditorCustomizationManager.cpp:38
Builder class for constructing ArticyIdPropertyWidget customizations.
Definition ArticyEditorCustomizationManager.h:31
const UArticyObject * GetArticyObject() const
Retrieves the ArticyObject being customized.
Definition ArticyEditorCustomizationManager.h:60
FArticyIdPropertyWidgetCustomizationBuilder(const UArticyObject *InObject)
Constructs a new instance of FArticyIdPropertyWidgetCustomizationBuilder.
Definition ArticyEditorCustomizationManager.h:38
const TArray< FArticyIdPropertyWidgetCustomizationInfo > & GetCustomizations() const
Retrieves the customizations added to the builder.
Definition ArticyEditorCustomizationManager.h:53
void AddCustomization(const FArticyIdPropertyWidgetCustomizationInfo &Customization)
Adds a customization to the builder.
Definition ArticyEditorCustomizationManager.h:46
Factory interface for creating ArticyIdPropertyWidget customizations.
Definition ArticyEditorCustomizationManager.h:98
virtual TSharedPtr< IArticyIdPropertyWidgetCustomization > CreateCustomization()=0
Creates a new ArticyIdPropertyWidget customization.
virtual bool SupportsType(const UArticyObject *InObject)=0
Checks if the factory supports the specified ArticyObject type.
Interface for customizing ArticyIdPropertyWidget.
Definition ArticyEditorCustomizationManager.h:74
virtual void RegisterArticyIdPropertyWidgetCustomization(FArticyIdPropertyWidgetCustomizationBuilder &Builder)=0
Registers an ArticyIdPropertyWidget customization.
virtual void UnregisterArticyIdPropertyWidgetCustomization()=0
Unregisters an ArticyIdPropertyWidget customization.
Definition ArticyObject.h:19
Holds information for customizing an ArticyIdPropertyWidget.
Definition ArticyEditorCustomizationManager.h:20