6#ifndef QCOCOASYSTEMTRAYICON_P_H
7#define QCOCOASYSTEMTRAYICON_P_H
9#include <QtCore/qglobal.h>
10#include <QtGui/qtguiglobal.h>
12#if QT_CONFIG(systemtrayicon)
14#include <QtCore/qstring.h>
15#include <QtCore/private/qcore_mac_p.h>
17#include <QtGui/qpa/qplatformsystemtrayicon.h>
19#include "qcocoamenu.h"
21QT_FORWARD_DECLARE_CLASS(QCocoaSystemTrayIcon);
23QT_DECLARE_NAMESPACED_OBJC_INTERFACE(QStatusItemDelegate, NSObject <NSUserNotificationCenterDelegate>
24- (instancetype)initWithSysTray:(QCocoaSystemTrayIcon *)platformSystemTray;
25@property (nonatomic, assign) QCocoaSystemTrayIcon *platformSystemTray;
28Q_FORWARD_DECLARE_OBJC_CLASS(NSStatusItem);
32class Q_GUI_EXPORT QCocoaSystemTrayIcon :
public QPlatformSystemTrayIcon
35 QCocoaSystemTrayIcon() {}
38 void cleanup() override;
39 void updateIcon(
const QIcon &icon) override;
40 void updateToolTip(
const QString &toolTip) override;
41 void updateMenu(QPlatformMenu *menu) override;
42 QRect geometry()
const override;
43 void showMessage(
const QString &title,
const QString &msg,
44 const QIcon& icon, MessageIcon iconType,
int msecs) override;
46 bool isSystemTrayAvailable()
const override;
47 bool supportsMessages()
const override;
52 NSStatusItem *m_statusItem =
nullptr;
53 QStatusItemDelegate *m_delegate =
nullptr;
static bool heightCompareFunction(QSize a, QSize b)
#define NSUserNotificationCenter
static QList< QSize > sortByHeight(const QList< QSize > &sizes)
#define NSUserNotification