12#include "CoreMinimal.h"
13#include "Widgets/WSBase.h"
14#include "Components/Image.h"
15#include "Components/InvalidationBox.h"
16#include "Components/Overlay.h"
17#include "Components/ScaleBox.h"
18#include "Components/SizeBox.h"
20#include "WSModernProgressBar.generated.h"
22DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FWSProgressBarDelegate,
float, NewValue);
34 virtual TSharedRef<SWidget> RebuildWidget()
override;
35 virtual int32 NativePaint(
const FPaintArgs& Args,
const FGeometry& AllottedGeometry,
const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId,
const FWidgetStyle& InWidgetStyle,
bool bParentEnabled)
const override;
36 virtual void SynchronizeProperties()
override;
37 virtual void InitializeStyling()
override;
38 virtual void UpdateStyling()
override;
43 bool bForwardProgress =
true;
47 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
48 UInvalidationBox* Retainer =
nullptr;
50 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
51 USizeBox* SizeBox =
nullptr;
53 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
54 UOverlay* Overlay =
nullptr;
56 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
57 UScaleBox* TrackScaleBox =
nullptr;
59 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
60 UOverlay* TrackOverlay =
nullptr;
62 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
63 UImage* Track =
nullptr;
65 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
66 UImage* TrackDropShadow =
nullptr;
68 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
69 USizeBox* FillTrackSizeBox =
nullptr;
71 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
72 UImage* FillTrack =
nullptr;
74 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
75 USizeBox* IndicatorSizeBox =
nullptr;
77 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
78 UImage* Indicator =
nullptr;
84 UPROPERTY(BlueprintAssignable, Category =
"Widget Studio|Event")
85 FWSProgressBarDelegate OnProgressChanged;
90 UPROPERTY(EditAnywhere, Category=
"Widget Studio", Meta = (ClampMin =
"0", ClampMax =
"100", Units=
"Percent"))
94 UPROPERTY(EditAnywhere, Category=
"Widget Studio")
95 bool bDisplayIndicator =
true;
98 UPROPERTY(EditAnywhere, Category=
"Widget Studio|Color")
99 EPalette TrackColor = EPalette::TertiaryBackground;
102 UPROPERTY(EditAnywhere, Category=
"Widget Studio|Color")
103 EPalette FillColor = EPalette::PrimaryAccent;
110 UFUNCTION(BlueprintPure, Category=
"Widget Studio|Helper")
111 float GetProgress()
const;
114 UFUNCTION(BlueprintPure, Category=
"Widget Studio|Helper")
115 bool IsIndicatorVisible()
const;
118 UFUNCTION(BlueprintPure, Category=
"Widget Studio|Helper")
119 EPalette GetTrackColor()
const;
122 UFUNCTION(BlueprintPure, Category=
"Widget Studio|Helper")
123 EPalette GetFillColor()
const;
131 UFUNCTION(BlueprintCallable, Category=
"Widget Studio|Modifier")
132 void SetProgress(
float NewValue);
138 UFUNCTION(BlueprintCallable, Category=
"Widget Studio|Modifier")
139 void SetIndicatorVisibility(
bool bNewState);
145 UFUNCTION(BlueprintCallable, Category=
"Widget Studio|Modifier")
146 void SetTrackColor(EPalette NewColor);
152 UFUNCTION(BlueprintCallable, Category=
"Widget Studio|Modifier")
153 void SetFillColor(EPalette NewColor);