From 810a833cb50149c45b645b75fc9855c29d50b27e Mon Sep 17 00:00:00 2001 From: baz Date: Tue, 26 Aug 2025 01:15:27 +0100 Subject: [PATCH] Convert Pause Menu to use Custom Buttons --- Content/Widgets/Pause/BP_PauseWidget.uasset | 4 +-- Source/vampires/Widgets/CustomButton.cpp | 6 +++- Source/vampires/Widgets/CustomButton.h | 3 ++ Source/vampires/Widgets/MainMenuWidget.cpp | 5 ++-- Source/vampires/Widgets/MainMenuWidget.h | 3 +- Source/vampires/Widgets/PauseWidget.cpp | 31 +-------------------- Source/vampires/Widgets/PauseWidget.h | 30 ++++---------------- 7 files changed, 20 insertions(+), 62 deletions(-) diff --git a/Content/Widgets/Pause/BP_PauseWidget.uasset b/Content/Widgets/Pause/BP_PauseWidget.uasset index de84645..82158af 100644 --- a/Content/Widgets/Pause/BP_PauseWidget.uasset +++ b/Content/Widgets/Pause/BP_PauseWidget.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7733661d266dda9dd1b58014f1b979ff6db1fde793dec6361cb67482ce8717d6 -size 37046 +oid sha256:27e60f2df8b9692f85813f69bb12d4ab3832d2416b7f4696dbb518372bdbd4b9 +size 31562 diff --git a/Source/vampires/Widgets/CustomButton.cpp b/Source/vampires/Widgets/CustomButton.cpp index 4bc563a..488d887 100644 --- a/Source/vampires/Widgets/CustomButton.cpp +++ b/Source/vampires/Widgets/CustomButton.cpp @@ -19,7 +19,7 @@ void UCustomButton::NativeConstruct() ButtonBody->OnHovered.AddUniqueDynamic(this, &UCustomButton::OnButtonHovered); ButtonBody->OnUnhovered.AddUniqueDynamic(this, &UCustomButton::OnButtonUnhovered); - TextBlock->SetText(ButtonText); + SynchronizeProperties(); } void UCustomButton::SynchronizeProperties() @@ -27,6 +27,10 @@ void UCustomButton::SynchronizeProperties() Super::SynchronizeProperties(); TextBlock->SetText(ButtonText); + + FSlateFontInfo Font = TextBlock->GetFont(); + Font.Size = TextSize; + TextBlock->SetFont(Font); } TObjectPtr UCustomButton::GetTextBlock() diff --git a/Source/vampires/Widgets/CustomButton.h b/Source/vampires/Widgets/CustomButton.h index a18bbfa..d3576a8 100644 --- a/Source/vampires/Widgets/CustomButton.h +++ b/Source/vampires/Widgets/CustomButton.h @@ -41,6 +41,9 @@ public: UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Button Settings | Text") FText ButtonText = FText::FromString("Default"); + + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Button Settings | Text") + int TextSize = 30.0f; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Button Settings | Color") FLinearColor ButtonHoveredTextColor = {0, 1, 0, 1}; diff --git a/Source/vampires/Widgets/MainMenuWidget.cpp b/Source/vampires/Widgets/MainMenuWidget.cpp index 8004850..7620790 100644 --- a/Source/vampires/Widgets/MainMenuWidget.cpp +++ b/Source/vampires/Widgets/MainMenuWidget.cpp @@ -4,7 +4,6 @@ #include "MainMenuWidget.h" #include "CustomButton.h" -#include "SelectWeaponWidget.h" #include "Blueprint/WidgetBlueprintLibrary.h" #include "Components/Button.h" #include "Kismet/GameplayStatics.h" @@ -40,7 +39,7 @@ void UMainMenuWidget::NativeConstruct() FReply UMainMenuWidget::NativeOnMouseButtonUp(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) { NewGameButton->SetKeyboardFocus(); - + return Super::NativeOnMouseButtonUp(InGeometry, InMouseEvent); } @@ -82,4 +81,4 @@ void UMainMenuWidget::QuitButtonOnClicked() // This is not a bit deal for the moment as we are only building for windows // For some reason the generic version does not work the same as FWindowsPlatformMisc FWindowsPlatformMisc::RequestExit(false); -} \ No newline at end of file +} diff --git a/Source/vampires/Widgets/MainMenuWidget.h b/Source/vampires/Widgets/MainMenuWidget.h index eff791d..a1d750e 100644 --- a/Source/vampires/Widgets/MainMenuWidget.h +++ b/Source/vampires/Widgets/MainMenuWidget.h @@ -7,7 +7,6 @@ #include "MainMenuWidget.generated.h" class UCustomButton; -class UButton; /** * */ @@ -15,7 +14,7 @@ UCLASS() class VAMPIRES_API UMainMenuWidget : public UUserWidget { GENERATED_BODY() - + UPROPERTY(meta = (BindWidget)) TObjectPtr NewGameButton; diff --git a/Source/vampires/Widgets/PauseWidget.cpp b/Source/vampires/Widgets/PauseWidget.cpp index 80a176b..f6ea5c6 100644 --- a/Source/vampires/Widgets/PauseWidget.cpp +++ b/Source/vampires/Widgets/PauseWidget.cpp @@ -3,6 +3,7 @@ #include "PauseWidget.h" +#include "CustomButton.h" #include "Blueprint/WidgetBlueprintLibrary.h" #include "Components/Button.h" #include "Kismet/GameplayStatics.h" @@ -15,15 +16,11 @@ void UPauseWidget::NativeConstruct() if (ResumeButton) { ResumeButton->OnClicked.AddUniqueDynamic(this, &UPauseWidget::ResumeButtonOnClicked); - ResumeButton->OnHovered.AddUniqueDynamic(this, &UPauseWidget::ResumeButtonOnHovered); - ResumeButton->OnUnhovered.AddUniqueDynamic(this, &UPauseWidget::ResumeButtonOnUnhovered); } if (ReturnToMainMenuButton) { ReturnToMainMenuButton->OnClicked.AddUniqueDynamic(this, &UPauseWidget::ReturnToMainMenuButtonOnClicked); - ReturnToMainMenuButton->OnHovered.AddUniqueDynamic(this, &UPauseWidget::ReturnToMainMenuButtonOnHovered); - ReturnToMainMenuButton->OnUnhovered.AddUniqueDynamic(this, &UPauseWidget::ReturnToMainMenuButtonOnUnhovered); } SetIsFocusable(true); @@ -43,19 +40,6 @@ void UPauseWidget::ResumeButtonOnClicked() SetIsFocusable(false); } - -void UPauseWidget::ResumeButtonOnHovered() -{ - SetTextBlockHovered(ResumeTextBlock); - PlayHoveredSound(); -} - -void UPauseWidget::ResumeButtonOnUnhovered() -{ - SetTextBlockUnhovered(ResumeTextBlock); - PlayUnhoveredSound(); -} - void UPauseWidget::ReturnToMainMenuButtonOnClicked() { if (UVampireGameInstance* GameInstance = Cast(GetGameInstance())) @@ -72,16 +56,3 @@ void UPauseWidget::ReturnToMainMenuButtonOnClicked() } } } - -void UPauseWidget::ReturnToMainMenuButtonOnHovered() -{ - SetTextBlockHovered(ReturnToMainMenuTextBlock); - PlayHoveredSound(); -} - -void UPauseWidget::ReturnToMainMenuButtonOnUnhovered() -{ - SetTextBlockUnhovered(ReturnToMainMenuTextBlock); - PlayUnhoveredSound(); -} - diff --git a/Source/vampires/Widgets/PauseWidget.h b/Source/vampires/Widgets/PauseWidget.h index a6bb773..2ade8d1 100644 --- a/Source/vampires/Widgets/PauseWidget.h +++ b/Source/vampires/Widgets/PauseWidget.h @@ -7,45 +7,27 @@ #include "Blueprint/UserWidget.h" #include "PauseWidget.generated.h" -class UButton; +class UCustomButton; + /** * */ UCLASS() -class VAMPIRES_API UPauseWidget : public UVampireInteractiveWidget +class VAMPIRES_API UPauseWidget : public UUserWidget { GENERATED_BODY() - - UPROPERTY(meta=(BindWidget)) - TObjectPtr ResumeButton; - - UPROPERTY(meta=(BindWidget)) - TObjectPtr ResumeTextBlock; UPROPERTY(meta=(BindWidget)) - TObjectPtr ReturnToMainMenuButton; + TObjectPtr ResumeButton; UPROPERTY(meta=(BindWidget)) - TObjectPtr ReturnToMainMenuTextBlock; + TObjectPtr ReturnToMainMenuButton; virtual void NativeConstruct() override; - - UFUNCTION() - void ResumeButtonOnClicked(); - - UFUNCTION() - void ResumeButtonOnHovered(); UFUNCTION() - void ResumeButtonOnUnhovered(); + void ResumeButtonOnClicked(); UFUNCTION() void ReturnToMainMenuButtonOnClicked(); - - UFUNCTION() - void ReturnToMainMenuButtonOnHovered(); - - UFUNCTION() - void ReturnToMainMenuButtonOnUnhovered(); - };