UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SThrobber.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
10#include "Widgets/SLeafWidget.h"
11#include "Styling/CoreStyle.h"
12
13class FPaintArgs;
15class SHorizontalBox;
16
17
18template <>
20{
21 static constexpr bool SupportsInvalidation() { return true; }
22};
23
28 : public SCompoundWidget
29{
30 static const int32 DefaultNumPieces = 3;
31
32public:
33
35 {
36 Vertical = 0x1 << 0,
37 Horizontal = 0x1 << 1,
38 Opacity = 0x1 << 2,
41 None = 0x0
42 };
43
45 : _PieceImage( FCoreStyle::Get().GetBrush( "Throbber.Chunk" ) )
46 , _NumPieces( DefaultNumPieces )
48 {}
49
51 SLATE_ARGUMENT( const FSlateBrush*, PieceImage )
53 SLATE_ARGUMENT( int32, NumPieces )
55 SLATE_ARGUMENT( EAnimation, Animate )
57
58 SLATE_API void Construct(const FArguments& InArgs);
59
62
68
71
74
75 //~ Begin SWidget interface
77 //~ End SWidget interface
78
80
81 FVector2D GetPieceScale(int32 PieceIndex) const;
82 FLinearColor GetPieceColor(int32 PieceIndex) const;
83
85 void ConstructPieces();
86
88 const FSlateBrush* GetPieceBrush() const;
89
91
92 FCurveSequence AnimCurves;
93 TArray<FCurveHandle, TInlineAllocator<DefaultNumPieces> > ThrobberCurve;
94
97
99 const FSlateBrush* PieceImage;
100
102 int32 NumPieces;
103
105 EAnimation Animate;
106};
107
108
109template <>
111{
112 static constexpr bool SupportsInvalidation() { return true; }
113};
114
119 : public SLeafWidget
120{
122
123public:
124 static SLATE_API const float MinimumPeriodValue;
125
127 : _PieceImage( FCoreStyle::Get().GetBrush( "Throbber.CircleChunk" ) )
128 , _NumPieces( 6 )
129 , _Period( 0.75f )
130 , _Radius( 16.f )
131 {}
132
134 SLATE_ARGUMENT( const FSlateBrush*, PieceImage )
136 SLATE_ARGUMENT( int32, NumPieces )
138 SLATE_ARGUMENT( float, Period )
140 SLATE_ARGUMENT( float, Radius )
142 SLATE_ATTRIBUTE(FSlateColor, ColorAndOpacity)
143
145
148
150 SLATE_API void Construct(const FArguments& InArgs);
151
153 SLATE_API void SetPieceImage(const FSlateBrush* InPieceImage);
154
159 SLATE_API void InvalidatePieceImage();
160
162 SLATE_API void SetNumPieces(int32 InNumPieces);
163
165 SLATE_API void SetPeriod(float InPeriod);
166
168 SLATE_API void SetRadius(float InRadius);
169
170 //~ Begin SWidget interface
171 SLATE_API virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;
172 SLATE_API virtual FVector2D ComputeDesiredSize(float) const override;
173 SLATE_API virtual bool ComputeVolatility() const override;
174 //~ End SWidget interface
175
176private:
177
179 void ConstructSequence();
180
181private:
182
184 FCurveSequence Sequence;
185 FCurveHandle Curve;
186
188 const FSlateBrush* PieceImage;
189
191 int32 NumPieces;
192
194 float Period;
195
197 float Radius;
198
200 TSlateAttribute<FSlateColor> ColorAndOpacity;
201 bool bColorAndOpacitySet;
202};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
void Construct(const FArguments &InArgs)
#define SLATE_DECLARE_WIDGET_API(WidgetType, ParentType, ModuleApiDefine)
Definition SlateControlledConstruction.h:22
Definition CoreStyle.h:15
Definition PaintArgs.h:23
Definition SlateRect.h:26
Definition DrawElements.h:220
Definition WidgetStyle.h:15
Definition SThrobber.h:120
SLATE_BEGIN_ARGS(SCircularThrobber)
Definition SThrobber.h:126
static SLATE_API const float MinimumPeriodValue
Definition SThrobber.h:124
Definition SCompoundWidget.h:22
Definition SBoxPanel.h:171
Definition SLeafWidget.h:29
Definition SThrobber.h:29
SLATE_API void SetNumPieces(int InNumPieces)
Definition SThrobber.cpp:77
SLATE_API void Construct(const FArguments &InArgs)
Definition SThrobber.cpp:10
EAnimation
Definition SThrobber.h:35
@ VerticalAndOpacity
Definition SThrobber.h:39
@ Opacity
Definition SThrobber.h:38
@ None
Definition SThrobber.h:41
@ All
Definition SThrobber.h:40
@ Vertical
Definition SThrobber.h:36
@ Horizontal
Definition SThrobber.h:37
SLATE_API void SetPieceImage(const FSlateBrush *InPieceImage)
Definition SThrobber.cpp:63
SLATE_API void SetAnimate(EAnimation InAnimate)
Definition SThrobber.cpp:87
SLATE_API void InvalidatePieceImage()
Definition SThrobber.cpp:72
virtual SLATE_API bool ComputeVolatility() const override
Definition SThrobber.cpp:53
SLATE_BEGIN_ARGS(SThrobber)
Definition SThrobber.h:44
Definition Array.h:670
Definition SharedPointer.h:692
Definition ContainerAllocationPolicies.h:894
Definition CurveHandle.h:40
Definition CurveSequence.h:26
Definition Geometry.h:40
Definition Color.h:48
Definition SlateBrush.h:239
Definition SlateColor.h:42
Definition SWidget.h:189
static constexpr bool SupportsInvalidation()
Definition SThrobber.h:112
static constexpr bool SupportsInvalidation()
Definition SThrobber.h:21
Definition SWidget.h:69