mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-08-28 13:34:07 +00:00
35 lines
1.0 KiB
C++
35 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
namespace ui::widgets
|
|
{
|
|
|
|
class ProgressOverlayPresenter
|
|
{
|
|
public:
|
|
explicit ProgressOverlayPresenter(bool present_on_change = false,
|
|
uint8_t present_frame_count = 1,
|
|
uint32_t present_frame_delay_ms = 0);
|
|
~ProgressOverlayPresenter();
|
|
|
|
ProgressOverlayPresenter(const ProgressOverlayPresenter&) = delete;
|
|
ProgressOverlayPresenter& operator=(const ProgressOverlayPresenter&) = delete;
|
|
|
|
void show_or_update(const char* title, const char* detail = nullptr, int progress_percent = -1);
|
|
void hide();
|
|
bool active() const;
|
|
|
|
// Requests a regular LVGL frame. It deliberately never drives LVGL from
|
|
// the caller: the platform display runtime is the sole handler owner.
|
|
static void request_present();
|
|
|
|
private:
|
|
bool present_on_change_ = false;
|
|
uint8_t present_frame_count_ = 1;
|
|
uint32_t present_frame_delay_ms_ = 0;
|
|
bool active_ = false;
|
|
};
|
|
|
|
} // namespace ui::widgets
|