mirror of
https://github.com/LNH-team/pico-launcher.git
synced 2026-06-02 09:06:54 +02:00
Add new shared pointer and make use of it
This commit is contained in:
@@ -11,27 +11,22 @@ void BannerListFileRecyclerAdapter::GetViewSize(int& width, int& height) const
|
||||
height = 44;
|
||||
}
|
||||
|
||||
View* BannerListFileRecyclerAdapter::CreateView() const
|
||||
SharedPtr<View> BannerListFileRecyclerAdapter::CreateView() const
|
||||
{
|
||||
return _romBrowserViewFactory->CreateBannerListItemView(_vblankTextureLoader);
|
||||
}
|
||||
|
||||
void BannerListFileRecyclerAdapter::DestroyView(View* view) const
|
||||
void BannerListFileRecyclerAdapter::BindView(SharedPtr<View> view, int index) const
|
||||
{
|
||||
delete static_cast<BannerListItemView*>(view);
|
||||
}
|
||||
|
||||
void BannerListFileRecyclerAdapter::BindView(View* view, int index) const
|
||||
{
|
||||
auto listItemView = static_cast<BannerListItemView*>(view);
|
||||
auto listItemView = static_cast<BannerListItemView*>(view.GetPointer());
|
||||
listItemView->SetGraphics(_bannerListItemViewGraphics);
|
||||
FileRecyclerAdapter::BindView(view, index);
|
||||
}
|
||||
|
||||
TaskResult<void> BannerListFileRecyclerAdapter::BindView(View* view, int index,
|
||||
TaskResult<void> BannerListFileRecyclerAdapter::BindView(SharedPtr<View> view, int index,
|
||||
const InternalFileInfo* internalFileInfo, const vu8& cancelRequested) const
|
||||
{
|
||||
auto listItemView = static_cast<BannerListItemView*>(view);
|
||||
auto listItemView = static_cast<BannerListItemView*>(view.GetPointer());
|
||||
const auto& fileInfo = _fileInfoManager->GetItem(index);
|
||||
bool fileNameAsTitle = true;
|
||||
if (internalFileInfo)
|
||||
@@ -70,10 +65,10 @@ TaskResult<void> BannerListFileRecyclerAdapter::BindView(View* view, int index,
|
||||
return TaskResult<void>::Completed();
|
||||
}
|
||||
|
||||
void BannerListFileRecyclerAdapter::ReleaseView(View* view, int index) const
|
||||
void BannerListFileRecyclerAdapter::ReleaseView(SharedPtr<View> view, int index) const
|
||||
{
|
||||
LOG_DEBUG("Releasing %d\n", index);
|
||||
auto listItemView = static_cast<BannerListItemView*>(view);
|
||||
auto listItemView = static_cast<BannerListItemView*>(view.GetPointer());
|
||||
listItemView->SetIcon(nullptr);
|
||||
listItemView->SetGameTitle(u"");
|
||||
_fileInfoManager->ReleaseFileInfo(index);
|
||||
|
||||
@@ -17,10 +17,9 @@ public:
|
||||
, _vblankTextureLoader(vblankTextureLoader) { }
|
||||
|
||||
void GetViewSize(int& width, int& height) const override;
|
||||
View* CreateView() const override;
|
||||
void DestroyView(View* view) const override;
|
||||
void BindView(View* view, int index) const override;
|
||||
void ReleaseView(View* view, int index) const override;
|
||||
SharedPtr<View> CreateView() const override;
|
||||
void BindView(SharedPtr<View> view, int index) const override;
|
||||
void ReleaseView(SharedPtr<View> view, int index) const override;
|
||||
|
||||
void InitVram(const VramContext& vramContext) override;
|
||||
|
||||
@@ -29,6 +28,6 @@ private:
|
||||
BannerListItemView::VramToken _bannerListItemViewGraphics;
|
||||
VBlankTextureLoader* _vblankTextureLoader;
|
||||
|
||||
TaskResult<void> BindView(View* view, int index,
|
||||
TaskResult<void> BindView(SharedPtr<View> view, int index,
|
||||
const InternalFileInfo* internalFileInfo, const vu8& cancelRequested) const override;
|
||||
};
|
||||
|
||||
@@ -13,21 +13,15 @@ void CoverFlowFileRecyclerAdapter::GetViewSize(int& width, int& height) const
|
||||
height = 44;
|
||||
}
|
||||
|
||||
View* CoverFlowFileRecyclerAdapter::CreateView() const
|
||||
SharedPtr<View> CoverFlowFileRecyclerAdapter::CreateView() const
|
||||
{
|
||||
return new CoverView(_vblankTextureLoader);
|
||||
return SharedPtr<CoverView>::MakeShared(_vblankTextureLoader);
|
||||
}
|
||||
|
||||
void CoverFlowFileRecyclerAdapter::DestroyView(View* view) const
|
||||
{
|
||||
auto coverView = static_cast<CoverView*>(view);
|
||||
delete coverView;
|
||||
}
|
||||
|
||||
TaskResult<void> CoverFlowFileRecyclerAdapter::BindView(View* view, int index,
|
||||
TaskResult<void> CoverFlowFileRecyclerAdapter::BindView(SharedPtr<View> view, int index,
|
||||
const InternalFileInfo* internalFileInfo, const vu8& cancelRequested) const
|
||||
{
|
||||
auto coverView = static_cast<CoverView*>(view);
|
||||
auto coverView = static_cast<CoverView*>(view.GetPointer());
|
||||
auto cover = _fileInfoManager->GetFileCover(index);
|
||||
if (cancelRequested)
|
||||
{
|
||||
@@ -45,10 +39,10 @@ TaskResult<void> CoverFlowFileRecyclerAdapter::BindView(View* view, int index,
|
||||
return TaskResult<void>::Completed();
|
||||
}
|
||||
|
||||
void CoverFlowFileRecyclerAdapter::ReleaseView(View* view, int index) const
|
||||
void CoverFlowFileRecyclerAdapter::ReleaseView(SharedPtr<View> view, int index) const
|
||||
{
|
||||
LOG_DEBUG("Releasing %d\n", index);
|
||||
auto coverView = static_cast<CoverView*>(view);
|
||||
auto coverView = static_cast<CoverView*>(view.GetPointer());
|
||||
coverView->ClearCover();
|
||||
_fileInfoManager->ReleaseFileInfo(index);
|
||||
}
|
||||
|
||||
@@ -19,9 +19,8 @@ public:
|
||||
, _coverRepository(coverRepository) { }
|
||||
|
||||
void GetViewSize(int& width, int& height) const override;
|
||||
View* CreateView() const override;
|
||||
void DestroyView(View* view) const override;
|
||||
void ReleaseView(View* view, int index) const override;
|
||||
SharedPtr<View> CreateView() const override;
|
||||
void ReleaseView(SharedPtr<View> view, int index) const override;
|
||||
|
||||
void InitVram(const VramContext& vramContext) override;
|
||||
|
||||
@@ -30,6 +29,6 @@ private:
|
||||
VBlankTextureLoader* _vblankTextureLoader;
|
||||
const ICoverRepository* _coverRepository;
|
||||
|
||||
TaskResult<void> BindView(View* view, int index,
|
||||
TaskResult<void> BindView(SharedPtr<View> view, int index,
|
||||
const InternalFileInfo* internalFileInfo, const vu8& cancelRequested) const override;
|
||||
};
|
||||
|
||||
@@ -11,27 +11,22 @@ void IconGridFileRecyclerAdapter::GetViewSize(int& width, int& height) const
|
||||
height = 44;
|
||||
}
|
||||
|
||||
View* IconGridFileRecyclerAdapter::CreateView() const
|
||||
SharedPtr<View> IconGridFileRecyclerAdapter::CreateView() const
|
||||
{
|
||||
return _romBrowserViewFactory->CreateIconGridItemView();
|
||||
}
|
||||
|
||||
void IconGridFileRecyclerAdapter::DestroyView(View* view) const
|
||||
void IconGridFileRecyclerAdapter::BindView(SharedPtr<View> view, int index) const
|
||||
{
|
||||
delete static_cast<IconGridItemView*>(view);
|
||||
}
|
||||
|
||||
void IconGridFileRecyclerAdapter::BindView(View* view, int index) const
|
||||
{
|
||||
auto iconGridItemView = static_cast<IconGridItemView*>(view);
|
||||
auto iconGridItemView = static_cast<IconGridItemView*>(view.GetPointer());
|
||||
iconGridItemView->SetGraphics(_iconGridItemViewGraphics);
|
||||
FileRecyclerAdapter::BindView(view, index);
|
||||
}
|
||||
|
||||
TaskResult<void> IconGridFileRecyclerAdapter::BindView(View* view, int index,
|
||||
TaskResult<void> IconGridFileRecyclerAdapter::BindView(SharedPtr<View> view, int index,
|
||||
const InternalFileInfo* internalFileInfo, const vu8& cancelRequested) const
|
||||
{
|
||||
auto iconGridItemView = static_cast<IconGridItemView*>(view);
|
||||
auto iconGridItemView = static_cast<IconGridItemView*>(view.GetPointer());
|
||||
auto icon = internalFileInfo ? internalFileInfo->CreateGameIcon() : nullptr;
|
||||
if (!icon)
|
||||
{
|
||||
@@ -59,10 +54,10 @@ TaskResult<void> IconGridFileRecyclerAdapter::BindView(View* view, int index,
|
||||
return TaskResult<void>::Completed();
|
||||
}
|
||||
|
||||
void IconGridFileRecyclerAdapter::ReleaseView(View* view, int index) const
|
||||
void IconGridFileRecyclerAdapter::ReleaseView(SharedPtr<View> view, int index) const
|
||||
{
|
||||
LOG_DEBUG("Releasing %d\n", index);
|
||||
auto iconGridItemView = static_cast<IconGridItemView*>(view);
|
||||
auto iconGridItemView = static_cast<IconGridItemView*>(view.GetPointer());
|
||||
iconGridItemView->SetIcon(nullptr);
|
||||
_fileInfoManager->ReleaseFileInfo(index);
|
||||
}
|
||||
|
||||
@@ -14,10 +14,9 @@ public:
|
||||
, _romBrowserViewFactory(romBrowserViewFactory) { }
|
||||
|
||||
void GetViewSize(int& width, int& height) const override;
|
||||
View* CreateView() const override;
|
||||
void DestroyView(View* view) const override;
|
||||
void BindView(View* view, int index) const override;
|
||||
void ReleaseView(View* view, int index) const override;
|
||||
SharedPtr<View> CreateView() const override;
|
||||
void BindView(SharedPtr<View> view, int index) const override;
|
||||
void ReleaseView(SharedPtr<View> view, int index) const override;
|
||||
|
||||
void InitVram(const VramContext& vramContext) override;
|
||||
|
||||
@@ -25,6 +24,6 @@ private:
|
||||
const IRomBrowserViewFactory* _romBrowserViewFactory;
|
||||
IconGridItemView::VramToken _iconGridItemViewGraphics;
|
||||
|
||||
TaskResult<void> BindView(View* view, int index,
|
||||
TaskResult<void> BindView(SharedPtr<View> view, int index,
|
||||
const InternalFileInfo* internalFileInfo, const vu8& cancelRequested) const override;
|
||||
};
|
||||
|
||||
@@ -17,19 +17,19 @@ public:
|
||||
AppBarView::Orientation::Vertical, startButtonCount, endButtonCount);
|
||||
}
|
||||
|
||||
std::unique_ptr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
SharedPtr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
{
|
||||
auto recyclerView = std::make_unique<RecyclerView>(42, 0, 256 - 42, 192, RecyclerView::Mode::VerticalList);
|
||||
auto recyclerView = RecyclerView::CreateShared(42, 0, 256 - 42, 192, RecyclerView::Mode::VerticalList);
|
||||
recyclerView->SetPadding(0, 3);
|
||||
recyclerView->SetItemSpacing(0, 3);
|
||||
return recyclerView;
|
||||
}
|
||||
|
||||
FileRecyclerAdapter* CreateRecyclerAdapter(
|
||||
SharedPtr<FileRecyclerAdapter> CreateRecyclerAdapter(
|
||||
RomBrowserViewModel* viewModel, const IThemeFileIconFactory* themeFileIconFactory,
|
||||
const IRomBrowserViewFactory* romBrowserViewFactory, VBlankTextureLoader* vblankTextureLoader) const override
|
||||
{
|
||||
return new BannerListFileRecyclerAdapter(
|
||||
return SharedPtr<BannerListFileRecyclerAdapter>::MakeShared(
|
||||
&viewModel->GetFileInfoManager(), viewModel->GetIoTaskQueue(), themeFileIconFactory,
|
||||
romBrowserViewFactory, vblankTextureLoader);
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@ public:
|
||||
virtual bool ShowCoverOnTopScreen() const { return true; }
|
||||
virtual std::unique_ptr<AppBarView> CreateAppBarView(const IRomBrowserViewFactory* romBrowserViewFactory,
|
||||
int startButtonCount, int endButtonCount) const = 0;
|
||||
virtual std::unique_ptr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const = 0;
|
||||
virtual FileRecyclerAdapter* CreateRecyclerAdapter(
|
||||
virtual SharedPtr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const = 0;
|
||||
virtual SharedPtr<FileRecyclerAdapter> CreateRecyclerAdapter(
|
||||
RomBrowserViewModel* viewModel, const IThemeFileIconFactory* themeFileIconFactory,
|
||||
const IRomBrowserViewFactory* romBrowserViewFactory, VBlankTextureLoader* vblankTextureLoader) const = 0;
|
||||
};
|
||||
|
||||
@@ -16,12 +16,12 @@ public:
|
||||
AppBarView::Orientation::Horizontal, startButtonCount, endButtonCount);
|
||||
}
|
||||
|
||||
std::unique_ptr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
SharedPtr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
{
|
||||
return romBrowserViewFactory->CreateCoverFlowRecyclerView();
|
||||
}
|
||||
|
||||
FileRecyclerAdapter* CreateRecyclerAdapter(
|
||||
SharedPtr<FileRecyclerAdapter> CreateRecyclerAdapter(
|
||||
RomBrowserViewModel* viewModel, const IThemeFileIconFactory* themeFileIconFactory,
|
||||
const IRomBrowserViewFactory* romBrowserViewFactory, VBlankTextureLoader* vblankTextureLoader) const override
|
||||
{
|
||||
|
||||
@@ -17,19 +17,19 @@ public:
|
||||
AppBarView::Orientation::Horizontal, startButtonCount, endButtonCount);
|
||||
}
|
||||
|
||||
std::unique_ptr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
SharedPtr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
{
|
||||
auto recyclerView = std::make_unique<RecyclerView>(0, 42, 256, 192 - 42, RecyclerView::Mode::HorizontalGrid);
|
||||
auto recyclerView = RecyclerView::CreateShared(0, 42, 256, 192 - 42, RecyclerView::Mode::HorizontalGrid);
|
||||
recyclerView->SetPadding(10, 0);
|
||||
recyclerView->SetItemSpacing(4, 4);
|
||||
return recyclerView;
|
||||
}
|
||||
|
||||
FileRecyclerAdapter* CreateRecyclerAdapter(
|
||||
SharedPtr<FileRecyclerAdapter> CreateRecyclerAdapter(
|
||||
RomBrowserViewModel* viewModel, const IThemeFileIconFactory* themeFileIconFactory,
|
||||
const IRomBrowserViewFactory* romBrowserViewFactory, VBlankTextureLoader* vblankTextureLoader) const override
|
||||
{
|
||||
return new IconGridFileRecyclerAdapter(
|
||||
return SharedPtr<IconGridFileRecyclerAdapter>::MakeShared(
|
||||
&viewModel->GetFileInfoManager(), viewModel->GetIoTaskQueue(),
|
||||
themeFileIconFactory, romBrowserViewFactory);
|
||||
}
|
||||
|
||||
@@ -17,19 +17,19 @@ public:
|
||||
AppBarView::Orientation::Vertical, startButtonCount, endButtonCount);
|
||||
}
|
||||
|
||||
std::unique_ptr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
SharedPtr<RecyclerViewBase> CreateRecyclerView(const IRomBrowserViewFactory* romBrowserViewFactory) const override
|
||||
{
|
||||
auto recyclerView = std::make_unique<RecyclerView>(42, 0, 256 - 42, 192, RecyclerView::Mode::VerticalGrid);
|
||||
auto recyclerView = RecyclerView::CreateShared(42, 0, 256 - 42, 192, RecyclerView::Mode::VerticalGrid);
|
||||
recyclerView->SetPadding(0, 3);
|
||||
recyclerView->SetItemSpacing(9, 3);
|
||||
return recyclerView;
|
||||
}
|
||||
|
||||
FileRecyclerAdapter* CreateRecyclerAdapter(
|
||||
SharedPtr<FileRecyclerAdapter> CreateRecyclerAdapter(
|
||||
RomBrowserViewModel* viewModel, const IThemeFileIconFactory* themeFileIconFactory,
|
||||
const IRomBrowserViewFactory* romBrowserViewFactory, VBlankTextureLoader* vblankTextureLoader) const override
|
||||
{
|
||||
return new IconGridFileRecyclerAdapter(
|
||||
return SharedPtr<IconGridFileRecyclerAdapter>::MakeShared(
|
||||
&viewModel->GetFileInfoManager(), viewModel->GetIoTaskQueue(),
|
||||
themeFileIconFactory, romBrowserViewFactory);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user