Files
UnrealEngineUWP/Engine/Source/Editor/PhAT/Private/SPhATPreviewViewport.cpp
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

92 lines
2.3 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#include "SPhATPreviewViewport.h"
#include "PhAT.h"
#include "PhATPreviewViewportClient.h"
#include "Widgets/SViewport.h"
#include "Framework/Application/SlateApplication.h"
#include "Slate/SceneViewport.h"
#include "SPhATPreviewToolbar.h"
#include "Widgets/Docking/SDockTab.h"
SPhATPreviewViewport::~SPhATPreviewViewport()
{
if (EditorViewportClient.IsValid())
{
EditorViewportClient->Viewport->Destroy();
EditorViewportClient->Viewport = NULL;
}
}
void SPhATPreviewViewport::SetViewportType(ELevelViewportType ViewType)
{
EditorViewportClient->SetViewportType(ViewType);
}
void SPhATPreviewViewport::RotateViewportType()
{
EditorViewportClient->RotateViewportType();
}
void SPhATPreviewViewport::Construct(const FArguments& InArgs)
{
PhATPtr = InArgs._PhAT;
SEditorViewport::Construct(SEditorViewport::FArguments());
ViewportWidget->SetEnabled(FSlateApplication::Get().GetNormalExecutionAttribute());
}
void SPhATPreviewViewport::RefreshViewport()
{
SceneViewport->Invalidate();
SceneViewport->InvalidateDisplay();
}
bool SPhATPreviewViewport::IsVisible() const
{
return ViewportWidget.IsValid() && (!ParentTab.IsValid() || ParentTab.Pin()->IsForeground());
}
TSharedPtr<FSceneViewport> SPhATPreviewViewport::GetViewport() const
{
return SceneViewport;
}
TSharedPtr<FPhATEdPreviewViewportClient> SPhATPreviewViewport::GetViewportClient() const
{
return EditorViewportClient;
}
TSharedPtr<SViewport> SPhATPreviewViewport::GetViewportWidget() const
{
return ViewportWidget;
}
void SPhATPreviewViewport::OnFocusViewportToSelection()
{
if(FPhAT* Phat = PhATPtr.Pin().Get())
{
Phat->OnFocusSelection();
}
}
TSharedRef<FEditorViewportClient> SPhATPreviewViewport::MakeEditorViewportClient()
{
EditorViewportClient = MakeShareable(new FPhATEdPreviewViewportClient(PhATPtr, PhATPtr.Pin()->GetSharedData(), SharedThis(this)));
EditorViewportClient->bSetListenerPosition = false;
EditorViewportClient->SetRealtime(!FPhAT::IsPIERunning());
EditorViewportClient->VisibilityDelegate.BindSP(this, &SPhATPreviewViewport::IsVisible);
return EditorViewportClient.ToSharedRef();
}
TSharedPtr<SWidget> SPhATPreviewViewport::MakeViewportToolbar()
{
return SNew(SPhATPreviewViewportToolBar, SharedThis(this))
.PhATPtr(PhATPtr)
.IsEnabled(FSlateApplication::Get().GetNormalExecutionAttribute());
}