Files
pico-launcher/arm9/source/romBrowser/viewModels/DisplaySettingsViewModel.h
2025-11-25 17:41:31 +01:00

50 lines
1.5 KiB
C++

#pragma once
#include "../IRomBrowserController.h"
#include "services/settings/RomBrowserDisplaySettings.h"
/// @brief View model for the display settings screen.
class DisplaySettingsViewModel
{
public:
explicit DisplaySettingsViewModel(IRomBrowserController* romBrowserController)
: _romBrowserController(romBrowserController)
, _romBrowserDisplaySettings(_romBrowserController->GetRomBrowserDisplaySettings()) { }
constexpr RomBrowserLayout GetRomBrowserDisplayMode() const
{
return _romBrowserDisplaySettings.layout;
}
void SetRomBrowserDisplayMode(RomBrowserLayout romBrowserDisplayMode)
{
if (_romBrowserDisplaySettings.layout != romBrowserDisplayMode)
{
_romBrowserDisplaySettings.layout = romBrowserDisplayMode;
_romBrowserController->SetRomBrowserDisplaySettings(_romBrowserDisplaySettings);
}
}
constexpr RomBrowserSortMode GetRomBrowserSortMode() const
{
return _romBrowserDisplaySettings.sortMode;
}
void SetRomBrowserSortMode(RomBrowserSortMode romBrowserSortMode)
{
if (_romBrowserDisplaySettings.sortMode != romBrowserSortMode)
{
_romBrowserDisplaySettings.sortMode = romBrowserSortMode;
_romBrowserController->SetRomBrowserDisplaySettings(_romBrowserDisplaySettings);
}
}
void Close()
{
_romBrowserController->HideDisplaySettings();
}
private:
IRomBrowserController* _romBrowserController;
RomBrowserDisplaySettings _romBrowserDisplaySettings;
};