Уведомления, popup, ошибки и скриншоты.

Здесь лежат overlays и screenshot subsystem из PipKit API в исходной разбивке по подпунктам.

16. Уведомления, toast, ошибки

16.1. Toast

ui.showToast()
    .text("Saved")
    .icon(error)
    .pos(top); // `top` или `down`

Проверка активности: ui.toastActive()

16.2. Notification

ui.showNotification()
    .text("Settings", "Changes applied")
    .button("OK")
    .delay(0)
    .type(Normal);

Типы: Normal, Warning, Error.

16.3. Popup menu

static const char *menuItems[] = {"Edit", "Rename", "Delete"};

ui.showPopupMenu()
    .items(menuItems)
    .anchor(button)
    .width(120);

Результат выбора:

if (ui.popupMenuHasResult()) {
    int16_t picked = ui.popupMenuTakeResult();
}

16.4. Ошибки

ui.showError()
    .message("Low battery")
    .code("0xLOWBAT")
    .type(Warning)
    .button("OK");

17. Скриншоты

17.1. Build-time флаги

  • PIPGUI_SCREENSHOTS (1 по умолчанию)
  • PIPGUI_SCREENSHOT_MODE (1 - serial capture, 2 - LittleFS)

17.2. Serial capture

python tools/screenshots/bin/capture.py --port COM9 --baud 1000000

17.4. Запуск скриншота

bool started = ui.startScreenshot();

Встроенный ярлык: удержание Next + Prev.

17.5. Галерея миниатюр

ui.drawScreenshot()
    .pos(8, 28)
    .size(224, 284)
    .grid(3, 5);