18 static const FName Name;
19 static const FName Description;
20 static const FName Type;
21 static const FName Value;
22 static const FName Tags;
23 static const FName Actions;
28 DECLARE_DELEGATE_ThreeParams(FOnPropertyPropertyChanged, TSharedPtr<FLiveConfigPropertyDefinition>, TSharedPtr<FLiveConfigPropertyDefinition>, ELiveConfigPropertyChangeType);
29 DECLARE_DELEGATE_OneParam(FOnDeleteProperty, TSharedPtr<FLiveConfigPropertyDefinition>);
30 DECLARE_DELEGATE_OneParam(FOnAddPropertyAtFolder, FString);
31 DECLARE_DELEGATE_TwoParams(FOnBulkTagFolder, FString, FName);
32 DECLARE_DELEGATE_RetVal_OneParam(
bool, FIsNameDuplicate, FName);
33 DECLARE_DELEGATE(FOnRequestRefresh);
34 DECLARE_DELEGATE_OneParam(FOnNavigatePropertyName, TSharedPtr<FLiveConfigPropertyTreeNode>);
35 DECLARE_DELEGATE_OneParam(FOnNavigateValue, TSharedPtr<FLiveConfigPropertyTreeNode>);
39 SLATE_EVENT(FOnDeleteProperty, OnDeleteProperty)
40 SLATE_EVENT(FOnAddPropertyAtFolder, OnAddPropertyAtFolder)
41 SLATE_EVENT(FOnBulkTagFolder, OnBulkTagFolder)
42 SLATE_EVENT(FIsNameDuplicate, IsNameDuplicate)
43 SLATE_EVENT(FOnPropertyPropertyChanged, OnChanged)
44 SLATE_EVENT(FOnRequestRefresh, OnRequestRefresh)
45 SLATE_EVENT(FOnNavigatePropertyName, OnNavigateDown)
46 SLATE_EVENT(FOnNavigatePropertyName, OnNavigateUp)
47 SLATE_EVENT(FOnNavigateValue, OnNavigateValue)
48 SLATE_EVENT(FOnScrollToProperty, OnRequestScroll)
49 SLATE_EVENT(FSimpleDelegate, OnAddNewTag)
50 SLATE_EVENT(FSimpleDelegate, OnMouseDown)
54 InItem, int32 InIndex);
56 void RequestValueFocus() { bNeedsValueFocus =
true; }
58 bool IsReadOnly()
const;
60 virtual void Tick(
const FGeometry& AllottedGeometry,
const double InCurrentTime,
const float InDeltaTime)
override;
62 virtual TSharedRef<SWidget> GenerateWidgetForColumn(
const FName& ColumnName)
override;
64 virtual FReply OnMouseButtonDown(
const FGeometry& MyGeometry,
const FPointerEvent& MouseEvent)
override;
66 static constexpr float RowHeight = 32.0f;
69 TSharedRef<SWidget> GenerateNameColumnWidget();
70 TSharedRef<SWidget> GenerateDescriptionColumnWidget();
71 TSharedRef<SWidget> GenerateTypeColumnWidget();
72 TSharedRef<SWidget> GenerateValueColumnWidget();
73 TSharedRef<SWidget> GenerateTagsColumnWidget();
74 TSharedRef<SWidget> GenerateActionsColumnWidget();
76 void GenerateSubPropertiesForStruct(
const UScriptStruct* Struct);
77 void DeleteSubProperties();
81 void OnAddNewTagClicked();
82 FReply OnFindUsages();
83 FReply HandleEditDescription();
85 TSharedPtr<FLiveConfigPropertyTreeNode> Item;
86 FOnDeleteProperty OnDeleteProperty;
87 FOnAddPropertyAtFolder OnAddPropertyAtFolder;
88 FOnBulkTagFolder OnBulkTagFolder;
89 FIsNameDuplicate OnIsNameDuplicate;
90 FOnPropertyPropertyChanged OnChanged;
91 FOnRequestRefresh OnRequestRefresh;
92 FOnNavigatePropertyName OnNavigateDown;
93 FOnNavigatePropertyName OnNavigateUp;
94 FOnNavigateValue OnNavigateValue;
95 FOnScrollToProperty OnRequestScroll;
96 TSharedPtr<class SScrollBox> TagScrollBox;
97 TSharedPtr<class SEditableTextBox> NameTextBox;
98 TSharedPtr<class SLiveConfigPropertyValueWidget> ValueWidget;
99 bool bNeedsFocus =
false;
100 bool bNeedsValueFocus =
false;
101 bool bIsCommitting =
false;
102 bool bJustFinishedEnterCommit =
false;
103 FSimpleDelegate OnMouseDown;
104 FSimpleDelegate OnAddNewTag;