12#include "CoreMinimal.h"
13#include "Widgets/WSBase.h"
14#include "Blueprint/UserWidget.h"
15#include "WSButtonBase.generated.h"
17DECLARE_DELEGATE(FWSButtonLambda);
19DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FWSButtonToggledDelegate,
UWidgetStudioButtonBase*, CallingButton,
bool, NewCheckedState);
31 bool bIsPressed =
false;
34 virtual void NativeOnInitialized()
override;
35 virtual FReply NativeOnMouseButtonDown(
const FGeometry& InGeometry,
const FPointerEvent& InMouseEvent)
override;
36 virtual FReply NativeOnMouseButtonUp(
const FGeometry& InGeometry,
const FPointerEvent& InMouseEvent)
override;
37 virtual void NativeOnMouseCaptureLost(
const FCaptureLostEvent& CaptureLostEvent)
override;
38 virtual void NativeOnMouseLeave(
const FPointerEvent& InMouseEvent)
override;
40 FTimerHandle DoublePressTimer;
47 UPROPERTY(EditAnywhere, Category =
"Widget Studio|State")
48 bool bIsCheckable = false;
54 UPROPERTY(EditAnywhere, Category = "Widget Studio|State", Meta = (EditCondition="bIsCheckable == true"))
55 bool bIsChecked = false;
61 UPROPERTY(EditAnywhere, Category = "Widget Studio|State", Meta = (EditCondition="bIsCheckable == true"))
62 bool bIsCheckedStateLocked = false;
71 FWSButtonLambda OnPressedLambda;
74 UPROPERTY(BlueprintAssignable, Category = "Widget Studio|Event")
75 FWSButtonDelegate OnPressed;
78 UPROPERTY(BlueprintAssignable, Category = "Widget Studio|Event")
79 FWSButtonDelegate OnReleased;
82 UPROPERTY(BlueprintAssignable, Category = "Widget Studio|Event")
83 FWSButtonDelegate OnDoublePressed;
88 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Event|Advanced")
91 OnPressedLambda.ExecuteIfBound();
98 UPROPERTY(BlueprintAssignable, Category =
"Widget Studio|Event")
99 FWSButtonToggledDelegate OnToggled;
102 bool bForceCheckable = false;
109 bool bIsInteractable = true;
118 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper|State")
119 bool IsCheckable() const;
125 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper|State")
126 bool IsChecked() const;
129 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper|State")
130 bool IsCheckedStateLocked() const;
133 UFUNCTION(BlueprintPure, Category = "Widget Studio|Helper|State")
134 bool IsPressed() const;
142 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier|State")
143 virtual
void SetCheckable(
bool bNewCheckableState);
151 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier|State")
152 virtual
void SetChecked(
bool bNewCheckedState,
bool bBroadcast = true);
158 UFUNCTION(BlueprintCallable, Category = "Widget Studio|Modifier|State")
159 virtual
void SetCheckedLockedState(
bool bNewCheckedState);