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

@@ -1,7 +1,9 @@
#pragma once
#include <memory>
#include "romBrowser/viewModels/RomBrowserItemViewModel.h"
#include "gui/views/View.h"
#include "../FileType/FileIcon.h"
#include "RomBrowserItemInputHandler.h"
class MaterialColorScheme;
@@ -24,6 +26,11 @@ public:
void InitVram(const VramContext& vramContext) override;
void Update() override;
bool HandleInput(const InputProvider& inputProvider, FocusManager& focusManager) override;
void HandlePenDown(const Point& touchPoint, FocusManager& focusManager) override;
void HandlePenMove(const Point& touchPoint, FocusManager& focusManager) override;
void HandlePenUp(const Point& lastTouchPoint, FocusManager& focusManager) override;
void SetIcon(std::unique_ptr<FileIcon> icon)
{
_icon = std::move(icon);
@@ -43,11 +50,18 @@ public:
virtual void SetGraphics(const VramToken& vramToken) { }
RomBrowserItemViewModel& GetViewModel() const
{
return *_viewModel;
}
protected:
std::unique_ptr<RomBrowserItemViewModel> _viewModel;
std::unique_ptr<FileIcon> _icon;
vu16* _iconVram;
u32 _iconVramOffset;
RomBrowserItemInputHandler _inputHandler;
IconGridItemView()
: _icon(nullptr) { }
};
explicit IconGridItemView(std::unique_ptr<RomBrowserItemViewModel> viewModel)
: _viewModel(std::move(viewModel)), _inputHandler(this, _viewModel.get()) { }
};