#pragma once #include "lts_notification_export.h" #include #include #include #include #include class QToolButton; namespace LtsSession { class LtsSession; } namespace LtsNotification { class LtsNotificationWidget; class LTSNOTIFICATION_EXPORT LtsNotificationController : public QObject { Q_OBJECT public: explicit LtsNotificationController(const QString &identifier); ~LtsNotificationController(); QToolButton *createWidget(); void setIcon(const QIcon& icon); void setAction(const std::function &action); void setToolTip(const QString &toolTip); void setCount(const int count); void setBackground(const int r, const int g, const int b); const QString &identifier() const { return m_identifier; } const QString &tooltip() const { return m_toolTip; } void setEnabled(bool enable); private: QList m_notiList; QIcon m_icon; std::function m_action; QString m_toolTip; int m_count; bool m_enable{true}; QString m_identifier; void setAllIcons(); QIcon modifyIcon(const QIcon &icon); private slots: void slotNotiWidgetDestroyed(QObject *obj); }; }