|
@@ -10,8 +10,12 @@
|
|
|
#define LOCTEXT_NAMESPACE "AbleStateTreeEditor"
|
|
|
|
|
|
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
|
|
|
-void SEzAbleTreeViewWidget::Construct(const FArguments& InArgs)
|
|
|
+void SEzAbleTreeViewWidget::Construct(const FArguments& InArgs, TSharedPtr<FEzAbleTreeViewOperationMode> InAbleTreeViewOperationMode)
|
|
|
{
|
|
|
+ AbleTreeViewOperationMode = InAbleTreeViewOperationMode;
|
|
|
+
|
|
|
+ AbleTreeViewOperationMode->GetOnStateAdded().AddSP(this, &SEzAbleTreeViewWidget::HandleModelStateAdded);
|
|
|
+
|
|
|
TSharedRef<SScrollBar> HorizontalScrollBar = SNew(SScrollBar)
|
|
|
.Orientation(Orient_Horizontal)
|
|
|
.Thickness(FVector2D(12.0f, 12.0f));
|
|
@@ -99,8 +103,39 @@ END_SLATE_FUNCTION_BUILD_OPTIMIZATION
|
|
|
|
|
|
FReply SEzAbleTreeViewWidget::HandleAddStateButton()
|
|
|
{
|
|
|
- UE_LOG(LogTemp, Log, TEXT("SEzAbleTreeViewWidget::HandleAddStateButton"));
|
|
|
+ if (AbleTreeViewOperationMode == nullptr)
|
|
|
+ {
|
|
|
+ return FReply::Handled();
|
|
|
+ }
|
|
|
+
|
|
|
+ TArray<UEzAbilityState*> SelectedStates;
|
|
|
+ //AbleTreeViewOperationMode->GetSelectedStates(SelectedStates);
|
|
|
+ //UStateTreeState* FirstSelectedState = SelectedStates.Num() > 0 ? SelectedStates[0] : nullptr;
|
|
|
+
|
|
|
+// if (FirstSelectedState != nullptr)
|
|
|
+// {
|
|
|
+// // If the state is root, add child state, else sibling.
|
|
|
+// if (FirstSelectedState->Parent == nullptr)
|
|
|
+// {
|
|
|
+// StateTreeViewModel->AddChildState(FirstSelectedState);
|
|
|
+// TreeView->SetItemExpansion(FirstSelectedState, true);
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// StateTreeViewModel->AddState(FirstSelectedState);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// // Add root state at the lowest level.
|
|
|
+// StateTreeViewModel->AddState(nullptr);
|
|
|
+// }
|
|
|
+
|
|
|
+ AbleTreeViewOperationMode->AddState(nullptr);
|
|
|
+
|
|
|
return FReply::Handled();
|
|
|
+// UE_LOG(LogTemp, Log, TEXT("SEzAbleTreeViewWidget::HandleAddStateButton"));
|
|
|
+// return FReply::Handled();
|
|
|
}
|
|
|
|
|
|
TSharedRef<ITableRow> SEzAbleTreeViewWidget::HandleGenerateRow(TWeakObjectPtr<UEzAbilityState> InState, const TSharedRef<STableViewBase>& InOwnerTableView)
|
|
@@ -127,4 +162,12 @@ void SEzAbleTreeViewWidget::UpdateTree(bool bExpandPersistent /*= false*/)
|
|
|
|
|
|
}
|
|
|
|
|
|
+void SEzAbleTreeViewWidget::HandleModelStateAdded(UEzAbilityState* ParentState, UEzAbilityState* NewState)
|
|
|
+{
|
|
|
+ TreeView->SetItemSelection(NewState, true);
|
|
|
+ TreeView->SetItemExpansion(NewState, true);
|
|
|
+// TreeView->RequestScrollIntoView(TestAddState);
|
|
|
+// TreeView->RequestTreeRefresh();
|
|
|
+}
|
|
|
+
|
|
|
#undef LOCTEXT_NAMESPACE
|