48 lines
1.5 KiB
C++
48 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 "SettingsTabWidget.generated.h"
|
|
|
|
class USettingsMenuWidget;
|
|
|
|
/**
|
|
* Base commune a tous les onglets de reglages.
|
|
*
|
|
* Deux verbes, rien de plus : l'ecran parent rafraichit ou reinitialise l'onglet
|
|
* visible sans jamais savoir ce qu'il contient. Ajouter un onglet ne demande
|
|
* donc aucune ligne dans USettingsMenuWidget.
|
|
*/
|
|
UCLASS(Abstract)
|
|
class SURVIVAL_PROJET_API USettingsTabWidget : public UUserWidget
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/** Relit les reglages et repositionne les lignes, sans rien diffuser. */
|
|
virtual void RefreshFromSettings() {}
|
|
|
|
/** Remet a l'usine les seuls reglages de cet onglet, puis se rafraichit. */
|
|
virtual void ResetToDefaults() {}
|
|
|
|
/**
|
|
* L'ecran se presente a ses onglets a la construction.
|
|
*
|
|
* Pointeur explicite plutot qu'un GetTypedOuter au moment de s'en servir :
|
|
* un onglet doit pouvoir demander une confirmation, et faire dependre ca de
|
|
* la forme de l'arbre de widgets casserait le jour ou on l'imbrique
|
|
* autrement.
|
|
*
|
|
* Defini dans le .cpp et non inline : TWeakObjectPtr exige un type complet
|
|
* pour s'assigner, et inclure l'en-tete de l'ecran ici ferait dependre tous
|
|
* les onglets de lui.
|
|
*/
|
|
void SetOwningMenu(USettingsMenuWidget* InMenu);
|
|
|
|
protected:
|
|
UPROPERTY(Transient, BlueprintReadOnly, Category = "Reglages")
|
|
TWeakObjectPtr<USettingsMenuWidget> OwningMenu;
|
|
};
|