12#include "CoreMinimal.h"
14#include "Widgets/Utility/WSButtonGroup.h"
15#include "Widgets/WSContainer.h"
16#include "Components/UniformGridPanel.h"
17#include "Widgets/Panel/WSScrollBox.h"
19#include "WSModernTabBar.generated.h"
22enum class ETabBarSelectionStyle : uint8
24 Full UMETA(DisplayName=
"Full"),
25 Slim UMETA(DisplayName=
"Slim"),
26 Hidden UMETA(DisplayName=
"Hidden"),
28 TabBarSelectionStyle_Max UMETA(Hidden),
42 virtual TSharedRef<SWidget> RebuildWidget()
override;
43 virtual int32 NativePaint(
const FPaintArgs& Args,
const FGeometry& AllottedGeometry,
const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId,
const FWidgetStyle& InWidgetStyle,
bool bParentEnabled)
const override;
44 virtual void SynchronizeProperties()
override;
45 virtual void InitializeStyling()
override;
46 virtual void UpdateStyling()
override;
48 virtual void ClearOptions()
override;
49 virtual void ConstructButtonGroup();
52 void UpdateIndexFromButtonGroup(int32 NewIndex);
57 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
58 UInvalidationBox* Retainer =
nullptr;
60 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
61 USizeBox* SizeBox =
nullptr;
63 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
66 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
67 UOverlay* Overlay =
nullptr;
69 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
72 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
73 UScaleBox* BackgroundScaleBox =
nullptr;
75 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
76 UOverlay* BackgroundOverlay =
nullptr;
78 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
79 UImage* BackgroundDropShadow =
nullptr;
81 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
82 UImage* Background =
nullptr;
84 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
85 USizeBox* SelectionOverlaySize =
nullptr;
87 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
88 UImage* SelectionOverlay =
nullptr;
90 UPROPERTY(BlueprintReadOnly, Category =
"Widgets")
91 UUniformGridPanel* Grid =
nullptr;
97 UPROPERTY(EditAnywhere, Category =
"Widget Studio")
98 TEnumAsByte<EHorizontalAlignment> ContentAlignment;
103 UPROPERTY(EditAnywhere, Category = "Widget Studio")
104 TEnumAsByte<EOrientation> Orientation = Orient_Horizontal;
107 UPROPERTY(EditAnywhere, Category = "Widget Studio|Text")
112 ETextJustify::Center,
115 ETextWrappingPolicy::DefaultWrapping);
121 UPROPERTY(EditAnywhere, Category = "Widget Studio|Icon")
122 EWSPlacement IconPlacement;
125 UPROPERTY(EditAnywhere, Category = "Widget Studio|Icon")
140 UPROPERTY(EditAnywhere, Category = "Widget Studio|Scrolling")
141 bool bEnableScrolling = false;
148 UPROPERTY(EditAnywhere, Category = "Widget Studio|Scrolling", Meta = (ClampMin = "0", UIMin = "0", EditCondition="bEnableScrolling", EditConditionHides))
149 float SizeConstraint = 0.f;
152 UPROPERTY(EditAnywhere, Category = "Widget Studio|Scrolling", Meta = (EditCondition="bEnableScrolling", EditConditionHides))
153 ESlateVisibility ScrollBarVisibility = ESlateVisibility::Visible;
158 UPROPERTY(EditAnywhere, Category = "Widget Studio|Style")
159 bool bEnableDropShadow = true;
162 UPROPERTY(EditAnywhere, Category = "Widget Studio|Style")
163 ECornerStyle CornerStyle = ECornerStyle::Rounded;
166 UPROPERTY(EditAnywhere, Category = "Widget Studio|Style")
167 ETabBarSelectionStyle SelectionStyle = ETabBarSelectionStyle::Full;
173 UPROPERTY(EditAnywhere, Category = "Widget Studio|Color")
174 EPalette BackgroundColor = EPalette::TertiaryBackground;
177 UPROPERTY(EditAnywhere, Category = "Widget Studio|Color")
178 EPalette ContentColor = EPalette::PrimaryContent;
181 UPROPERTY(EditAnywhere, Category = "Widget Studio|Color")
182 EPalette SelectionColor = EPalette::PrimaryAccent;
188 UPROPERTY(EditAnywhere, Category = "Widget Studio|State")
189 bool bSelectable = true;
196 UFUNCTION(BlueprintGetter, Category = "Widget Studio")
197 TEnumAsByte<EHorizontalAlignment> GetContentAlignment() const;
200 UFUNCTION(BlueprintGetter, Category = "Widget Studio")
204 UFUNCTION(BlueprintGetter, Category = "Widget Studio")
208 UFUNCTION(BlueprintGetter, Category = "Widget Studio")
209 EWSPlacement GetIconPlacement() const;
212 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
213 TEnumAsByte<EOrientation> GetOrientation() const;
216 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
217 ECornerStyle GetCornerStyle() const;
220 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
221 ETabBarSelectionStyle GetSelectionStyle() const;
224 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
225 EPalette GetBackgroundColor() const;
228 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
229 EPalette GetContentColor() const;
232 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
233 EPalette GetSelectionColor() const;
236 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
237 bool IsSelectable() const;
243 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
244 float IsScrollable() const;
247 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
248 float GetSizeConstraint() const;
251 UFUNCTION(BlueprintGetter, Category="Widget Studio|Helper")
252 ESlateVisibility GetScrollbarVisibility() const;
261 virtual
void SetCurrentIndex(int32 Index,
bool bBroadcast = true) override;
267 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
268 void SetOrientation(TEnumAsByte<EOrientation> NewOrientation);
274 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
275 void SetCornerStyle(ECornerStyle NewStyle);
281 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
282 void SetBackgroundColor(EPalette NewColor);
288 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
289 void SetContentColor(EPalette NewColor);
295 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
296 void SetSelectionColor(EPalette NewColor);
302 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
303 void SetSelectable(
bool NewState);
312 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
313 void SetScrollable(
bool NewState);
321 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
322 void SetSizeConstraint(
float NewSize);
328 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
329 void SetScrollbarVisibility(ESlateVisibility NewVisibility);
335 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
336 void SetContentAlignment(TEnumAsByte<EHorizontalAlignment> NewAlignment);
342 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
349 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
356 UFUNCTION(BlueprintSetter, Category = "Widget Studio|Modifier")
357 void SetIconPlacement(EWSPlacement NewIconPlacement);
Struct with font weight, size, and letter spacing.
Definition: WSTypography.h:23
The settings for the Widget Studio Icon Widget.
Definition: WSIcon.h:27
The settings for the Widget Studio Text.
Definition: WSText.h:23