Add touch input support, add fast scrolling support for coverflow display mode, fix use after free bug in banner list mode

This commit is contained in:
Gericom
2026-04-04 19:24:39 +02:00
parent 21a8790ebc
commit 97762b14d3
119 changed files with 2251 additions and 762 deletions

View File

@@ -13,7 +13,7 @@ RomBrowserView::RomBrowserView(
: _viewModel(std::move(viewModel)), _isVertical(displayMode.IsVertical())
{
_fileGridView = displayMode.CreateRecyclerView(romBrowserViewFactory);
_fileGridView->SetParent(this);
AddChildTail(_fileGridView.GetPointer());
_fileRecyclerAdapter = displayMode.CreateRecyclerAdapter(
_viewModel.GetPointer(), themeFileIconFactory, romBrowserViewFactory, vblankTextureLoader);
}
@@ -32,16 +32,6 @@ void RomBrowserView::Update()
_viewModel->SetSelectedItem(_fileGridView->GetSelectedItem());
}
void RomBrowserView::Draw(GraphicsContext& graphicsContext)
{
_fileGridView->Draw(graphicsContext);
}
void RomBrowserView::VBlank()
{
_fileGridView->VBlank();
}
SharedPtr<View> RomBrowserView::MoveFocus(const SharedPtr<View>& currentFocus, FocusMoveDirection direction, View* source)
{
if (!currentFocus)
@@ -72,24 +62,3 @@ SharedPtr<View> RomBrowserView::MoveFocus(const SharedPtr<View>& currentFocus, F
}
return nullptr;
}
bool RomBrowserView::HandleInput(const InputProvider& inputProvider, FocusManager& focusManager)
{
if (inputProvider.Triggered(InputKey::A))
{
if (focusManager.IsFocusInside(_fileGridView.GetPointer()))
{
_viewModel->ItemActivated();
return true;
}
}
else if (inputProvider.Triggered(InputKey::Y))
{
if (focusManager.IsFocusInside(_fileGridView.GetPointer()))
{
_viewModel->ShowGameInfo();
return true;
}
}
return View::HandleInput(inputProvider, focusManager);
}