/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -c Keybinding -p generated/com_deepin_daemon_keybinding /build/deepin-qt-dbus-factory/src/dde-qt-dbus-factory-0.2.1/xml/com.deepin.daemon.Keybinding.xml
 *
 * qdbusxml2cpp-fix is Copyright (C) 2016 Deepin Technology Co., Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef COM_DEEPIN_DAEMON_KEYBINDING_H
#define COM_DEEPIN_DAEMON_KEYBINDING_H

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>

#include <DBusExtendedAbstractInterface>
#include <QtDBus/QtDBus>


/*
 * Proxy class for interface com.deepin.daemon.Keybinding
 */
class __Keybinding : public DBusExtendedAbstractInterface
{
    Q_OBJECT

public:
    static inline const char *staticInterfaceName()
    { return "com.deepin.daemon.Keybinding"; }

public:
    explicit __Keybinding(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);

    ~__Keybinding();

    Q_PROPERTY(int NumLockState READ numLockState NOTIFY NumLockStateChanged)
    inline int numLockState()
    { return qvariant_cast< int >(internalPropGet("NumLockState", &m_NumLockState)); }

    Q_PROPERTY(uint ShortcutSwitchLayout READ shortcutSwitchLayout WRITE setShortcutSwitchLayout NOTIFY ShortcutSwitchLayoutChanged)
    inline uint shortcutSwitchLayout()
    { return qvariant_cast< uint >(internalPropGet("ShortcutSwitchLayout", &m_ShortcutSwitchLayout)); }
    inline void setShortcutSwitchLayout(uint value)
    { internalPropSet("ShortcutSwitchLayout", QVariant::fromValue(value), &m_ShortcutSwitchLayout); }

public Q_SLOTS: // METHODS
    inline QDBusPendingReply<QString, bool> Add(const QString &in0, const QString &in1, const QString &in2)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2);
        return asyncCallWithArgumentList(QStringLiteral("Add"), argumentList);
    }
    inline QDBusReply<QString> Add(const QString &in0, const QString &in1, const QString &in2, bool &out1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2);
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("Add"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) {
            out1 = qdbus_cast<bool>(reply.arguments().at(1));
        }
        return reply;
    }

    inline QDBusPendingReply<bool, QString> CheckAvaliable(const QString &in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(QStringLiteral("CheckAvaliable"), argumentList);
    }
    inline QDBusReply<bool> CheckAvaliable(const QString &in0, QString &out1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("CheckAvaliable"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) {
            out1 = qdbus_cast<QString>(reply.arguments().at(1));
        }
        return reply;
    }

    inline QDBusPendingReply<> Delete(const QString &in0, int in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
        return asyncCallWithArgumentList(QStringLiteral("Delete"), argumentList);
    }

    inline QDBusPendingReply<> Disable(const QString &in0, int in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
        return asyncCallWithArgumentList(QStringLiteral("Disable"), argumentList);
    }

    inline QDBusPendingReply<> GrabScreen()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("GrabScreen"), argumentList);
    }

    inline QDBusPendingReply<QString> List()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("List"), argumentList);
    }

    inline QDBusPendingReply<bool, QString> ModifiedAccel(const QString &in0, int in1, const QString &in2, bool in3)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2) << QVariant::fromValue(in3);
        return asyncCallWithArgumentList(QStringLiteral("ModifiedAccel"), argumentList);
    }
    inline QDBusReply<bool> ModifiedAccel(const QString &in0, int in1, const QString &in2, bool in3, QString &out1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2) << QVariant::fromValue(in3);
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("ModifiedAccel"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) {
            out1 = qdbus_cast<QString>(reply.arguments().at(1));
        }
        return reply;
    }

    inline QDBusPendingReply<> ModifyCustomShortcut(const QString &in0, const QString &in1, const QString &in2, const QString &in3)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2) << QVariant::fromValue(in3);
        return asyncCallWithArgumentList(QStringLiteral("ModifyCustomShortcut"), argumentList);
    }

    inline QDBusPendingReply<QString> Query(const QString &in0, int in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
        return asyncCallWithArgumentList(QStringLiteral("Query"), argumentList);
    }

    inline QDBusPendingReply<> Reset()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("Reset"), argumentList);
    }

    inline QDBusPendingReply<> SetNumLockState(int in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);
        return asyncCallWithArgumentList(QStringLiteral("SetNumLockState"), argumentList);
    }

Q_SIGNALS: // SIGNALS
    void Added(const QString &in0, int in1);
    void Changed(const QString &in0, int in1);
    void Deleted(const QString &in0, int in1);
    void KeyEvent(bool in0, const QString &in1);
// begin property changed signals
    void NumLockStateChanged(int  value) const;
    void ShortcutSwitchLayoutChanged(uint  value) const;

// begin private slots
private Q_SLOTS:
    void onPropertyChanged(const QString &propName, const QVariant &value);

// begin private member vaiables
private:
    int m_NumLockState;
    uint m_ShortcutSwitchLayout;
};

namespace com {
  namespace deepin {
    namespace daemon {
      typedef ::__Keybinding Keybinding;
    }
  }
}
#endif
