Create custom button widget
This commit is contained in:
parent
c50d32c3bd
commit
784a373c33
BIN
Content/Widgets/BP_CustomButton.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Widgets/BP_CustomButton.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
16
Source/vampires/DetectGamepad.h
Normal file
16
Source/vampires/DetectGamepad.h
Normal file
@ -0,0 +1,16 @@
|
||||
// Louis Hobbs | 2024-2025
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Kismet/BlueprintFunctionLibrary.h"
|
||||
#include "DetectGamepad.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class VAMPIRES_API UDetectGamepad : public UBlueprintFunctionLibrary
|
||||
{
|
||||
GENERATED_BODY()
|
||||
};
|
52
Source/vampires/Widgets/CustomButton.cpp
Normal file
52
Source/vampires/Widgets/CustomButton.cpp
Normal file
@ -0,0 +1,52 @@
|
||||
// Louis Hobbs | 2024-2025
|
||||
|
||||
|
||||
#include "CustomButton.h"
|
||||
|
||||
#include "Components/Button.h"
|
||||
#include "Components/TextBlock.h"
|
||||
|
||||
void UCustomButton::NativeConstruct()
|
||||
{
|
||||
Super::NativeConstruct();
|
||||
|
||||
ButtonBody->OnClicked.AddUniqueDynamic(this, &UCustomButton::OnButtonClicked);
|
||||
ButtonBody->OnPressed.AddUniqueDynamic(this, &UCustomButton::OnButtonPressed);
|
||||
ButtonBody->OnReleased.AddUniqueDynamic(this, &UCustomButton::OnButtonReleased);
|
||||
ButtonBody->OnHovered.AddUniqueDynamic(this, &UCustomButton::OnButtonHovered);
|
||||
ButtonBody->OnUnhovered.AddUniqueDynamic(this, &UCustomButton::OnButtonHovered);
|
||||
|
||||
TextBlock->SetText(ButtonText);
|
||||
}
|
||||
|
||||
void UCustomButton::SynchronizeProperties()
|
||||
{
|
||||
Super::SynchronizeProperties();
|
||||
|
||||
TextBlock->SetText(ButtonText);
|
||||
}
|
||||
|
||||
TObjectPtr<UTextBlock> UCustomButton::GetTextBlock()
|
||||
{
|
||||
return TextBlock;
|
||||
}
|
||||
|
||||
void UCustomButton::OnButtonClicked()
|
||||
{
|
||||
OnClicked.Broadcast();
|
||||
}
|
||||
|
||||
void UCustomButton::OnButtonPressed()
|
||||
{
|
||||
OnPressed.Broadcast();
|
||||
}
|
||||
|
||||
void UCustomButton::OnButtonReleased()
|
||||
{
|
||||
OnReleased.Broadcast();
|
||||
}
|
||||
|
||||
void UCustomButton::OnButtonHovered()
|
||||
{
|
||||
OnHovered.Broadcast();
|
||||
}
|
71
Source/vampires/Widgets/CustomButton.h
Normal file
71
Source/vampires/Widgets/CustomButton.h
Normal file
@ -0,0 +1,71 @@
|
||||
// Louis Hobbs | 2024-2025
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "CustomButton.generated.h"
|
||||
|
||||
class UTextBlock;
|
||||
class UButton;
|
||||
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnButtonClickedEventCustom);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnButtonPressedEventCustom);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnButtonReleasedEventCustom);
|
||||
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnButtonHoverEventCustom);
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class VAMPIRES_API UCustomButton : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FOnButtonClickedEventCustom OnClicked;
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FOnButtonPressedEventCustom OnPressed;
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FOnButtonReleasedEventCustom OnReleased;
|
||||
|
||||
UPROPERTY(BlueprintAssignable)
|
||||
FOnButtonHoverEventCustom OnHovered;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly)
|
||||
FText ButtonText = FText::FromString("Default");
|
||||
|
||||
private:
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UButton> ButtonBody;
|
||||
|
||||
UPROPERTY(meta = (BindWidget))
|
||||
TObjectPtr<UTextBlock> TextBlock;
|
||||
|
||||
protected:
|
||||
|
||||
virtual void NativeConstruct() override;
|
||||
|
||||
virtual void SynchronizeProperties() override;
|
||||
|
||||
public:
|
||||
|
||||
TObjectPtr<UTextBlock> GetTextBlock();
|
||||
|
||||
private:
|
||||
UFUNCTION()
|
||||
void OnButtonClicked();
|
||||
|
||||
UFUNCTION()
|
||||
void OnButtonPressed();
|
||||
|
||||
UFUNCTION()
|
||||
void OnButtonReleased();
|
||||
|
||||
UFUNCTION()
|
||||
void OnButtonHovered();
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user