Widget Studio
WSSliderBase.h
1/*
2* Copyright (c) 2021 THEIA INTERACTIVE. All rights reserved.
3*
4* Website: https://widgetstudio.design
5* Documentation: https://docs.widgetstudio.design
6* Support: marketplace@theia.io
7* Marketplace FAQ: https://marketplacehelp.epicgames.com
8*/
9
10#pragma once
11
12#include "CoreMinimal.h"
13#include "Widgets/WSBase.h"
14#include "WSSliderBase.generated.h"
15
16DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FWSSliderDelegate, float, NewValue);
17
21UCLASS()
22class WIDGETSTUDIORUNTIME_API UWidgetStudioSliderBase : public UWidgetStudioBase
23{
24 GENERATED_BODY()
25
26protected:
27
28 virtual void SynchronizeProperties() override;
29
35 UFUNCTION()
36 float FilterValue(float InValue) const;
37
38 /* Bindings */
39
40 UPROPERTY(BlueprintAssignable, Category = "Widget Studio|Event")
41 FWSSliderDelegate OnValueChanged;
42
43
44 /* Properties */
45
46 UPROPERTY()
47 bool bLockIncrement = false;
48
49 UPROPERTY()
50 bool bLockDecrement = false;
51
53 UPROPERTY(EditAnywhere, Category="Widget Studio")
54 EValueClamp ClampMethod = EValueClamp::Clamped;
55
60 UPROPERTY(EditAnywhere, Category="Widget Studio")
61 EEnumeration Enumeration = EEnumeration::Int;
62
64 UPROPERTY(EditAnywhere, Category="Widget Studio")
65 float Value = 50.f;
66
68 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (EditCondition = "ClampMethod == EValueClamp::Clamped", EditConditionHides))
69 float Min = 0.f;
70
72 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (EditCondition = "ClampMethod == EValueClamp::Clamped", EditConditionHides))
73 float Max = 100.f;
74
76 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (ClampMin = "0", UIMin = "0"))
77 float StepSize = 1.f;
78
79public:
80
81 /* Helpers */
82
84 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
85 EValueClamp GetClampMethod() const;
86
88 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
89 float GetValue() const;
90
92 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
93 FString GetValueAsString() const;
94
96 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
97 FText GetValueAsText() const;
98
100 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
101 float GetMinValue() const;
102
104 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
105 float GetMaxValue() const;
106
108 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
109 float GetStepSize() const;
110
112 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
113 EEnumeration GetEnumerationType() const;
114
116 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
117 bool IsIncrementLocked() const;
118
120 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
121 bool IsDecrementLocked() const;
122
123
124 /* Modifiers */
125
130 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
131 void SetClampMethod(const EValueClamp NewMethod);
132
138 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
139 virtual void SetValue(float NewValue, bool bBroadcast = true);
140
145 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
146 virtual void SetMinValue(float NewValue);
147
152 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
153 virtual void SetMaxValue(float NewValue);
154
159 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
160 virtual void SetStepSize(float NewValue);
161
166 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
167 virtual void SetEnumerationType(EEnumeration NewType);
168
174 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
175 virtual void Increment(float Multiplier = 1.f, bool bBroadcast = true);
176
182 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
183 virtual void Decrement(float Multiplier = 1.f, bool bBroadcast = true);
184
189 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
190 virtual void SetLockIncrement(bool NewState);
191
196 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
197 virtual void SetLockDecrement(bool NewState);
198};
The base User Widget class for Widget Studio.
Definition: WSBase.h:32
Base class for building sliders.
Definition: WSSliderBase.h:23