#pragma once #include #include class DialoguePage : public brls::View { private: brls::NavigationMap navigationMap; protected: brls::Button* button1 = nullptr; brls::Button* button2 = nullptr; brls::Label* label = nullptr; virtual void CreateView(); virtual void instantiateButtons(){}; public: DialoguePage(){}; void draw(NVGcontext* vg, int x, int y, unsigned width, unsigned height, brls::Style* style, brls::FrameContext* ctx) override; void layout(NVGcontext* vg, brls::Style* style, brls::FontStash* stash) override; brls::View* getDefaultFocus() override; brls::View* getNextFocus(brls::FocusDirection direction, brls::View* currentView); }; class DialoguePage_fw : public DialoguePage { private: void instantiateButtons() override; std::string text; brls::StagedAppletFrame* frame; public: DialoguePage_fw(brls::StagedAppletFrame* frame, const std::string& text) : DialoguePage(), text(text), frame(frame) { CreateView(); } }; class DialoguePage_ams : public DialoguePage { private: std::chrono::system_clock::time_point start = std::chrono::high_resolution_clock::now(); void instantiateButtons() override; bool erista = true; std::string text; brls::StagedAppletFrame* frame; public: DialoguePage_ams(brls::StagedAppletFrame* frame, const std::string& text, bool erista = true) : DialoguePage(), erista(erista), text(text), frame(frame) { CreateView(); } void draw(NVGcontext* vg, int x, int y, unsigned width, unsigned height, brls::Style* style, brls::FrameContext* ctx) override; }; class DialoguePage_confirm : public DialoguePage { private: void instantiateButtons() override; std::string text; brls::StagedAppletFrame* frame; public: DialoguePage_confirm(brls::StagedAppletFrame* frame, const std::string& text) : DialoguePage(), text(text), frame(frame) { CreateView(); } };