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

@@ -7,6 +7,7 @@
#include "romBrowser/viewModels/CheatsViewModel.h"
#include "CheatsAdapter.h"
#include "CheatListItemView.h"
#include "romBrowser/views/IconButton2DView.h"
class MaterialColorScheme;
class IFontRepository;
@@ -15,11 +16,9 @@ class IVramManager;
/// @brief Bottom sheet for browsing and enabling/disabling cheats.
class CheatsBottomSheetView : public BottomSheetView
{
public:
CheatsBottomSheetView(std::unique_ptr<CheatsViewModel> viewModel,
const MaterialColorScheme* materialColorScheme, const IFontRepository* fontRepository,
FocusManager* focusManager);
SHARED_ONLY(CheatsBottomSheetView)
public:
void InitVram(const VramContext& vramContext) override;
void Update() override;
void Draw(GraphicsContext& graphicsContext) override;
@@ -30,20 +29,30 @@ public:
_cheatListRecycler->Focus(focusManager);
}
protected:
void Close() override;
private:
std::unique_ptr<CheatsViewModel> _viewModel;
Label2DView _titleLabel;
Label2DView _secondaryLabel;
Label2DView _descriptionLabel;
SharedPtr<CheatsViewModel> _viewModel;
SharedPtr<Label2DView> _titleLabel;
SharedPtr<Label2DView> _secondaryLabel;
SharedPtr<Label2DView> _descriptionLabel;
SharedPtr<RecyclerView> _cheatListRecycler;
SharedPtr<CheatsAdapter> _cheatsAdapter;
SharedPtr<IconButton2DView> _upButton;
const MaterialColorScheme* _materialColorScheme;
const IFontRepository* _fontRepository;
IVramManager* _objVramManager = nullptr;
FocusManager* _focusManager;
CheatListItemView::VramOffsets _vramOffsets;
u32 _savedVramState = 0;
const CheatEntry* _currentCheatCategory = nullptr;
CheatsBottomSheetView(SharedPtr<CheatsViewModel> viewModel,
const MaterialColorScheme* materialColorScheme, const IFontRepository* fontRepository,
FocusManager* focusManager);
void UpdateCheatList();
void UpdateDescriptionText();
u32 LoadSprite(IVramManager& vramManager, const unsigned int* tiles, u32 tilesLength) const;
};