From 4fe67b36e3bbe6ea5505ed7233c245be9374f0ce Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Sun, 2 Feb 2025 20:59:36 +0100 Subject: refactor selection --- lib/nes/app/ui/screen-browser.hh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 lib/nes/app/ui/screen-browser.hh (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 new file mode 100644 index 0000000..eb66266 --- /dev/null +++ b/lib/nes/app/ui/screen-browser.hh @@ -0,0 +1,32 @@ +#pragma once + +#include "nes/app/ui/screen.hh" +#include "nes/app/ui/selection.hh" + +namespace nes::app +{ + class input_device_keyboard; + + /// An interface which allows the user to browse the filesystem for a game. + class screen_browser final : public screen + { + class selection_impl final : public selection + { + public: + using selection::selection; + + protected: + auto render_item(renderer&, i32 const&, i32 x, i32 y, u32 width, color) const -> void override; + auto load_page(i32(&)[5], u32 page) -> u32 override; + }; + + input_device_keyboard& keyboard_; + selection_impl selection_{ 2, 5, 28 }; + + public: + explicit screen_browser(input_device_keyboard&); + + auto render(renderer&) -> void override; + auto process_events() -> action override; + }; +} // namespace nes::app \ No newline at end of file -- cgit v1.3.1