64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| struct FCSProjectDestination
 | |
| {
 | |
|     FCSProjectDestination(const FName InKey, FText InDisplayName, FString InName, FString InPath, const int32 Index, TSharedPtr<IPlugin> Plugin = nullptr) :
 | |
|         Key(InKey), DisplayName(MoveTemp(InDisplayName)), Name(MoveTemp(InName)), Path(MoveTemp(InPath)), Index(Index), Plugin(MoveTemp(Plugin)) {}
 | |
| 
 | |
|     FName GetKey() const { return Key; }
 | |
|     const FText& GetDisplayName() const { return DisplayName; }
 | |
| 	const FString& GetName() const { return Name; }
 | |
|     const FString& GetPath() const { return Path; }
 | |
|     int32 GetIndex() const { return Index; }
 | |
|     const TSharedPtr<IPlugin>& GetPlugin() const { return Plugin; }
 | |
| 
 | |
| private:
 | |
|     FName Key;
 | |
|     FText DisplayName;
 | |
| 	FString Name;
 | |
|     FString Path;
 | |
|     int32 Index;
 | |
|     TSharedPtr<IPlugin> Plugin;
 | |
| 
 | |
|     friend uint32 GetTypeHash(const FCSProjectDestination& ProjectDestination)
 | |
|     {
 | |
|         return GetTypeHash(ProjectDestination.Key);
 | |
|     }
 | |
| };
 | |
| 
 | |
| class SCSNewProjectDialog : public SCompoundWidget
 | |
| {
 | |
| 
 | |
| public:
 | |
| 
 | |
| 	SLATE_BEGIN_ARGS(SCSNewProjectDialog) {}
 | |
| 	SLATE_END_ARGS()
 | |
| 
 | |
| 	void Construct(const FArguments& InArgs);
 | |
| 
 | |
| private:
 | |
| 
 | |
|     void OnProjectDestinationChanged(TSharedPtr<FCSProjectDestination> NewProjectDestination, ESelectInfo::Type SelectInfo);
 | |
|     static TSharedRef<SWidget> OnGenerateProjectDestinationWidget(TSharedRef<FCSProjectDestination> Destination);
 | |
| 	void OnPathSelected(const FString& NewPath);
 | |
| 	FReply OnExplorerButtonClicked();
 | |
| 
 | |
| 	void OnCancel();
 | |
| 	void OnFinish();
 | |
| 
 | |
| 	bool CanFinish() const;
 | |
| 
 | |
| 	void CloseWindow();
 | |
| 
 | |
| private:
 | |
| 
 | |
| 	TSharedPtr<SEditableTextBox> PathTextBox;
 | |
|     TSharedPtr<SComboBox<TSharedRef<FCSProjectDestination>>> ProjectDestinationComboBox;
 | |
| 	TSharedPtr<SEditableTextBox> NameTextBox;
 | |
| 
 | |
| 	FString SuggestedProjectName;
 | |
|     TArray<TSharedRef<FCSProjectDestination>> ProjectDestinations;
 | |
|     int32 SelectedProjectDestinationIndex = INDEX_NONE;
 | |
| 
 | |
| };
 |