/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Source file was org.freedesktop.Notifications.xml
 *
 * qdbusxml2cpp is Copyright (C) The Qt Company Ltd. and other contributors.
 *
 * This is an auto-generated file.
 * This file may have been hand-edited. Look for HAND-EDIT comments
 * before re-generating it.
 */

#ifndef DBUS_NOTIFICATIONS_H
#define DBUS_NOTIFICATIONS_H

#include <QtCore/QObject>
#include <QtDBus/QtDBus>
#include "server.hpp"
#include <QtCore/qcontainerfwd.h>

/*
 * Adaptor class for interface org.freedesktop.Notifications
 */
class DBusNotificationServer: public QDBusAbstractAdaptor
{
    Q_OBJECT
    Q_CLASSINFO("D-Bus Interface", "org.freedesktop.Notifications")
    Q_CLASSINFO("D-Bus Introspection", ""
"  <interface name=\"org.freedesktop.Notifications\">\n"
"    <method name=\"GetCapabilities\">\n"
"      <arg direction=\"out\" type=\"as\" name=\"capabilities\"/>\n"
"    </method>\n"
"    <method name=\"Notify\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"appName\"/>\n"
"      <arg direction=\"in\" type=\"u\" name=\"replacesId\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"appIcon\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"summary\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"body\"/>\n"
"      <arg direction=\"in\" type=\"as\" name=\"actions\"/>\n"
"      <arg direction=\"in\" type=\"a{sv}\" name=\"hints\"/>\n"
"      <arg direction=\"in\" type=\"i\" name=\"expireTimeout\"/>\n"
"      <arg direction=\"out\" type=\"u\" name=\"id\"/>\n"
"      <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName.In6\"/>\n"
"    </method>\n"
"    <method name=\"CloseNotification\">\n"
"      <arg direction=\"in\" type=\"u\" name=\"id\"/>\n"
"    </method>\n"
"    <method name=\"GetServerInformation\">\n"
"      <arg direction=\"out\" type=\"s\" name=\"name\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"vendor\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"version\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"specVersion\"/>\n"
"    </method>\n"
"    <signal name=\"NotificationClosed\">\n"
"      <arg direction=\"out\" type=\"u\" name=\"id\"/>\n"
"      <arg direction=\"out\" type=\"u\" name=\"reason\"/>\n"
"    </signal>\n"
"    <signal name=\"ActionInvoked\">\n"
"      <arg direction=\"out\" type=\"u\" name=\"id\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"actionKey\"/>\n"
"    </signal>\n"
"    <signal name=\"NotificationReplied\">\n"
"      <arg direction=\"out\" type=\"u\" name=\"id\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"replyText\"/>\n"
"    </signal>\n"
"    <signal name=\"ActivationToken\">\n"
"      <arg direction=\"out\" type=\"u\" name=\"id\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"activationToken\"/>\n"
"    </signal>\n"
"  </interface>\n"
        "")
public:
    DBusNotificationServer(qs::service::notifications::NotificationServer *parent);
    ~DBusNotificationServer() override;

    inline qs::service::notifications::NotificationServer *parent() const
    { return static_cast<qs::service::notifications::NotificationServer *>(QObject::parent()); }

public: // PROPERTIES
public Q_SLOTS: // METHODS
    void CloseNotification(uint id);
    QStringList GetCapabilities();
    QString GetServerInformation(QString &vendor, QString &version, QString &specVersion);
    uint Notify(const QString &appName, uint replacesId, const QString &appIcon, const QString &summary, const QString &body, const QStringList &actions, const QVariantMap &hints, int expireTimeout);
Q_SIGNALS: // SIGNALS
    void ActionInvoked(uint id, const QString &actionKey);
    void ActivationToken(uint id, const QString &activationToken);
    void NotificationClosed(uint id, uint reason);
    void NotificationReplied(uint id, const QString &replyText);
};

#endif
