Widget Studio
WSDivider.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
14#include "Widgets/WSBase.h"
15#include "Components/Overlay.h"
16#include "Components/ScaleBox.h"
17#include "WSDivider.generated.h"
18
22UCLASS()
23class WIDGETSTUDIORUNTIME_API UWidgetStudioDivider : public UWidgetStudioBase
24{
25 GENERATED_BODY()
26
27protected:
28
29 virtual TSharedRef<SWidget> RebuildWidget() override;
30 virtual int32 NativePaint(const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled) const override;
31 virtual void SynchronizeProperties() override;
32 virtual void InitializeStyling() override;
33 virtual void UpdateStyling() override;
34
35 /* Widget Components */
36
37 UPROPERTY(BlueprintReadOnly, Category = "Widgets")
38 UOverlay* SpaceAllocation = nullptr;
39
40 UPROPERTY(BlueprintReadOnly, Category = "Widgets")
41 USizeBox* SizeBox = nullptr;
42
43 UPROPERTY(BlueprintReadOnly, Category = "Widgets")
44 UScaleBox* ScaleBox = nullptr;
45
46 UPROPERTY(BlueprintReadOnly, Category = "Widgets")
47 UImage* ImageItem = nullptr;
48
49private:
50 /* Properties */
51
53 UPROPERTY(EditAnywhere, Category="Widget Studio")
54 TEnumAsByte<EOrientation> Orientation = Orient_Vertical;
55
57 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (MinClamp = "1", UIMin = "1"))
58 float Thickness = 3;
59
61 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (MinClamp = "1", UIMin = "1"))
62 float Length = 64;
63
65 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (MinClamp = "0", MaxClamp = "1", UIMin = "0", UIMax = "1"))
66 float Opacity = 0.7f;
67
69 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (MinClamp = "0", UIMin = "0"))
70 float LeadingSpace = 10;
71
73 UPROPERTY(EditAnywhere, Category="Widget Studio", Meta = (MinClamp = "0", UIMin = "0"))
74 float TrailingSpace = 10;
75
76 // Color
77
79 UPROPERTY(EditAnywhere, Category="Widget Studio|Color")
80 EPalette Color = EPalette::TertiaryContent;
81
82public:
83 /* Helpers */
84
86 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
87 TEnumAsByte<EOrientation> GetOrientation() const;
88
90 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
91 float GetThickness() const;
92
94 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
95 float GetLength() const;
96
98 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
99 float GetOpacity() const;
100
102 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
103 float GetLeadingSpace() const;
104
106 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper")
107 float GetTrailingSpace() const;
108
110 UFUNCTION(BlueprintPure, Category="Widget Studio|Helper|Color")
111 EPalette GetColor() const;
112
113
114 /* Modifiers */
115
120 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
121 void SetOrientation(TEnumAsByte<EOrientation> NewOrientation);
122
127 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
128 void SetThickness(float NewValue);
129
134 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
135 void SetLength(float NewValue);
136
141 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
142 void SetOpacity(float NewValue);
143
148 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
149 void SetLeadingSpace(float NewValue);
150
155 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier")
156 void SetTrailingSpace(float NewValue);
157
162 UFUNCTION(BlueprintCallable, Category="Widget Studio|Modifier|Color")
163 void SetColor(EPalette NewColor);
164};
The base User Widget class for Widget Studio.
Definition: WSBase.h:32
A visual divider used to divide content.
Definition: WSDivider.h:24