mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
8a83a6114f
This one is deprecated, but should work much better than any other system tray icon backend we currently have, both in term of supported features and reliability. It justs needs some testing to see where we can enable it now.
46 lines
933 B
C++
46 lines
933 B
C++
#ifndef SYSTEMTRAYICON_H
|
|
#define SYSTEMTRAYICON_H
|
|
|
|
#include "systemtrayicon_private.h"
|
|
#include <QObject>
|
|
|
|
class QSystemTrayIcon;
|
|
class QMenu;
|
|
|
|
class SystemTrayIcon : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
SystemTrayIcon();
|
|
~SystemTrayIcon();
|
|
void setContextMenu(QMenu* menu);
|
|
void show();
|
|
void hide();
|
|
void setVisible(bool);
|
|
void setIcon(QIcon&& icon);
|
|
|
|
signals:
|
|
void activated(QSystemTrayIcon::ActivationReason);
|
|
|
|
private:
|
|
QString extractIconToFile(QIcon icon, QString name="icon");
|
|
|
|
private:
|
|
SystrayBackendType backendType;
|
|
QSystemTrayIcon* qtIcon;
|
|
#ifdef ENABLE_SYSTRAY_UNITY_BACKEND
|
|
AppIndicator *unityIndicator;
|
|
GtkWidget *unityMenu;
|
|
#endif
|
|
#ifdef ENABLE_SYSTRAY_STATUSNOTIFIER_BACKEND
|
|
StatusNotifier* statusNotifier;
|
|
GtkWidget* snMenu;
|
|
#endif
|
|
#ifdef ENABLE_SYSTRAY_GTK_BACKEND
|
|
GtkStatusIcon* gtkIcon;
|
|
GtkWidget* gtkMenu;
|
|
#endif
|
|
};
|
|
|
|
#endif // SYSTEMTRAYICON_H
|