Files
pico-launcher/arm9/source/settings/viewModels/ThemeListItemViewModel.h
2026-07-05 20:07:13 +02:00

59 lines
1.3 KiB
C++

#pragma once
#include "core/SharedPtr.h"
#include "romBrowser/viewModels/IRomBrowserItemViewModel.h"
#include "settings/ThemeInfoManager.h"
#include "themes/ThemeInfo.h"
class ISettingsController;
class ThemeListItemViewModel : public IRomBrowserItemViewModel
{
public:
explicit ThemeListItemViewModel(ISettingsController* settingsController)
: _settingsController(settingsController) { }
void Activate() override;
void ShowGameInfo() override { }
void SetIndex(int index) override
{
_index = index;
}
void SetQueueTask(QueueTask<void> queueTask) override
{
_queueTask = std::move(queueTask);
}
void CancelQueueTask() override
{
_queueTask.CancelTask();
}
void DisposeQueueTaskWhenComplete() override
{
if (_queueTask.GetTask().IsCompleted())
{
_queueTask.Dispose();
}
}
const ThemeInfoManager::ExtraThemeInfo* GetExtraThemeInfo() const
{
return _extraThemeInfo.GetPointer();
}
void SetExtraThemeInfo(SharedPtr<ThemeInfoManager::ExtraThemeInfo> extraThemeInfo)
{
_extraThemeInfo = std::move(extraThemeInfo);
}
private:
int _index = -1;
QueueTask<void> _queueTask;
SharedPtr<ThemeInfoManager::ExtraThemeInfo> _extraThemeInfo;
ISettingsController* _settingsController;
};