本文整理汇总了C++中TSharedPtr::CanDockInNode方法的典型用法代码示例。如果您正苦于以下问题:C++ TSharedPtr::CanDockInNode方法的具体用法?C++ TSharedPtr::CanDockInNode怎么用?C++ TSharedPtr::CanDockInNode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TSharedPtr
的用法示例。
在下文中一共展示了TSharedPtr::CanDockInNode方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnDrop
FReply SDockingTabWell::OnDrop( const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent )
{
TSharedPtr<FDockingDragOperation> DragDropOperation = DragDropEvent.GetOperationAs<FDockingDragOperation>();
if (DragDropOperation.IsValid())
{
if (DragDropOperation->CanDockInNode(ParentTabStackPtr.Pin().ToSharedRef(), FDockingDragOperation::DockingViaTabWell))
{
if ( ensure( TabBeingDraggedPtr.IsValid() ) )
{
// We dropped a Tab into this TabWell.
const TSharedRef<SDockTab> TabBeingDragged = TabBeingDraggedPtr.ToSharedRef();
// Figure out where in this TabWell to drop the Tab.
const int32 DropLocationIndex = ComputeChildDropIndex(MyGeometry, TabBeingDragged);
ensure( DragDropOperation->GetTabBeingDragged().ToSharedRef() == TabBeingDragged );
// Actually insert the new tab.
ParentTabStackPtr.Pin()->OpenTab(TabBeingDragged, DropLocationIndex);
// We are no longer dragging a tab.
TabBeingDraggedPtr.Reset();
// We knew how to handled this drop operation!
return FReply::Handled();
}
}
}
// Someone just dropped something in here, but we have no idea what to do with it.
return FReply::Unhandled();
}
示例2: OnDragEnter
void SDockingArea::OnDragEnter( const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent )
{
TSharedPtr<FDockingDragOperation> DragDropOperation = DragDropEvent.GetOperationAs<FDockingDragOperation>();
if ( DragDropOperation.IsValid() )
{
if ( DragDropOperation->CanDockInNode(SharedThis(this), FDockingDragOperation::DockingViaTarget) )
{
ShowCross();
}
}
}
示例3: OnDragOver
FReply SDockingTabWell::OnDragOver( const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent )
{
TSharedPtr<FDockingDragOperation> DragDropOperation = DragDropEvent.GetOperationAs<FDockingDragOperation>();
if ( DragDropOperation.IsValid() )
{
if (DragDropOperation->CanDockInNode(ParentTabStackPtr.Pin().ToSharedRef(), FDockingDragOperation::DockingViaTabWell))
{
// We are dragging the tab through a TabWell.
// Update the position of the Tab that we are dragging in the panel.
this->ChildBeingDraggedOffset = ComputeDraggedTabOffset(MyGeometry, DragDropEvent, TabGrabOffsetFraction);
return FReply::Handled();
}
}
return FReply::Unhandled();
}
示例4: OnDragEnter
void SDockingTabWell::OnDragEnter( const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent )
{
TSharedPtr<FDockingDragOperation> DragDropOperation = DragDropEvent.GetOperationAs<FDockingDragOperation>();
if ( DragDropOperation.IsValid() )
{
if (DragDropOperation->CanDockInNode(ParentTabStackPtr.Pin().ToSharedRef(), FDockingDragOperation::DockingViaTabWell))
{
// The user dragged a tab into this TabWell.
// Update the state of the DragDropOperation to reflect this change.
DragDropOperation->OnTabWellEntered( SharedThis(this) );
// Preview the position of the tab in the TabWell
this->TabBeingDraggedPtr = DragDropOperation->GetTabBeingDragged();
this->TabGrabOffsetFraction = DragDropOperation->GetTabGrabOffsetFraction();
// The user should see the contents of the tab that we're dragging.
ParentTabStackPtr.Pin()->SetNodeContent(DragDropOperation->GetTabBeingDragged()->GetContent(), SNullWidget::NullWidget, SNullWidget::NullWidget, SNullWidget::NullWidget);
}
}
}
示例5: OnDragLeave
void SDockingTabWell::OnDragLeave( const FDragDropEvent& DragDropEvent )
{
TSharedPtr<FDockingDragOperation> DragDropOperation = DragDropEvent.GetOperationAs<FDockingDragOperation>();
if ( DragDropOperation.IsValid() )
{
TSharedRef<SDockingTabStack> ParentTabStack = ParentTabStackPtr.Pin().ToSharedRef();
TSharedPtr<SDockTab> TabBeingDragged = this->TabBeingDraggedPtr;
// Check for TabBeingDraggedPtr validity as it may no longer be valid when dragging tabs in game
if ( TabBeingDragged.IsValid() && DragDropOperation->CanDockInNode(ParentTabStack, FDockingDragOperation::DockingViaTabWell) )
{
// Update the DragAndDrop operation based on this change.
const int32 LastForegroundTabIndex = Tabs.Find(TabBeingDragged.ToSharedRef());
// The user is pulling a tab out of this TabWell.
TabBeingDragged->SetParent();
// We are no longer dragging a tab in this tab well, so stop
// showing it in the TabWell.
this->TabBeingDraggedPtr.Reset();
// Also stop showing its content; switch to the last tab that was active.
BringTabToFront( FMath::Max(LastForegroundTabIndex-1, 0) );
// We may have removed the last tab that this DockNode had.
if ( Tabs.Num() == 0 )
{
// Let the DockNode know that it is no longer needed.
ParentTabStack->OnLastTabRemoved();
}
GetDockArea()->CleanUp( SDockingNode::TabRemoval_DraggedOut );
const FGeometry& DockNodeGeometry = ParentTabStack->GetTabStackGeometry();
DragDropOperation->OnTabWellLeft( SharedThis(this), DockNodeGeometry );
}
}
}