// OpenAI, Copyright LifeEXE. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "EditorUtilityWidget.h" #include "Provider/CommonTypes.h" #include "FuncLib/ModelTypes.h" #include "ChatMessageWidget.generated.h" class UBorder; class UMultiLineEditableText; class UTextBlock; class UWidgetSwitcher; class UHorizontalBox; class UImagePreviewWidget; UCLASS() class OPENAIEDITOR_API UChatMessageWidget : public UEditorUtilityWidget { GENERATED_BODY() protected: UPROPERTY(meta = (BindWidget)) TObjectPtr MainBorder; UPROPERTY(meta = (BindWidget)) TObjectPtr RoleTextBox; UPROPERTY(meta = (BindWidget)) TObjectPtr MessageText; UPROPERTY(meta = (BindWidget)) TObjectPtr TimeTextBox; UPROPERTY(meta = (BindWidget)) TObjectPtr WidgetSwitcher; // preloader -> text; UPROPERTY(meta = (BindWidget)) TObjectPtr ImageHorizontalBox; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "UI") TMap ColorMap{ {ERole::Assistant, FColor::FromHex("444654FF")}, {ERole::User, FColor::FromHex("343541FF")}, {ERole::System, FColor::FromHex("595a68FF")}, }; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "UI") FLinearColor DefaultColor{FColor::FromHex("0e0e0eFF")}; UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "UI") FLinearColor ErrorColor{FColor::FromHex("41343dFF")}; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "UI") TSubclassOf ImagePreviewWidgetClass; public: void SetMessage(const FMessage& Message, bool WasError = false); private: TArray> ImageWidgets; };