Files
2026-07-28 14:10:17 +02:00

58 lines
1.5 KiB
C++

// 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<UButton> ResumeButton;
/** Retour au menu principal, apres confirmation. */
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> 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<UButton> SettingsButton;
private:
UFUNCTION()
void HandleResumeClicked();
UFUNCTION()
void HandleSettingsClicked();
UFUNCTION()
void HandleQuitToMenuClicked();
};