4#include "IDetailPropertyRow.h"
5#include "IPropertyUtilities.h"
6#include "IDetailChildrenBuilder.h"
7#include "UObject/TextProperty.h"
17#define LOCTEXT_NAMESPACE "DialogueTextArgument_Details"
22 FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
26 PropertyUtils = StructCustomizationUtils.GetPropertyUtilities();
39 if (!bShowOnlyInnerProperties)
41 HeaderRow.NameContent()
49 IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils)
51 const bool bHasDialogue =
Dialogue !=
nullptr;
58 FDetailWidgetRow* DetailWidgetRow = &StructBuilder.AddCustomRow(LOCTEXT(
"ParticipantNameSearchKey",
"Participant Name"));
65 .HasContextCheckbox(bHasDialogue)
66 .IsContextCheckBoxChecked(
true)
77 const TSharedPtr<IPropertyHandle> VariableNamePropertyHandle =
StructPropertyHandle->GetChildHandle(
80 FDetailWidgetRow* DetailWidgetRow = &StructBuilder.AddCustomRow(LOCTEXT(
"VariableNameSearchKey",
"Variable Name"));
82 VariableNamePropertyRow = MakeShared<FDialogueTextPropertyPickList_CustomRowHelper>(DetailWidgetRow, VariableNamePropertyHandle);
87 .HasContextCheckbox(bHasDialogue)
88 .IsContextCheckBoxChecked(
false)
134 TArray<FName> Suggestions;
142 TSet<FName> SuggestionsSet;
144 Suggestions = SuggestionsSet.Array();
155 FNYIntProperty::StaticClass(),
157 GetDefault<UDlgSystemSettings>()->BlacklistedReflectionClasses
164 TSet<FName> SuggestionsSet;
166 Suggestions = SuggestionsSet.Array();
179 FNYFloatProperty::StaticClass(),
181 GetDefault<UDlgSystemSettings>()->BlacklistedReflectionClasses
191 FNYTextProperty::StaticClass(),
193 GetDefault<UDlgSystemSettings>()->BlacklistedReflectionClasses
206#undef LOCTEXT_NAMESPACE
static const TCHAR * META_ShowOnlyInnerProperties
#define CREATE_VISIBILITY_CALLBACK(_SelfMethod)
EDlgTextArgumentType
UENUM(BlueprintType)
TSharedPtr< IPropertyHandle > ParticipantNamePropertyHandle
EVisibility GetVariableNameVisibility() const
TSharedPtr< FDialogueObject_CustomRowHelper > CustomTextArgumentPropertyRow_CustomDisplay
void HandleTextCommitted(const FText &InSearchText, ETextCommit::Type CommitInfo) const
TArray< FName > GetCurrentDialogueVariableNames() const
TArray< FName > GetCurrentDialogueParticipantNames() const
EVisibility GetCustomTextArgumentVisibility() const
TArray< FName > GetDialogueVariableNames(bool bCurrentOnly) const
TArray< FName > GetAllDialoguesParticipantNames() const
IDetailPropertyRow * CustomTextArgumentPropertyRow
void OnArgumentTypeChanged(bool bForceRefresh)
TSharedPtr< FDialogueTextPropertyPickList_CustomRowHelper > VariableNamePropertyRow
TSharedPtr< IPropertyUtilities > PropertyUtils
void CustomizeChildren(TSharedRef< IPropertyHandle > StructPropertyHandle, IDetailChildrenBuilder &StructBuilder, IPropertyTypeCustomizationUtils &StructCustomizationUtils) override
void CustomizeHeader(TSharedRef< IPropertyHandle > StructPropertyHandle, FDetailWidgetRow &HeaderRow, IPropertyTypeCustomizationUtils &StructCustomizationUtils) override
TSharedPtr< IPropertyHandle > ArgumentTypePropertyHandle
TSharedPtr< FDialogueTextPropertyPickList_CustomRowHelper > ParticipantNamePropertyRow
EDlgTextArgumentType ArgumentType
TSharedPtr< IPropertyHandle > StructPropertyHandle
TArray< FName > GetAllDialoguesVariableNames() const
static void SortDefault(TArray< FName > &OutArray)
static void GetVariableNames(const UClass *ParticipantClass, const FNYPropertyClass *PropertyClass, ContainerType &OutContainer, const TArray< UClass * > &BlacklistedClasses)
UClass * GetParticipantClass(FName ParticipantName) const
EDITOR function, it only works if the participant class is setup in the ParticipantsClasses array.
void GetFloatNames(FName ParticipantName, TSet< FName > &OutSet) const
UFUNCTION(BlueprintPure, Category = "Dialogue")
void GetIntNames(FName ParticipantName, TSet< FName > &OutSet) const
UFUNCTION(BlueprintPure, Category = "Dialogue")
static void GetAllDialoguesIntNames(FName ParticipantName, TArray< FName > &OutArray)
UFUNCTION(BlueprintPure, Category = "Dialogue|Data")
static void GetAllDialoguesFloatNames(FName ParticipantName, TArray< FName > &OutArray)
UFUNCTION(BlueprintPure, Category = "Dialogue|Data")
UCLASS(Blueprintable, BlueprintType, Abstract, EditInlineNew)
static FName GetParticipantNameFromPropertyHandle(const TSharedRef< IPropertyHandle > &ParticipantNamePropertyHandle)
static UDlgDialogue * GetDialogueFromPropertyHandle(const TSharedRef< IPropertyHandle > &PropertyHandle)