File indexing completed on 2024-06-23 04:42:09
0001 /* 0002 SnoreNotify is a Notification Framework based on Qt 0003 Copyright (C) 2013-2015 Hannah von Reth <vonreth@kde.org> 0004 0005 SnoreNotify is free software: you can redistribute it and/or modify 0006 it under the terms of the GNU Lesser General Public License as published by 0007 the Free Software Foundation, either version 3 of the License, or 0008 (at your option) any later version. 0009 0010 SnoreNotify is distributed in the hope that it will be useful, 0011 but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0013 GNU Lesser General Public License for more details. 0014 0015 You should have received a copy of the GNU Lesser General Public License 0016 along with SnoreNotify. If not, see <http://www.gnu.org/licenses/>. 0017 */ 0018 0019 #ifndef FREEDESKTOPNOTIFICATION_FRONTEND_H 0020 #define FREEDESKTOPNOTIFICATION_FRONTEND_H 0021 #include "libsnore/plugins/snorefrontend.h" 0022 #include "libsnore/application.h" 0023 0024 class NotificationsAdaptor; 0025 0026 class FreedesktopFrontend : public Snore::SnoreFrontend 0027 { 0028 Q_OBJECT 0029 Q_INTERFACES(Snore::SnoreFrontend) 0030 Q_PLUGIN_METADATA(IID "org.Snore.NotificationFrontend/1.0" FILE "snore_plugin.json") 0031 public: 0032 FreedesktopFrontend(); 0033 ~FreedesktopFrontend() = default; 0034 0035 uint Notify(const QString &app_name, uint replaces_id, const QString &app_icon, const QString &summary, const QString &body, const QStringList &actions, const QVariantMap &hints, int timeout); 0036 void CloseNotification(uint id); 0037 0038 QStringList GetCapabilities(); 0039 QString GetServerInformation(QString &vendor, QString &version, QString &specVersion); 0040 0041 Q_SIGNALS: 0042 void NotificationClosed(uint id, uint reason); 0043 void ActionInvoked(uint id, const QString &actionKey); 0044 0045 public Q_SLOTS: 0046 void slotActionInvoked(Snore::Notification notification) override; 0047 void slotNotificationClosed(Snore::Notification notification) override; 0048 0049 private: 0050 Snore::Alert m_alert; 0051 NotificationsAdaptor *m_adaptor; 0052 }; 0053 0054 #endif//FREEDESKTOPNOTIFICATION_FRONTEND_H