From e791ac9a46095e0241181da89c35a7c702982c21 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Tue, 4 Feb 2025 19:25:03 +0100 Subject: clean up path logic a bit --- lib/nes/app/ui/screen-browser.hh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib/nes/app/ui/screen-browser.hh') diff --git a/lib/nes/app/ui/screen-browser.hh b/lib/nes/app/ui/screen-browser.hh index 7a711c5..3870f02 100644 --- a/lib/nes/app/ui/screen-browser.hh +++ b/lib/nes/app/ui/screen-browser.hh @@ -11,13 +11,15 @@ namespace nes::app /// An interface which allows the user to browse the filesystem for a game. class screen_browser final : public screen { + static constexpr auto page_size = u32{ 8 }; + struct item { bool is_parent{ false }; file_browser::item data{ file_browser::item_type::directory, "" }; }; - class selection_impl final : public selection + class selection_impl final : public selection { file_browser& file_browser_; @@ -30,17 +32,21 @@ namespace nes::app protected: auto render_item(renderer&, item const&, i32 x, i32 y, u32 width, color) const -> void override; - auto load_page(item(&)[8], u32 page) -> u32 override; + auto load_page(item(&)[page_size], u32 page) -> u32 override; }; input_device_keyboard& keyboard_; file_browser& file_browser_; selection_impl selection_; + u32 navigation_steps_{ 0 }; public: explicit screen_browser(input_device_keyboard&, file_browser&); auto render(renderer&) -> void override; auto process_events() -> action override; + + private: + auto refresh() -> void; }; } // namespace nes::app \ No newline at end of file -- cgit v1.3.1