LEAP Documentation 40220
Documentation for the LEAP project
LoadingScreenSlate.h
Go to the documentation of this file.
1#pragma once
2
3#include "CoreMinimal.h"
4#include "SlateBasics.h"
5#include "SlateExtras.h"
6#include "Public/Blueprint/UserWidget.h"
7#include "Public/Widgets/SCompoundWidget.h"
8#include "Public/Widgets/SLeafWidget.h"
9#include "LoadingScreenSlate.generated.h"
10
11UCLASS()
12class ULoadingScreenSlate : public UObject
13{
14 GENERATED_BODY()
15};
16
17class SLoadingScreenWidget : public SLeafWidget
18{
19public:
21 SLATE_END_ARGS()
22
23public:
24 virtual void StartFadeSequence();
25 virtual void LoadComplete() = 0;
26
27protected:
28 FCurveSequence FadeSequence;
29 FCurveHandle FadeCurve;
30 float FadeTime;
31};
32
33class SProjectXLoadingScreen : public SCompoundWidget
34{
35public:
37 SLATE_ARGUMENT(float, FadeTime)
38 SLATE_ARGUMENT(FSlateBrush*, Image)
39 SLATE_ARGUMENT(FSlateBrush*, FrameBrush)
40 SLATE_ARGUMENT(FSlateBrush*, ForeGroundBrush)
41 SLATE_ARGUMENT(FSlateBrush*,MiddleGroundTitleBrush)
42 SLATE_ARGUMENT(const FSlateBrush*, LoadingIcon)
43 SLATE_ARGUMENT(FText, MapName)
44 SLATE_ARGUMENT(FSlateFontInfo, MapNameFont)
45 SLATE_ARGUMENT(FText, MapSize)
46 SLATE_ARGUMENT(FSlateFontInfo, MapSizeFont)
47 SLATE_ARGUMENT(FText, AuthorName)
48 SLATE_ARGUMENT(FSlateFontInfo, AuthorNameFont)
49 SLATE_ARGUMENT(FText, DescriptionText)
50 SLATE_ARGUMENT(FSlateFontInfo, DescriptionFont)
51 SLATE_ARGUMENT(FText, MapDescriptionText)
52 SLATE_ARGUMENT(FSlateFontInfo, MapDescriptionFont)
53 SLATE_ARGUMENT(FSlateColor, LevelNameColor)
54 SLATE_ARGUMENT(FSlateColor, ModeColor)
55 SLATE_ARGUMENT(FSlateColor, DescriptionColor)
56 SLATE_ARGUMENT(const FSlateBrush*, TitleBackground)
57 SLATE_END_ARGS()
58
59 void Construct(const FArguments& InArgs);
60
61 void LoadComplete();
62
63 float GetFadeTime() const { return FadeTime; }
64
65 UFUNCTION()
66 TOptional<FSlateRenderTransform> GetTextRenderTransform() const;
67 UFUNCTION()
68 TOptional<FSlateRenderTransform> GetDescriptionTextRenderTransform() const;
69 UFUNCTION()
70 TOptional<FSlateRenderTransform> GetMapInfoBackgourndTransform() const;
71 UFUNCTION()
72 TOptional<FSlateRenderTransform> GetModeTextRenderTransform() const;
73 UFUNCTION()
74 TOptional<FSlateRenderTransform> GetMapNameTextRenderTransform() const;
75 UFUNCTION()
76 TOptional<FSlateRenderTransform> GetMapSizeTextRenderTransform() const;
77 UFUNCTION()
78 FSlateColor GetTextRenderColor() const;
79 UFUNCTION()
80 FSlateColor GetDescriptionTextRenderColor() const;
81 UFUNCTION()
82 FSlateColor GetBackgroundImageRenderColor() const;
83
84 TAttribute<TOptional<FSlateRenderTransform>> TextRenderTransform;
85 TAttribute<TOptional<FSlateRenderTransform>> DescriptionTextRenderTransform;
86 TAttribute<TOptional<FSlateRenderTransform>> MapInfoBackgroundTransform;
87 TAttribute<TOptional<FSlateRenderTransform>> MapDescriptionBackgroundTransform;
88 TAttribute<TOptional<FSlateRenderTransform>> ModeTextRenderTransform;
89 TAttribute<TOptional<FSlateRenderTransform>> MapSizeRenderTransform;
90 TAttribute<TOptional<FSlateRenderTransform>> MapNameTextRenderTransform;
91 TAttribute<FSlateColor> TitleTextRenderColour;
92 TAttribute<FSlateColor> DescriptionTextRenderColour;
93 TAttribute<FSlateColor> BackgroundImageRenderColour;
94
95 FSlateColor MapNameTextColor;
96 FSlateColor DescriptionTextColor;
97
98protected:
99 TSharedPtr<SLoadingScreenWidget> BackgroundWidget;
100 TSharedPtr<SImage> ForegroundWidget;
101 TSharedPtr<SLoadingScreenWidget> FrameWidget;
102 TSharedPtr<SLoadingScreenWidget> LoadIconWidget;
103 TSharedPtr<SImage> MapBackgroundWidget;
104 TSharedPtr<SImage> MapDescriptionBackgroundWidget;
105 TSharedPtr<SImage> MapMiddlegroundWidget;
106 TSharedPtr<STextBlock> MapNameTextWidget;
107 TSharedPtr<STextBlock> MapSizeTextWidget;
108 TSharedPtr<STextBlock> AuthorNameTextWidget;
109 TSharedPtr<STextBlock> DescriptionTextWidget;
110 TSharedPtr<STextBlock> MapDescriptionText;
111
112 float FadeTime = 0.f;
113 FCurveSequence FadeSequence;
114 FCurveHandle FadeCurve;
115 FCurveHandle TextCurve;
116};
117
119{
120public:
122 {}
123 SLATE_ARGUMENT(float, FadeTime)
124 SLATE_ARGUMENT(FSlateBrush*, Image)
125 SLATE_END_ARGS()
126
127 void Construct(const FArguments& InArgs);
128
129 virtual int32 OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
130 virtual FVector2D ComputeDesiredSize(float) const override;
131
132 virtual void LoadComplete() override;
133
134protected:
135 //The image we want to draw on this widget. Data chained down from SProjectXLoadingScreen
136 FSlateBrush* Image;
137
138 bool bFadingOut = false;
139};
140
142{
143public:
145 SLATE_ARGUMENT(float, FadeTime)
146 SLATE_ARGUMENT(FSlateBrush*, FrameBrush)
147 SLATE_END_ARGS()
148
149 void Construct(const FArguments& InArgs);
150
151 virtual int32 OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
152 virtual FVector2D ComputeDesiredSize(float) const override;
153
154 virtual void LoadComplete() override;
155
156protected:
157 //The image we want to draw on this widget. Data chained down from SProjectXLoadingScreen
158 FSlateBrush* FrameBrush;
159
160 bool bFadingOut = false;
161};
162
164{
165public:
167 SLATE_ARGUMENT(float, FadeTime)
168 SLATE_ARGUMENT(const FSlateBrush*, LoadingIcon)
169 SLATE_END_ARGS()
170
171 void Construct(const FArguments& InArgs);
172
173 virtual int32 OnPaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
174 virtual FVector2D ComputeDesiredSize(float) const override;
175
176 virtual void StartFadeSequence() override;
177 virtual void LoadComplete() override;
178
179protected:
180 //The image we want to draw on this widget. Data chained down from SProjectXLoadingScreen
181 const FSlateBrush* LoadingIcon;
182 //The duration this fade lasts for. Data chained down from SProjectXLoadingScreen
183 float FadeTime;
184
185 FCurveSequence AnimationSequence;
186 FCurveHandle SpinCurve;
187};
Definition: LoadingScreenSlate.h:119
SLATE_BEGIN_ARGS(SLoadingScreenBackground)
Definition: LoadingScreenSlate.h:121
Definition: LoadingScreenSlate.h:142
SLATE_BEGIN_ARGS(SLoadingScreenFrame)
Definition: LoadingScreenSlate.h:144
Definition: LoadingScreenSlate.h:164
SLATE_BEGIN_ARGS(SLoadingScreenIcon)
Definition: LoadingScreenSlate.h:166
Definition: LoadingScreenSlate.h:18
float FadeTime
Definition: LoadingScreenSlate.h:30
virtual void LoadComplete()=0
FCurveHandle FadeCurve
Definition: LoadingScreenSlate.h:29
FCurveSequence FadeSequence
Definition: LoadingScreenSlate.h:28
SLATE_BEGIN_ARGS(SLoadingScreenWidget)
Definition: LoadingScreenSlate.h:20
virtual void StartFadeSequence()
Definition: LoadingScreenSlate.cpp:246
Definition: LoadingScreenSlate.h:34
SLATE_BEGIN_ARGS(SProjectXLoadingScreen)
Definition: LoadingScreenSlate.h:36
Definition: LoadingScreenSlate.h:13