#pragma once #include #include "./sys_tray.hpp" #include // service that sets window and tray icon depending on program state class StatusIndicator { RegistryMessageModelI& _rmm; Contact3Registry& _cr; SDL_Window* _main_window; SystemTray* _tray; float _cooldown {1.f}; enum class State { base, unread, none, // only used for initialization } _state = State::none; void updateState(State state); public: StatusIndicator( RegistryMessageModelI& rmm, Contact3Registry& cr, SDL_Window* main_window, SystemTray* tray = nullptr ); // does not actually render, just on the render thread void render(float delta); };