Files
pico-launcher/arm9/source/romBrowser/views/DisplaySettingsBottomSheetView.h
2025-11-25 17:41:31 +01:00

54 lines
1.7 KiB
C++

#pragma once
#include <array>
#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<IconButton2DView, 4> _layoutOptions;
std::array<IconButton2DView, /*3*/2> _sortOptions;
// std::array<IconButton2DView, 5> _filterOptions;
const MaterialColorScheme* _materialColorScheme;
IconButton2DView CreateLayoutOptionIconButton();
IconButton2DView CreateSortOptionIconButton();
// IconButton2DView CreateFilterOptionIconButton();
void UpdateLabels();
u32 LoadIcon(IVramManager& vramManager, const unsigned int* tiles, u32 tilesLength) const;
};