A Demo Project for the UnrealEngineSDK
Loading...
Searching...
No Matches
DialogueEdge_Details.h
Go to the documentation of this file.
1// Copyright Csaba Molnar, Daniel Butum. All Rights Reserved.
2#pragma once
3
4#include "IPropertyTypeCustomization.h"
5#include "Layout/Visibility.h"
7#include "DlgManager.h"
8
9class UDlgDialogue;
12
18{
20
21public:
22 static TSharedRef<IPropertyTypeCustomization> MakeInstance() { return MakeShared<Self>(); }
23
33 void CustomizeHeader(TSharedRef<IPropertyHandle> StructPropertyHandle,
34 FDetailWidgetRow& HeaderRow,
35 IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
36
44 void CustomizeChildren(TSharedRef<IPropertyHandle> StructPropertyHandle,
45 IDetailChildrenBuilder& StructBuilder,
46 IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
47
49 TArray<FName> GetAllDialoguesSpeakerStates() const
50 {
51 TArray<FName> OutArray;
53 return OutArray;
54 }
55
57 void HandleSpeakerStateCommitted(const FText& InSearchText, ETextCommit::Type CommitInfo);
58
60 void HandleTextCommitted(const FText& InText, ETextCommit::Type CommitInfo);
61 void HandleTextChanged(const FText& InText);
62
63private:
64 // Getters for the visibility of some properties
65 EVisibility GetTextVisibility() const { return bShowTextProperty ? EVisibility::Visible : EVisibility::Hidden; }
66
67 EVisibility GetSpeakerStateVisibility() const
68 {
69 const UDlgSystemSettings* Settings = GetDefault<UDlgSystemSettings>();
70 const bool bSettingsShow =
73
74 return bShowTextProperty && bSettingsShow ? EVisibility::Visible : EVisibility::Hidden;
75 }
76
77private:
79 TSharedPtr<IPropertyHandle> StructPropertyHandle;
80
82 bool bShowTextProperty = true;
83
85 TSharedPtr<IPropertyHandle> TextPropertyHandle;
86 TSharedPtr<FDialogueMultiLineEditableTextBox_CustomRowHelper> TextPropertyRow;
87 TSharedPtr<FDialogueTextPropertyPickList_CustomRowHelper> SpeakerStatePropertyRow;
88
91};
TArray< FName > GetAllDialoguesSpeakerStates() const
FDialogueEdge_Details Self
TSharedPtr< IPropertyHandle > TextPropertyHandle
void CustomizeChildren(TSharedRef< IPropertyHandle > StructPropertyHandle, IDetailChildrenBuilder &StructBuilder, IPropertyTypeCustomizationUtils &StructCustomizationUtils) override
TSharedPtr< FDialogueMultiLineEditableTextBox_CustomRowHelper > TextPropertyRow
EVisibility GetSpeakerStateVisibility() const
void HandleTextCommitted(const FText &InText, ETextCommit::Type CommitInfo)
void HandleSpeakerStateCommitted(const FText &InSearchText, ETextCommit::Type CommitInfo)
void HandleTextChanged(const FText &InText)
void CustomizeHeader(TSharedRef< IPropertyHandle > StructPropertyHandle, FDetailWidgetRow &HeaderRow, IPropertyTypeCustomizationUtils &StructCustomizationUtils) override
TSharedPtr< IPropertyHandle > StructPropertyHandle
static TSharedRef< IPropertyTypeCustomization > MakeInstance()
TSharedPtr< FDialogueTextPropertyPickList_CustomRowHelper > SpeakerStatePropertyRow
EVisibility GetTextVisibility() const
UCLASS(BlueprintType, Meta = (DisplayThumbnail = "true"))
Definition DlgDialogue.h:85
static void GetAllDialoguesSpeakerStates(TArray< FName > &OutArray)
UFUNCTION(BlueprintPure, Category = "Dialogue|Data")
UCLASS(Config = Engine, DefaultConfig, meta = (DisplayName = "Dialogue System Settings"))
EDlgSpeakerStateVisibility DialogueSpeakerStateVisibility
UPROPERTY(Category = "Dialogue Node Data", Config, EditAnywhere, DisplayName = "SpeakerState Visibili...