#pragma once #include #include "BottomSheetView.h" #include "gui/views/Label2DView.h" #include "IconButton2DView.h" #include "../viewModels/DisplaySettingsViewModel.h" class IRomBrowserController; class MaterialColorScheme; class IFontRepository; class DisplaySettingsBottomSheetView : public BottomSheetView { public: DisplaySettingsBottomSheetView(DisplaySettingsViewModel* viewModel, const MaterialColorScheme* materialColorScheme, const IFontRepository* fontRepository); void InitVram(const VramContext& vramContext) override; void Update() override; void Draw(GraphicsContext& graphicsContext) override; bool HandleInput(const InputProvider& inputProvider, FocusManager& focusManager) override; View* MoveFocus(View* currentFocus, FocusMoveDirection direction, View* source) override; void SetGraphics(const IconButton2DView::VramToken& iconButtonVramToken); void Focus(FocusManager& focusManager) override { focusManager.Focus(&_layoutOptions[0]); } private: DisplaySettingsViewModel* _viewModel; Label2DView _titleLabel; Label2DView _layoutLabel; Label2DView _sortingLabel; // LabelView _filtersLabel; std::array _layoutOptions; std::array _sortOptions; // std::array _filterOptions; const MaterialColorScheme* _materialColorScheme; IconButton2DView CreateLayoutOptionIconButton(); IconButton2DView CreateSortOptionIconButton(); // IconButton2DView CreateFilterOptionIconButton(); void UpdateLabels(); u32 LoadIcon(IVramManager& vramManager, const unsigned int* tiles, u32 tilesLength) const; };