CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
ToastView.h
Go to the documentation of this file.
1#pragma once
2
3#include "cdc_ui/IView.h"
4#include <cstdint>
5
6namespace cdc::ui {
7
20class ToastView : public ViewBase {
21public:
22 enum class Icon : uint8_t {
23 NONE = 0,
29 };
30
37 void init(const char* message, Icon icon = Icon::NONE, uint16_t durationMs = 1500,
38 bool dismissible = true);
39
43 bool isExpired() const { return expired_; }
44
45 // IView implementation
46 void render(bool partial) override;
47 InputResult onKey(char key) override;
48 void onTick(uint32_t nowMs) override;
49 const char* getName() const override { return "ToastView"; }
50
51private:
52 static constexpr uint16_t MAX_MSG_LEN = 64;
53 static constexpr int BOX_WIDTH = 200;
54 static constexpr int BOX_HEIGHT = 50;
55
56 char message_[MAX_MSG_LEN] = {};
57 Icon icon_ = Icon::NONE;
58 uint16_t durationMs_ = 1500;
59 uint32_t startMs_ = 0;
60 bool expired_ = false;
61 bool dismissible_ = true;
62};
63
64// ============================================================================
65// Convenience Functions
66// ============================================================================
67
73void showToast(const char* message, uint16_t durationMs = 1500);
74
78void showToastSuccess(const char* message, uint16_t durationMs = 1500);
79
83void showToastError(const char* message, uint16_t durationMs = 1500);
84
88void showToastInfo(const char* message, uint16_t durationMs = 1500);
89
93void showToastTask(const char* message, uint16_t durationMs = 0);
94
98void showToastAlert(const char* message, uint16_t durationMs = 1500);
99
103void showToastAlertSticky(const char* message);
104
105} // namespace cdc::ui
InputResult onKey(char key) override
Handles key input for optional toast dismissal.
Definition ToastView.cpp:64
bool isExpired() const
Definition ToastView.h:43
void init(const char *message, Icon icon=Icon::NONE, uint16_t durationMs=1500, bool dismissible=true)
Initializes toast message content and timing behavior.
Definition ToastView.cpp:26
void onTick(uint32_t nowMs) override
Updates auto-dismiss timeout state.
Definition ToastView.cpp:47
const char * getName() const override
Definition ToastView.h:49
Centralized key-code constants for cdc_views.
Definition IModule.h:8
void showToast(const char *message, uint16_t durationMs=1500)
Shows a plain toast message.
void showToastTask(const char *message, uint16_t durationMs=0)
Shows a task/progress toast message.
void showToastAlertSticky(const char *message)
Shows a non-dismissible alert toast.
InputResult
Definition IView.h:10
void showToastAlert(const char *message, uint16_t durationMs=1500)
Shows an alert toast message.
void showToastSuccess(const char *message, uint16_t durationMs=1500)
Shows a success toast message.
void showToastInfo(const char *message, uint16_t durationMs=1500)
Shows an informational toast message.
void showToastError(const char *message, uint16_t durationMs=1500)
Shows an error toast message.