Files
Unreal_EmberWild/Source/Survival_projet/Public/SettingsAudioWidget.h
T
2026-08-06 13:27:21 +02:00

66 lines
1.8 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "SettingsTabWidget.h"
#include "SettingsAudioWidget.generated.h"
class USettingRowWidget;
/**
* L'onglet "Audio" : quatre volumes et le son en arriere-plan.
*
* Meme forme que USettingsGameplayWidget -- l'onglet ne stocke rien, chaque ligne
* ecrit dans USurvivalUserSettings puis demande l'application immediate. La
* difference tient au verbe appele : ApplyAudioSettings et non
* ApplySurvivalSettings, parce que les volumes n'interessent pas le pawn et que
* rediffuser aux widgets a chaque cran de curseur ne servirait a rien.
*
* Classe Abstract : on cree un WBP_SettingsAudio qui en herite, avec un
* WBP_SettingRow par ligne, nomme exactement comme le BindWidget correspondant.
*/
UCLASS(Abstract)
class SURVIVAL_PROJET_API USettingsAudioWidget : public USettingsTabWidget
{
GENERATED_BODY()
public:
virtual void NativeConstruct() override;
virtual void RefreshFromSettings() override;
virtual void ResetToDefaults() override;
protected:
UPROPERTY(meta = (BindWidget))
TObjectPtr<USettingRowWidget> MasterVolumeRow;
UPROPERTY(meta = (BindWidget))
TObjectPtr<USettingRowWidget> MusicVolumeRow;
UPROPERTY(meta = (BindWidget))
TObjectPtr<USettingRowWidget> EffectsVolumeRow;
UPROPERTY(meta = (BindWidget))
TObjectPtr<USettingRowWidget> UiVolumeRow;
UPROPERTY(meta = (BindWidget))
TObjectPtr<USettingRowWidget> BackgroundSoundRow;
private:
UFUNCTION()
void HandleMasterVolumeChanged(int32 NewIndex);
UFUNCTION()
void HandleMusicVolumeChanged(int32 NewIndex);
UFUNCTION()
void HandleEffectsVolumeChanged(int32 NewIndex);
UFUNCTION()
void HandleUiVolumeChanged(int32 NewIndex);
UFUNCTION()
void HandleBackgroundSoundChanged(int32 NewIndex);
};