Files
UnrealEngineUWP/Engine/Source/Editor/IntroTutorials/Private/STutorialNavigation.cpp
Chris Gagnon 8fc25ea18e Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 4676797 by Chris Gagnon in Dev-Editor branch]
2019-01-02 14:54:39 -05:00

128 lines
3.4 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#include "STutorialNavigation.h"
#include "Widgets/SBoxPanel.h"
#include "Styling/SlateTypes.h"
#include "Widgets/Layout/SBorder.h"
#include "Widgets/Images/SImage.h"
#include "Widgets/Notifications/SProgressBar.h"
#include "Widgets/Input/SButton.h"
#include "EditorStyleSet.h"
void STutorialNavigation::Construct(const FArguments& InArgs)
{
OnBackClicked = InArgs._OnBackClicked;
OnHomeClicked = InArgs._OnHomeClicked;
OnNextClicked = InArgs._OnNextClicked;
IsBackEnabled = InArgs._IsBackEnabled;
IsHomeEnabled = InArgs._IsHomeEnabled;
IsNextEnabled = InArgs._IsNextEnabled;
OnGetProgress = InArgs._OnGetProgress;
ChildSlot
[
SNew(SBorder)
.Padding(24.0f)
.BorderImage(FEditorStyle::GetBrush("Tutorials.Border"))
[
SNew(SVerticalBox)
+SVerticalBox::Slot()
.AutoHeight()
[
SNew(SHorizontalBox)
+SHorizontalBox::Slot()
.Padding(2.0f)
.AutoWidth()
[
SNew(SButton)
.OnClicked(this, &STutorialNavigation::OnBackButtonClicked)
.IsEnabled(InArgs._IsBackEnabled)
.ButtonStyle(&FEditorStyle::Get().GetWidgetStyle<FButtonStyle>("Tutorials.Content.Button"))
.Content()
[
SNew(SImage)
.Image(FEditorStyle::GetBrush("Tutorials.Back"))
.ColorAndOpacity(this, &STutorialNavigation::GetBackButtonColor)
]
]
+SHorizontalBox::Slot()
.Padding(2.0f)
.AutoWidth()
[
SNew(SButton)
.OnClicked(this, &STutorialNavigation::OnHomeButtonClicked)
.IsEnabled(InArgs._IsHomeEnabled)
.ButtonStyle(&FEditorStyle::Get().GetWidgetStyle<FButtonStyle>("Tutorials.Content.Button"))
.Content()
[
SNew(SImage)
.Image(FEditorStyle::GetBrush("Tutorials.Home"))
.ColorAndOpacity(this, &STutorialNavigation::GetHomeButtonColor)
]
]
+SHorizontalBox::Slot()
.Padding(2.0f)
.AutoWidth()
[
SNew(SButton)
.OnClicked(this, &STutorialNavigation::OnNextButtonClicked)
.IsEnabled(InArgs._IsNextEnabled)
.ButtonStyle(&FEditorStyle::Get().GetWidgetStyle<FButtonStyle>("Tutorials.Content.Button"))
.Content()
[
SNew(SImage)
.Image(FEditorStyle::GetBrush("Tutorials.Next"))
.ColorAndOpacity(this, &STutorialNavigation::GetNextButtonColor)
]
]
]
+SVerticalBox::Slot()
.AutoHeight()
.MaxHeight(4.0f)
.Padding(0.0f, 2.0f)
[
SNew(SProgressBar)
.Percent(this, &STutorialNavigation::GetPercentComplete)
]
]
];
}
FReply STutorialNavigation::OnBackButtonClicked()
{
OnBackClicked.ExecuteIfBound();
return FReply::Handled();
}
FSlateColor STutorialNavigation::GetBackButtonColor() const
{
return IsBackEnabled.Get() ? FLinearColor(0.0f, 0.0f, 0.0f, 1.0f) : FLinearColor(1.0f, 1.0f, 1.0f, 0.25f);
}
FReply STutorialNavigation::OnHomeButtonClicked()
{
OnHomeClicked.ExecuteIfBound();
return FReply::Handled();
}
FSlateColor STutorialNavigation::GetHomeButtonColor() const
{
return IsHomeEnabled.Get() ? FLinearColor(0.0f, 0.0f, 0.0f, 1.0f) : FLinearColor(1.0f, 1.0f, 1.0f, 0.25f);
}
FReply STutorialNavigation::OnNextButtonClicked()
{
OnNextClicked.ExecuteIfBound();
return FReply::Handled();
}
FSlateColor STutorialNavigation::GetNextButtonColor() const
{
return IsNextEnabled.Get() ? FLinearColor(0.0f, 0.0f, 0.0f, 1.0f) : FLinearColor(1.0f, 1.0f, 1.0f, 0.25f);
}
TOptional<float> STutorialNavigation::GetPercentComplete() const
{
return OnGetProgress.Get();
}