1
0
Fork 0
mirror of https://github.com/HamletDuFromage/aio-switch-updater.git synced 2024-11-08 19:41:49 +00:00
AIO-switch-updater/include/worker_page.hpp

30 lines
867 B
C++
Raw Normal View History

2020-09-20 01:21:28 +01:00
#pragma once
#include <borealis.hpp>
#include <thread>
typedef std::function<void()> worker_func_t;
class WorkerPage : public brls::View
{
2021-09-11 14:48:13 +01:00
private:
2020-09-20 01:21:28 +01:00
brls::ProgressDisplay* progressDisp = nullptr;
brls::StagedAppletFrame* frame;
brls::Button* button;
brls::Label* label;
std::string text;
2020-09-20 01:21:28 +01:00
int progressValue = 0;
bool workStarted = false;
bool draw_page = true;
2020-09-20 01:21:28 +01:00
std::thread* workerThread;
worker_func_t workerFunc;
2021-09-11 14:48:13 +01:00
public:
2020-09-20 01:21:28 +01:00
WorkerPage(brls::StagedAppletFrame* frame, const std::string& text, worker_func_t worker_func);
~WorkerPage();
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;
void doWork();
brls::View* getDefaultFocus() override;
};