2020-12-12 15:41:56 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <borealis.hpp>
|
2021-06-01 14:28:03 +01:00
|
|
|
#include <chrono>
|
2020-12-12 15:41:56 +00:00
|
|
|
|
|
|
|
class DialoguePage : public brls::View
|
|
|
|
{
|
2021-09-11 14:48:13 +01:00
|
|
|
private:
|
2021-09-12 14:01:40 +01:00
|
|
|
std::chrono::system_clock::time_point start = std::chrono::high_resolution_clock::now();
|
|
|
|
brls::NavigationMap navigationMap;
|
|
|
|
|
|
|
|
protected:
|
2021-09-11 14:48:13 +01:00
|
|
|
brls::Button* button1 = nullptr;
|
|
|
|
brls::Button* button2 = nullptr;
|
|
|
|
brls::Label* label = nullptr;
|
2021-09-12 14:01:40 +01:00
|
|
|
virtual void CreateView();
|
|
|
|
virtual void instantiateButtons(){};
|
2020-12-12 15:41:56 +00:00
|
|
|
|
2021-09-11 14:48:13 +01:00
|
|
|
public:
|
2021-09-12 14:01:40 +01:00
|
|
|
DialoguePage(){};
|
2020-12-12 15:41:56 +00:00
|
|
|
|
2021-09-11 14:48:13 +01:00
|
|
|
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);
|
2021-09-12 14:01:40 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
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(); }
|
|
|
|
void draw(NVGcontext* vg, int x, int y, unsigned width, unsigned height, brls::Style* style, brls::FrameContext* ctx) override;
|
|
|
|
};
|
|
|
|
|
|
|
|
class DialoguePage_ams : public DialoguePage
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
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(); }
|
2020-12-12 15:41:56 +00:00
|
|
|
};
|