// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Blueprint/UserWidget.h" #include "PauseMenuWidget.generated.h" class UButton; /** * Le menu de pause : trois boutons par-dessus la partie figee. * * Comme UMainMenuWidget, il ne decide de rien -- il appelle * AFpsPlayerController. Mettre SetPause ou OpenLevel ici serait doublement * faux : un widget n'existe que sur la machine du joueur local, et la mise en * pause appartient a l'autorite. * * Classe Abstract : on cree un WBP_PauseMenu qui en herite. */ UCLASS(Abstract) class SURVIVAL_PROJET_API UPauseMenuWidget : public UUserWidget { GENERATED_BODY() public: virtual void NativeConstruct() override; virtual void NativeDestruct() override; protected: /** Reprend la partie. Nomme exactement "ResumeButton" dans le WBP. */ UPROPERTY(meta = (BindWidget)) TObjectPtr ResumeButton; /** Retour au menu principal, apres confirmation. */ UPROPERTY(meta = (BindWidget)) TObjectPtr QuitToMenuButton; /** * BindWidgetOptional : un WBP_PauseMenu sans bouton Reglages reste valide. * * Pas de bouton "Quitter le jeu" ici, volontairement : la sortie se fait * depuis le menu principal, ou l'on repasse de toute facon. */ UPROPERTY(meta = (BindWidgetOptional)) TObjectPtr SettingsButton; private: UFUNCTION() void HandleResumeClicked(); UFUNCTION() void HandleSettingsClicked(); UFUNCTION() void HandleQuitToMenuClicked(); };