Files
UnrealEngineUWP/Engine/Source/Developer/SharedSettingsWidgets/Public/SPlatformSetupMessage.h
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

66 lines
1.7 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Misc/Attribute.h"
#include "Input/Reply.h"
#include "Styling/SlateColor.h"
#include "Widgets/DeclarativeSyntaxSupport.h"
#include "Widgets/SWidget.h"
#include "Widgets/SCompoundWidget.h"
/////////////////////////////////////////////////////
// SPlatformSetupMessage
// This widget displays a setup message indicating if the game project is configured for a platform or not
class SHAREDSETTINGSWIDGETS_API SPlatformSetupMessage : public SCompoundWidget
{
enum ESetupState
{
MissingFiles,
NeedsCheckout,
ReadOnlyFiles,
ReadyToModify
};
SLATE_BEGIN_ARGS(SPlatformSetupMessage)
{}
// Name of the platform
SLATE_ARGUMENT(FText, PlatformName)
// Called when the Setup button is clicked
SLATE_EVENT(FSimpleDelegate, OnSetupClicked)
SLATE_END_ARGS()
public:
void Construct(const FArguments& InArgs, const FString& InTargetFilename);
TAttribute<bool> GetReadyToGoAttribute() const;
// SWidget interface
virtual void Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime ) override;
// End of Swidget interface
private:
int32 GetSetupStateAsInt() const;
bool IsReadyToGo() const;
FSlateColor GetBorderColor() const;
TSharedRef<SWidget> MakeRow(FName IconName, FText Message, FText ButtonMessage);
FReply OnButtonPressed();
// Returns the setup state of a specified file
ESetupState GetSetupStateBasedOnFile(bool bForceUpdate) const;
// Updates the cache CachedSetupState
void UpdateCache(bool bForceUpdate);
private:
FString TargetFilename;
ESetupState CachedSetupState;
FSimpleDelegate OnSetupClicked;
};