Some checks are pending
ContinuousDelivery / linux-ubuntu (push) Waiting to run
ContinuousDelivery / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android]) (push) Waiting to run
ContinuousDelivery / android (map[ndk_abi:armeabi-v7a vcpkg_toolkit:arm-neon-android]) (push) Waiting to run
ContinuousDelivery / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android]) (push) Waiting to run
ContinuousDelivery / windows (push) Waiting to run
ContinuousDelivery / windows-asan (push) Waiting to run
ContinuousDelivery / dumpsyms (push) Blocked by required conditions
ContinuousDelivery / release (push) Blocked by required conditions
ContinuousIntegration / linux (push) Waiting to run
ContinuousIntegration / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android]) (push) Waiting to run
ContinuousIntegration / android (map[ndk_abi:armeabi-v7a vcpkg_toolkit:arm-neon-android]) (push) Waiting to run
ContinuousIntegration / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android]) (push) Waiting to run
ContinuousIntegration / macos (push) Waiting to run
ContinuousIntegration / windows (push) Waiting to run
40 lines
715 B
C++
40 lines
715 B
C++
#pragma once
|
|
|
|
#include <solanaceae/message3/registry_message_model.hpp>
|
|
|
|
#include "./sys_tray.hpp"
|
|
|
|
#include <SDL3/SDL.h>
|
|
|
|
// service that sets window and tray icon depending on program state
|
|
|
|
class StatusIndicator {
|
|
RegistryMessageModelI& _rmm;
|
|
ContactStore4I& _cs;
|
|
|
|
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,
|
|
ContactStore4I& cs,
|
|
SDL_Window* main_window,
|
|
SystemTray* tray = nullptr
|
|
);
|
|
|
|
// does not actually render, just on the render thread
|
|
void render(float delta);
|
|
};
|
|
|