// Copyright Epic Games, Inc. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "EditorStyleSet.h"
#include "Modules/ModuleManager.h"
#include "AIGC.generated.h"

#define LOCTEXT_NAMESPACE "AIGC"
// class FAIGCCommands: public TCommands<FAIGCCommands>
// {
// public:
// 	FAIGCCommands() : TCommands<FAIGCCommands>(
// 		TEXT("MyMenuCommands"), 
// 		NSLOCTEXT("Contexts", "MyMenu", "My Menu"), 
// 		NAME_None, 
// 		FEditorStyle::GetStyleSetName()) {}
//     
// 	// 声明命令
// 	TSharedPtr<FUICommandInfo> MenuAction;
// 	TSharedPtr<FUICommandInfo> SubMenuAction;
// 	// 注册命令
// 	virtual void RegisterCommands() override
// 	{
// 		UI_COMMAND(MenuAction, "Menu Action", "Menu Action ToolTip", EUserInterfaceActionType::Button, FInputGesture());
// 		UI_COMMAND(SubMenuAction, "Sub Menu Action", "Sub Menu Action ToolTip", EUserInterfaceActionType::Button, FInputGesture());
// 	}
// };

USTRUCT()
struct FNPCChatRow : public FTableRowBase {
	GENERATED_BODY()
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString ChatText;
};
class FAIGCModule : public IModuleInterface
{
public:
	TSharedRef<SDockTab> OnSpawnPluginTab(const FSpawnTabArgs& SpawnTabArgs);
	//void SubMenuClicked();
	/** IModuleInterface implementation */
	virtual void StartupModule() override;
	virtual void ShutdownModule() override;
	void CreateOrAddData(const FString& DataTablePath, const FString& RowValue);
private:
	TSharedPtr<class FUICommandList> PluginCommands;
};
#undef LOCTEXT_NAMESPACE