Files
amnezia-client/client/platforms/windows/wintrayiconbackend.h
T
2026-06-05 13:35:11 +03:00

34 lines
939 B
C++

#ifndef WINTRAYICONBACKEND_H
#define WINTRAYICONBACKEND_H
#include "ui/utils/trayIconBackend.h"
#include <QColor>
#include <QIcon>
#include <QSystemTrayIcon>
#include <QTimer>
class WinTrayIconBackend final : public TrayIconBackend
{
public:
explicit WinTrayIconBackend(QObject *parent);
void setMenu(QMenu *menu) override;
void setToolTip(const QString &tooltip) override;
void show() override;
void applyVisual(const TrayIconVisual &visual) override;
void showMessage(const QString &title, const QString &message, const TrayIconVisual &visual, int timerMsec) override;
void rebuildMenu() override;
void setActivatedHandler(std::function<void(QSystemTrayIcon::ActivationReason)> handler) override;
private:
void reapplyLastVisual();
QSystemTrayIcon m_trayIcon;
TrayIconVisual m_lastVisual;
QTimer m_reapplyTimerShort;
QTimer m_reapplyTimerLong;
};
#endif // WINTRAYICONBACKEND_H