#pragma once #include "core/SharedPtr.h" #include "gui/views/ViewContainer.h" #include "BannerView.h" #include "gui/views/LabelView.h" #include "../FileType/FileIcon.h" #include "../DisplayMode/RomBrowserDisplayMode.h" class RomBrowserViewModel; class IRomBrowserViewFactory; class RomBrowserTopScreenView : public ViewContainer { public: RomBrowserTopScreenView(const SharedPtr& viewModel, const RomBrowserDisplayMode* displayMode, const IThemeFileIconFactory* themeFileIconFactory, const IRomBrowserViewFactory* romBrowserViewFactory); void InitVram(const VramContext& vramContext) override; void Update() override; void VBlank() override; Rectangle GetBounds() const override { return Rectangle(0, 0, 256, 192); } private: SharedPtr _viewModel; const IThemeFileIconFactory* _themeFileIconFactory; std::unique_ptr _fileInfoView; std::unique_ptr _selectedFileIcon; SharedPtr _selectedFileCover; int _lastSelectedItem = -1; bool _iconGraphicsUploaded = false; bool _coverGraphicsUploaded = false; bool _showCover; Point _coverPosition; };