mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-05-12 11:42:13 -04:00
Clean up UI navigation push constructor scheme.
This commit is contained in:
parent
a1aa6ecdbf
commit
97f29f8336
5 changed files with 36 additions and 28 deletions
|
@ -33,6 +33,7 @@
|
|||
#include "ui_sd_card_status_view.hpp"
|
||||
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
|
||||
namespace ui {
|
||||
|
||||
|
@ -56,7 +57,13 @@ public:
|
|||
NavigationView(const NavigationView&) = delete;
|
||||
NavigationView(NavigationView&&) = delete;
|
||||
|
||||
void push(View* new_view);
|
||||
template<class T, class... Args>
|
||||
T* push(Args&&... args) {
|
||||
const auto new_view = new T(std::forward<Args>(args)...);
|
||||
push_view(new_view);
|
||||
return reinterpret_cast<T*>(new_view);
|
||||
}
|
||||
|
||||
void pop();
|
||||
|
||||
void focus() override;
|
||||
|
@ -66,6 +73,8 @@ private:
|
|||
|
||||
Widget* view() const;
|
||||
void set_view(Widget* const new_view);
|
||||
|
||||
void push_view(View* new_view);
|
||||
};
|
||||
|
||||
class SystemMenuView : public MenuView {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue