| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | // Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.#pragma once#include "CoreMinimal.h"#include "Layout/Visibility.h"#include "Layout/Margin.h"#include "Animation/CurveHandle.h"#include "Animation/CurveSequence.h"#include "Styling/SlateColor.h"#include "Widgets/DeclarativeSyntaxSupport.h"#include "Widgets/SCompoundWidget.h"#include "AssetDiscoveryIndicator.h"#include "ExtAssetData.h"/** An indicator for the progress of the asset registry background search */class SExtAssetDiscoveryIndicator : public SCompoundWidget{public:	SLATE_BEGIN_ARGS( SExtAssetDiscoveryIndicator )		: _ScaleMode(EAssetDiscoveryIndicatorScaleMode::Scale_None)		, _FadeIn(true)		{}		/** The way the indicator will scale out when done displaying progress */		SLATE_ARGUMENT( EAssetDiscoveryIndicatorScaleMode::Type, ScaleMode )		/** The padding to apply to the background of the indicator */		SLATE_ARGUMENT( FMargin, Padding )		/** If true, this widget will fade in after a short delay */		SLATE_ARGUMENT( bool, FadeIn )	SLATE_END_ARGS()	/** Destructor */	virtual ~SExtAssetDiscoveryIndicator();	/** Constructs this widget with InArgs */	void Construct( const FArguments& InArgs );	// SCompoundWidget interface	virtual void Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime ) override;	/** Handles updating the progress from the asset registry */	void OnAssetRegistryFileLoadProgress(const FExtAssetRegistry::FAssetGatherProgressUpdateData& ProgressUpdateData);	/** Handles updating the progress from the asset registry */	void OnAssetRegistryFilesLoaded();	/** Gets the main status text */	FText GetMainStatusText() const;	/** Gets the sub status text */	FText GetSubStatusText() const;	/** Gets the progress bar fraction */	TOptional<float> GetProgress() const;	/** Gets the sub status text visbility */	EVisibility GetSubStatusTextVisibility() const;	/** Get the current wrap point for the status text */	float GetStatusTextWrapWidth() const;	/** Gets the background's opacity */	FSlateColor GetBorderBackgroundColor() const;	/** Gets the whole widget's opacity */	FLinearColor GetIndicatorColorAndOpacity() const;	/** Gets the whole widget's opacity */	FVector2D GetIndicatorDesiredSizeScale() const;	/** Gets the whole widget's visibility */	EVisibility GetIndicatorVisibility() const;private:	/** The main status text */	FText MainStatusText;	/** The sub status text (if any) */	FText SubStatusText;	/** The asset registry's asset discovery progress as a percentage */	TOptional<float> Progress;	/** The current wrap point for the status text */	float StatusTextWrapWidth;	/** The way the indicator will scale in/out before/after displaying progress */	EAssetDiscoveryIndicatorScaleMode::Type ScaleMode;	/** The fade in/out animation */	FCurveSequence FadeAnimation;	FCurveHandle FadeCurve;	FCurveHandle ScaleCurve;};
 |