Преглед на файлове

Merge branch 'master' of ssh://192.168.3.2:11301/gan/Ability

孟宇 преди 2 месеца
родител
ревизия
d5f95c06d8

+ 7 - 7
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbilityAbleTreeSummoner.cpp

@@ -8,6 +8,7 @@
 #include "Styling/CoreStyle.h"
 #include "SAdvancedPreviewDetailsTab.h"
 #include "SEditorViewport.h"
+#include "SEzAbleTreeViewWidget.h"
 #define LOCTEXT_NAMESPACE "AbilityModes"
 
 /////////////////////////////////////////////////////
@@ -47,14 +48,13 @@ FEzAbilityAbleTreeSummoner::FEzAbilityAbleTreeSummoner(TSharedPtr<class FAssetEd
 
 TSharedRef<SWidget> FEzAbilityAbleTreeSummoner::CreateTabBody(const FWorkflowTabSpawnInfo& Info) const
 {
-//todo  there will be AbilityAbleTree
-	return SNew(SAbilityEditorViewport);
+		return SNew(SEzAbleTreeViewWidget);
 
-	// 	return SNew(SButton)
-	// 		.VAlign(VAlign_Center)
-	// 		.HAlign(HAlign_Center)
-	// 		.Text(LOCTEXT("SplitSprites", "Split Sprites"))
-	// 		.ToolTipText(LOCTEXT("SplitSprites_Tooltip", "Splits all sprite instances into separate sprite actors or components"));
+// 	 	return SNew(SButton)
+// 	 		.VAlign(VAlign_Center)
+// 	 		.HAlign(HAlign_Center)
+// 	 		.Text(LOCTEXT("SplitSprites", "Split Sprites"))
+// 	 		.ToolTipText(LOCTEXT("SplitSprites_Tooltip", "Splits all sprite instances into separate sprite actors or components"));
 
 }
 

+ 3 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/EzAbilityEditorApplicationMode.cpp

@@ -14,6 +14,7 @@
 #include "Toolkits/AssetEditorToolkit.h"
 #include "Editor/AnimationEditor/Private/AnimationEditor.h"
 #include "EzAbilityTimelineSummoner.h"
+#include "EzAbilityAbleTreeSummoner.h"
 
 #define LOCTEXT_NAMESPACE "EzAbilityEditorApplicationModeh"
 
@@ -27,6 +28,7 @@ FEzAbilityEditorApplicationMode::FEzAbilityEditorApplicationMode(const TSharedRe
 	PreviewScene = MakeShareable(new FAdvancedPreviewScene(FPreviewScene::ConstructionValues()));
 	EzAbilityEditorTabFactories.RegisterFactory(MakeShareable(new FEzAbilityViewPortSummoner(InHostingApp, PreviewScene.ToSharedRef())));
 	EzAbilityEditorTabFactories.RegisterFactory(MakeShareable(new FEzAbilityTimelineSummoner(InHostingApp, PreviewScene.ToSharedRef())));
+	EzAbilityEditorTabFactories.RegisterFactory(MakeShareable(new FEzAbilityAbleTreeSummoner(InHostingApp, PreviewScene.ToSharedRef())));
 	
 	TabLayout = FTabManager::NewLayout("Standalone_EzAbilityEditor_Layout_v1.0")
 		->AddArea
@@ -47,7 +49,7 @@ FEzAbilityEditorApplicationMode::FEzAbilityEditorApplicationMode(const TSharedRe
 					(
 						FTabManager::NewStack()
 						->SetHideTabWell(false)
-						//->AddTab(FEzAbilityViewPortSummoner::EzAbilityEditorViewPortSummonerID, ETabState::OpenedTab)
+						->AddTab(FEzAbilityAbleTreeSummoner::EzAbilityAbleTreeSummonerID, ETabState::OpenedTab)
 					)
 				)
 				->Split

+ 17 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/SEzAbleTreeViewRowWidget.cpp

@@ -0,0 +1,17 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "SEzAbleTreeViewRowWidget.h"
+#include "SlateOptMacros.h"
+
+BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
+void SEzAbleTreeViewRowWidget::Construct(const FArguments& InArgs, const TSharedRef<STableViewBase>& InOwnerTableView, TWeakObjectPtr<UEzAbilityState> InState, const TSharedPtr<SScrollBox>& ViewBox)
+{
+	/*
+	ChildSlot
+	[
+		// Populate the widget
+	];
+	*/
+}
+END_SLATE_FUNCTION_BUILD_OPTIMIZATION

+ 105 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Private/SEzAbleTreeViewWidget.cpp

@@ -0,0 +1,105 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+
+#include "SEzAbleTreeViewWidget.h"
+#include "SlateOptMacros.h"
+#include "SPositiveActionButton.h"
+#include "Widgets/Layout/SScrollBox.h"
+#include "SEzAbleTreeViewRowWidget.h"
+
+#define LOCTEXT_NAMESPACE "AbleStateTreeEditor"
+
+BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
+void SEzAbleTreeViewWidget::Construct(const FArguments& InArgs)
+{
+	TSharedRef<SScrollBar> HorizontalScrollBar = SNew(SScrollBar)
+		.Orientation(Orient_Horizontal)
+		.Thickness(FVector2D(12.0f, 12.0f));
+
+	TSharedRef<SScrollBar> VerticalScrollBar = SNew(SScrollBar)
+		.Orientation(Orient_Vertical)
+		.Thickness(FVector2D(12.0f, 12.0f));
+
+	TreeView = SNew(STreeView<TWeakObjectPtr<UEzAbilityState>>)
+		.OnGenerateRow(this, &SEzAbleTreeViewWidget::HandleGenerateRow);
+
+	ChildSlot
+		[
+			SNew(SVerticalBox)
+
+			+ SVerticalBox::Slot()
+		.VAlign(VAlign_Center)
+		.AutoHeight()
+		[
+			SNew(SBorder)
+			.BorderImage(FAppStyle::GetBrush("ToolPanel.GroupBorder"))
+		.Padding(2.0f)
+		[
+			SNew(SHorizontalBox)
+
+			// New State
+		+ SHorizontalBox::Slot()
+		.VAlign(VAlign_Center)
+		.Padding(4.0f, 2.0f)
+		.AutoWidth()
+		[
+			SNew(SPositiveActionButton)
+			.ToolTipText(LOCTEXT("AddStateToolTip", "Add New State"))
+		.Icon(FAppStyle::Get().GetBrush("Icons.Plus"))
+		.Text(LOCTEXT("AddState", "Add State"))
+		.OnClicked(this, &SEzAbleTreeViewWidget::HandleAddStateButton)
+		]
+		]
+		]
+
+	+ SVerticalBox::Slot()
+		.Padding(0.0f, 6.0f, 0.0f, 0.0f)
+		[
+			SNew(SHorizontalBox)
+			+ SHorizontalBox::Slot()
+		.FillWidth(1.0f)
+		.Padding(0.0f)
+		[
+			SAssignNew(ViewBox, SScrollBox)
+			.Orientation(Orient_Horizontal)
+		.ExternalScrollbar(HorizontalScrollBar)
+		+ SScrollBox::Slot()
+		.FillSize(1.0f)
+		[
+			TreeView.ToSharedRef()
+		]
+		]
+
+	+ SHorizontalBox::Slot()
+		.AutoWidth()
+		[
+			VerticalScrollBar
+		]
+		]
+	+ SVerticalBox::Slot()
+		.AutoHeight()
+		[
+			HorizontalScrollBar
+		]
+		];
+	/*
+	ChildSlot
+	[
+		// Populate the widget
+	];
+	*/
+}
+END_SLATE_FUNCTION_BUILD_OPTIMIZATION
+
+FReply SEzAbleTreeViewWidget::HandleAddStateButton()
+{
+	UE_LOG(LogTemp, Log, TEXT("SEzAbleTreeViewWidget::HandleAddStateButton"));
+	return FReply::Handled();
+}
+
+TSharedRef<ITableRow> SEzAbleTreeViewWidget::HandleGenerateRow(TWeakObjectPtr<UEzAbilityState> InState, const TSharedRef<STableViewBase>& InOwnerTableView)
+{
+	return SNew(SEzAbleTreeViewRowWidget, InOwnerTableView, InState, ViewBox);
+}
+
+#undef LOCTEXT_NAMESPACE

+ 0 - 1
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/EzAbilityAbleTreeSummoner.h

@@ -36,7 +36,6 @@ public:
 	FEzAbilityAbleTreeSummoner(TSharedPtr<class FAssetEditorToolkit> InHostingApp, const TSharedRef<FAdvancedPreviewScene>& InPreviewScene);
 	virtual TSharedRef<SWidget> CreateTabBody(const FWorkflowTabSpawnInfo& Info) const override;
 	virtual FText GetTabToolTipText(const FWorkflowTabSpawnInfo& Info) const override;
-	//TSharedPtr<SAbilityEditorViewport>		AbilityEditorViewport;
 	static const FName EzAbilityAbleTreeSummonerID;
 private:
 	TWeakPtr<class FAdvancedPreviewScene> PreviewScene;

+ 22 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/SEzAbleTreeViewRowWidget.h

@@ -0,0 +1,22 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "EzAbilityState.h"
+#include "Widgets/SCompoundWidget.h"
+#include "Widgets/Views/STableRow.h"
+
+/**
+ * 
+ */
+class EZABILITYEDITOR_API SEzAbleTreeViewRowWidget : public STableRow<TWeakObjectPtr<UEzAbilityState>> //public SCompoundWidget
+{
+public:
+	SLATE_BEGIN_ARGS(SEzAbleTreeViewRowWidget)
+	{}
+	SLATE_END_ARGS()
+
+	/** Constructs this widget with InArgs */
+	void Construct(const FArguments& InArgs, const TSharedRef<STableViewBase>& InOwnerTableView, TWeakObjectPtr<UEzAbilityState> InState, const TSharedPtr<SScrollBox>& ViewBox);
+};

+ 31 - 0
Ability/Plugins/EzAbility/Source/EzAbilityEditor/Public/SEzAbleTreeViewWidget.h

@@ -0,0 +1,31 @@
+// Fill out your copyright notice in the Description page of Project Settings.
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Widgets/SCompoundWidget.h"
+#include "Widgets/Layout/SScrollBox.h"
+#include "EzAbilityState.h"
+
+/**
+ * 
+ */
+class EZABILITYEDITOR_API SEzAbleTreeViewWidget : public SCompoundWidget
+{
+public:
+	SLATE_BEGIN_ARGS(SEzAbleTreeViewWidget)
+	{}
+	SLATE_END_ARGS()
+
+	/** Constructs this widget with InArgs */
+	void Construct(const FArguments& InArgs);
+	FReply HandleAddStateButton();
+
+	// Treeview handlers
+	TSharedRef<ITableRow> HandleGenerateRow(TWeakObjectPtr<UEzAbilityState> InState, const TSharedRef<STableViewBase>& InOwnerTableView);
+
+public:
+
+	TSharedPtr<STreeView<TWeakObjectPtr<UEzAbilityState>>> TreeView;
+	TSharedPtr<SScrollBox> ViewBox;
+};