12#include "CoreMinimal.h"
14#include "Widgets/WSBase.h"
15#include "Widgets/WSButtonBase.h"
16#include "Widgets/Modern/WSModernCheckBox.h"
17#include "WSButtonGroup.generated.h"
19DECLARE_DYNAMIC_MULTICAST_DELEGATE(FWSButtonGroupChangedDelegate);
20DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FWSButtonGroupDelegate, int32, Index);
30 virtual void NativePreConstruct()
override;
31 virtual void NativeConstruct()
override;
32 virtual void SynchronizeProperties()
override;;
40 void UpdateCurrentIndex();
43 void UpdateButtonCheckedStates();
50 UPROPERTY(EditAnywhere, Category =
"Widget Studio")
51 EClusivity SelectionMethod = EClusivity::Exclusive;
54 UPROPERTY(EditAnywhere, Category =
"Widget Studio")
55 int32 CurrentIndex = -1;
58 UPROPERTY(EditAnywhere, Category =
"Widget Studio")
59 TArray<UWidgetStudioButtonBase*> Buttons;
63 TArray<UWidgetStudioButtonBase*> ManagedButtons = {};
72 UPROPERTY(BlueprintAssignable, Category =
"Widget Studio|Event")
73 FWSButtonGroupDelegate OnCurrentIndexChanged;
75 UPROPERTY(BlueprintAssignable, Category =
"Widget Studio|Event")
76 FWSButtonGroupChangedDelegate OnButtonsChanged;
82 UFUNCTION(BlueprintPure, Category =
"Widget Studio|Helper")
83 int32 GetCurrentIndex()
const;
86 UFUNCTION(BlueprintPure, Category =
"Widget Studio|Helper")
87 TArray<UWidgetStudioButtonBase*> GetButtons()
const;
93 UFUNCTION(BlueprintPure, Category =
"Widget Studio|Helper")
97 UFUNCTION(BlueprintPure, Category =
"Widget Studio|Helper")
101 UFUNCTION(BlueprintPure, Category =
"Widget Studio|Helper")
102 int32 GetButtonCount()
const;
105 UFUNCTION(BlueprintPure, Category =
"Widget Studio|Helper")
106 EClusivity GetSelectionMethod()
const;
115 UFUNCTION(BlueprintCallable, Category =
"Widget Studio|Modifier")
122 UFUNCTION(BlueprintCallable, Category =
"Widget Studio|Modifier")
129 UFUNCTION(BlueprintCallable, Category =
"Widget Studio|Modifier")
130 void RemoveButtonAtIndex(int32 Index);
133 UFUNCTION(BlueprintCallable, Category =
"Widget Studio|Modifier")
134 void RemoveAllButtons();
141 UFUNCTION(BlueprintCallable, Category =
"Widget Studio|Modifier")
142 void SetCurrentIndex(int32 Index,
bool bBroadcast =
true);
148 UFUNCTION(BlueprintCallable, Category =
"Widget Studio|Modifier")
149 void SetSelectionMethod(EClusivity NewMethod);