ui updates

This commit is contained in:
2026-06-12 23:29:35 +03:00
parent 9b3d7c4491
commit 5ff72d09c3
26 changed files with 159 additions and 37 deletions
@@ -2,12 +2,11 @@
#include "MainMenuWidget.h"
#include "ConfirmModalWidget.h"
#include "Components/Button.h"
#include "Kismet/GameplayStatics.h"
#include "Kismet/KismetSystemLibrary.h"
#include "NakedDesire/SaveGame/SaveSubsystem.h"
#include "NakedDesire/UI/TextButton.h"
#include "Widgets/CommonActivatableWidgetContainer.h"
#define LOCTEXT_NAMESPACE "MainMenu"
@@ -29,13 +28,14 @@ void UMainMenuWidget::NativeOnActivated()
if (const USaveSubsystem* SaveSubsystem = GameInstance->GetSubsystem<USaveSubsystem>())
bHasSave = SaveSubsystem->DoesSaveExist();
}
ContinueButton->SetIsEnabled(bHasSave);
ContinueButton->OnClicked.AddUniqueDynamic(this, &UMainMenuWidget::OnContinueClicked);
NewGameButton->OnClicked.AddUniqueDynamic(this, &UMainMenuWidget::OnNewGameClicked);
SettingsButton->OnClicked.AddUniqueDynamic(this, &UMainMenuWidget::OnSettingsClicked);
CreditsButton->OnClicked.AddUniqueDynamic(this, &UMainMenuWidget::OnCreditsClicked);
QuitButton->OnClicked.AddUniqueDynamic(this, &UMainMenuWidget::OnQuitClicked);
ContinueButton->OnClicked().AddUObject(this, &UMainMenuWidget::OnContinueClicked);
NewGameButton->OnClicked().AddUObject(this, &UMainMenuWidget::OnNewGameClicked);
SettingsButton->OnClicked().AddUObject(this, &UMainMenuWidget::OnSettingsClicked);
CreditsButton->OnClicked().AddUObject(this, &UMainMenuWidget::OnCreditsClicked);
QuitButton->OnClicked().AddUObject(this, &UMainMenuWidget::OnQuitClicked);
}
void UMainMenuWidget::OnContinueClicked()
+6 -5
View File
@@ -6,6 +6,7 @@
#include "CommonActivatableWidget.h"
#include "MainMenuWidget.generated.h"
class UTextButton;
class UButton;
class UCommonActivatableWidgetStack;
class UConfirmModalWidget;
@@ -26,19 +27,19 @@ protected:
private:
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> ContinueButton;
TObjectPtr<UTextButton> ContinueButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> NewGameButton;
TObjectPtr<UTextButton> NewGameButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> SettingsButton;
TObjectPtr<UTextButton> SettingsButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> CreditsButton;
TObjectPtr<UTextButton> CreditsButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> QuitButton;
TObjectPtr<UTextButton> QuitButton;
// Stack the confirm popup / credits / settings screens are pushed onto.
UPROPERTY(meta = (BindWidget))
@@ -2,23 +2,22 @@
#include "SettingsScreenWidget.h"
#include "AudioSettingsTab.h"
#include "GameplaySettingsTab.h"
#include "GraphicsSettingsTab.h"
#include "Components/Button.h"
#include "Components/WidgetSwitcher.h"
#include "NakedDesire/Global/NakedDesireUserSettings.h"
#include "NakedDesire/UI/TextButton.h"
void USettingsScreenWidget::NativeOnActivated()
{
Super::NativeOnActivated();
GameplayTabButton->OnClicked.AddUniqueDynamic(this, &USettingsScreenWidget::ShowGameplayTab);
AudioTabButton->OnClicked.AddUniqueDynamic(this, &USettingsScreenWidget::ShowAudioTab);
GraphicsTabButton->OnClicked.AddUniqueDynamic(this, &USettingsScreenWidget::ShowGraphicsTab);
ApplyButton->OnClicked.AddUniqueDynamic(this, &USettingsScreenWidget::OnApplyClicked);
BackButton->OnClicked.AddUniqueDynamic(this, &USettingsScreenWidget::OnBackClicked);
GameplayTabButton->OnClicked().AddUObject(this, &USettingsScreenWidget::ShowGameplayTab);
AudioTabButton->OnClicked().AddUObject(this, &USettingsScreenWidget::ShowAudioTab);
GraphicsTabButton->OnClicked().AddUObject(this, &USettingsScreenWidget::ShowGraphicsTab);
ApplyButton->OnClicked().AddUObject(this, &USettingsScreenWidget::OnApplyClicked);
BackButton->OnClicked().AddUObject(this, &USettingsScreenWidget::OnBackClicked);
// Pull live values into every tab so the controls reflect the current state.
GameplayTab->RefreshFromSettings();
@@ -39,16 +38,25 @@ void USettingsScreenWidget::NativeOnDeactivated()
void USettingsScreenWidget::ShowGameplayTab()
{
TabSwitcher->SetActiveWidget(GameplayTab);
GameplayTabButton->SetIsActive(true);
AudioTabButton->SetIsActive(false);
GraphicsTabButton->SetIsActive(false);
}
void USettingsScreenWidget::ShowAudioTab()
{
TabSwitcher->SetActiveWidget(AudioTab);
GameplayTabButton->SetIsActive(false);
AudioTabButton->SetIsActive(true);
GraphicsTabButton->SetIsActive(false);
}
void USettingsScreenWidget::ShowGraphicsTab()
{
TabSwitcher->SetActiveWidget(GraphicsTab);
GameplayTabButton->SetIsActive(false);
AudioTabButton->SetIsActive(false);
GraphicsTabButton->SetIsActive(true);
}
void USettingsScreenWidget::OnApplyClicked()
@@ -6,7 +6,7 @@
#include "CommonActivatableWidget.h"
#include "SettingsScreenWidget.generated.h"
class UButton;
class UTextButton;
class UWidgetSwitcher;
class UGameplaySettingsTab;
class UAudioSettingsTab;
@@ -29,19 +29,19 @@ private:
TObjectPtr<UWidgetSwitcher> TabSwitcher;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> GameplayTabButton;
TObjectPtr<UTextButton> GameplayTabButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> AudioTabButton;
TObjectPtr<UTextButton> AudioTabButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> GraphicsTabButton;
TObjectPtr<UTextButton> GraphicsTabButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> ApplyButton;
TObjectPtr<UTextButton> ApplyButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UButton> BackButton;
TObjectPtr<UTextButton> BackButton;
UPROPERTY(meta = (BindWidget))
TObjectPtr<UGameplaySettingsTab> GameplayTab;