// Copyright Epic Games, Inc. All Rights Reserved. #include "ControlRigDragOps.h" #include "Editor/SRigHierarchyTagWidget.h" ////////////////////////////////////////////////////////////// /// FRigElementHierarchyDragDropOp /////////////////////////////////////////////////////////// TSharedRef FRigElementHierarchyDragDropOp::New(const TArray& InElements) { TSharedRef Operation = MakeShared(); Operation->Elements = InElements; Operation->Construct(); return Operation; } TSharedPtr FRigElementHierarchyDragDropOp::GetDefaultDecorator() const { return SNew(SBorder) .Visibility(EVisibility::Visible) .BorderImage(FAppStyle::GetBrush("Menu.Background")) [ SNew(STextBlock) .Text(FText::FromString(GetJoinedElementNames())) //.Font(FAppStyle::Get().GetFontStyle("FontAwesome.10")) ]; } FString FRigElementHierarchyDragDropOp::GetJoinedElementNames() const { TArray ElementNameStrings; for (const FRigElementKey& Element: Elements) { ElementNameStrings.Add(Element.Name.ToString()); } return FString::Join(ElementNameStrings, TEXT(",")); } bool FRigElementHierarchyDragDropOp::IsDraggingSingleConnector() const { if(Elements.Num() == 1) { return Elements[0].Type == ERigElementType::Connector; } return false; } bool FRigElementHierarchyDragDropOp::IsDraggingSingleSocket() const { if(Elements.Num() == 1) { return Elements[0].Type == ERigElementType::Socket; } return false; } ////////////////////////////////////////////////////////////// /// FRigHierarchyTagDragDropOp /////////////////////////////////////////////////////////// TSharedRef FRigHierarchyTagDragDropOp::New(TSharedPtr InTagWidget) { TSharedRef Operation = MakeShared(); Operation->Text = InTagWidget->Text.Get(); Operation->Identifier = InTagWidget->Identifier.Get(); Operation->Construct(); return Operation; } TSharedPtr FRigHierarchyTagDragDropOp::GetDefaultDecorator() const { return SNew(SBorder) .Visibility(EVisibility::Visible) .BorderImage(FAppStyle::GetBrush("Menu.Background")) [ SNew(STextBlock) .Text(Text) ]; } ////////////////////////////////////////////////////////////// /// FModularRigModuleDragDropOp /////////////////////////////////////////////////////////// TSharedRef FModularRigModuleDragDropOp::New(const TArray& InElements) { TSharedRef Operation = MakeShared(); Operation->Elements = InElements; Operation->Construct(); return Operation; } TSharedPtr FModularRigModuleDragDropOp::GetDefaultDecorator() const { return SNew(SBorder) .Visibility(EVisibility::Visible) .BorderImage(FAppStyle::GetBrush("Menu.Background")) [ SNew(STextBlock) .Text(FText::FromString(GetJoinedElementNames())) //.Font(FAppStyle::Get().GetFontStyle("FontAwesome.10")) ]; } FString FModularRigModuleDragDropOp::GetJoinedElementNames() const { TArray ElementNameStrings; for (const FString& Element: Elements) { ElementNameStrings.Add(Element); } return FString::Join(ElementNameStrings, TEXT(",")); }