mirror of
https://github.com/LNH-team/pico-launcher.git
synced 2026-08-01 13:08:02 +02:00
59 lines
1.3 KiB
C++
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;
|
|
};
|