Files
UnrealEngineUWP/Engine/Source/Editor/Matinee/Private/MatineePropertyWindow.cpp
Mikolaj Sieluzycki a96989f147 Add includes to files to remove the need of including Engine.h.
[CL 2508000 by Mikolaj Sieluzycki in Main branch]
2015-04-10 03:30:54 -04:00

79 lines
2.3 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#include "MatineeModule.h"
#include "Matinee.h"
#include "Matinee/MatineeActorCameraAnim.h"
#include "Editor/PropertyEditor/Public/PropertyEditorModule.h"
#include "Editor/PropertyEditor/Public/IDetailsView.h"
#include "Camera/CameraAnim.h"
void FMatinee::BuildPropertyWindow()
{
FDetailsViewArgs Args;
Args.bHideSelectionTip = true;
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropertyWindow = PropertyModule.CreateDetailView( Args );
if (IsCameraAnim())
{
// if editing a CameraAnim, show the CameraAnim object properties by default (when no track or group selected)
AMatineeActorCameraAnim* const CamAnimMatineeActor = Cast<AMatineeActorCameraAnim>(MatineeActor);
if ((CamAnimMatineeActor != nullptr) && (CamAnimMatineeActor->CameraAnim != nullptr))
{
TArray<UObject*> Objects;
Objects.Add(CamAnimMatineeActor->CameraAnim);
PropertyWindow->SetObjects(Objects);
}
}
}
/**
* Updates the contents of the property window based on which groups or tracks are selected if any.
*/
void FMatinee::UpdatePropertyWindow()
{
TArray<UObject*> Objects;
if( HasATrackSelected() )
{
TArray<UInterpTrack*> SelectedTracks;
GetSelectedTracks(SelectedTracks);
// We are guaranteed at least one selected track.
check( SelectedTracks.Num() );
// Send tracks to the property window
for (int32 Index=0; Index < SelectedTracks.Num(); Index++)
{
Objects.Add(SelectedTracks[Index]);
}
}
else if( HasAGroupSelected() )
{
TArray<UInterpGroup*> SelectedGroups;
GetSelectedGroups(SelectedGroups);
// We are guaranteed at least one selected group.
check( SelectedGroups.Num() );
// Send groups to the property window
for (int32 Index=0; Index < SelectedGroups.Num(); Index++)
{
Objects.Add(SelectedGroups[Index]);
}
}
else if (IsCameraAnim())
{
// if editing a CameraAnim, show the CameraAnim properties when nothing else selected
AMatineeActorCameraAnim* const CamAnimMatineeActor = Cast<AMatineeActorCameraAnim>(MatineeActor);
if ((CamAnimMatineeActor != nullptr) && (CamAnimMatineeActor->CameraAnim != nullptr))
{
Objects.Add(CamAnimMatineeActor->CameraAnim);
}
}
// else send nothing
PropertyWindow->SetObjects(Objects);
}