33 lines
1.2 KiB
C++
33 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
// Notificacions overlay centralitzades. Cada call site tria una entrada de
|
|
// la `Palette` semàntica i una durada; el color base (pastel) i el seu
|
|
// outline (versió fosca derivada) viuen en un sol lloc — `notifications.cpp`.
|
|
//
|
|
// Per a tunejar l'estètica només cal editar les constants del .cpp.
|
|
|
|
namespace Notifications {
|
|
|
|
enum class Palette : std::uint8_t {
|
|
INFO, // pastel groc — zoom, finestra/fullscreen
|
|
TOGGLE, // pastel cian — activacions on/off (shader)
|
|
CHOICE, // pastel magenta — selecció entre opcions (tipus shader)
|
|
SUCCESS, // pastel verd — acceptat / connectat (preset, mando added)
|
|
DANGER, // pastel roig — confirmacions perilloses / desconnexions
|
|
};
|
|
|
|
constexpr Uint32 STANDARD_MS = 1500; // Hotkeys "normals"
|
|
constexpr Uint32 CONFIRM_MS = 2000; // Doble pulsació d'ESC
|
|
constexpr Uint32 LONG_MS = 2500; // Esdeveniments rellevants (mando)
|
|
|
|
// Mostra una notificació. L'outline es deriva automàticament del color
|
|
// base com a versió fosca (~25% de lluminositat).
|
|
void show(const std::string &text, Palette palette, Uint32 duration_ms);
|
|
|
|
} // namespace Notifications
|