Widget Studio
All Classes Functions Variables
WSContainer.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 "Widgets/Modern/WSModernButton.h"
16#include "WSContainer.generated.h"
17
18DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FWSContainerDelegate, int32, CurrentIndex, FButtonOptions, Option);
19DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FWSContainerHoverDelegate, UWidgetStudioBase*, CallingWidget, bool, bIsHovering);
20
24UCLASS()
25class WIDGETSTUDIORUNTIME_API UWidgetStudioContainer : public UWidgetStudioBase
26{
27 GENERATED_BODY()
28
29protected:
30 virtual void ConstructOption(FButtonOptions Option);
31 virtual void SynchronizeProperties() override;
32
33 UFUNCTION()
34 virtual void IndividualHoverStateChanged(UWidgetStudioBase* CallingWidget, const bool bIsHovering);
35
36 // Properties
37
39 UPROPERTY(EditAnywhere, Category = "Widget Studio", Meta = (MinClamp = "-1"))
40 int32 CurrentIndex = -1;
41
43 UPROPERTY(EditAnywhere, Category = "Widget Studio", Meta = (TitleProperty = "Text"))
44 TArray<FButtonOptions> Options;
45
46public:
47 // Bindings
48
50 UPROPERTY(BlueprintAssignable, Category = "Widget Studio|Event")
51 FWSContainerDelegate OnCurrentIndexChanged;
52
54 UPROPERTY(BlueprintAssignable, Category = "Widget Studio|Event")
55 FWSContainerHoverDelegate OnIndividualHoverStateChanged;
56
57 // Helpers
58
60 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper")
61 int32 GetCurrentIndex() const;
62
64 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper")
65 int32 GetOptionCount() const;
66
68 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper")
69 TArray<FButtonOptions> GetOptions() const;
70
72 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper")
73 FButtonOptions GetOptionAtIndex(int32 Index);
74
76 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper")
77 FButtonOptions GetCurrentOption() const;
78
83 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Helper")
84 int32 GetOptionIndexViaText(FText InText);
85
90 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Helper")
91 void IncrementCurrentIndex(bool bBroadcast = true);
92
98 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Helper")
99 void DecrementCurrentIndex(bool bBroadcast = true);
100
106 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Helper")
107 void ClearCurrentIndex(bool bBroadcast = true);
108
109
110 // Modifiers
111
116 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier")
117 virtual void SetOptions(TArray<FButtonOptions> NewOptions);
118
123 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier")
124 virtual void SetCurrentIndex(int32 Index, bool bBroadcast = true);
125
130 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier")
131 void AddOption(FButtonOptions NewOption);
132
134 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier")
135 virtual void ClearOptions();
136
142 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier")
143 bool SetCurrentIndexViaOptionText(FText InText, bool bBroadcast = true);
144};
145
The base User Widget class for Widget Studio.
Definition: WSBase.h:32
A base class for building a option container such as a tab bar or combo box.
Definition: WSContainer.h:26
Contains the data for a Widget Studio Modern Button.
Definition: WSModernButton.h:73