/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp -N -p fcitxqtinputmethodproxy -c FcitxQtInputMethodProxy interfaces/org.fcitx.Fcitx.InputMethod.xml -i fcitxqtinputmethoditem.h -i fcitxqtdbusaddons_export.h
 *
 * qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef FCITXQTINPUTMETHODPROXY_H
#define FCITXQTINPUTMETHODPROXY_H

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
#include <QtDBus/QtDBus>
#include "fcitxqtinputmethoditem.h"
#include "fcitxqtdbusaddons_export.h"

/*
 * Proxy class for interface org.fcitx.Fcitx.InputMethod
 */
class FCITXQTDBUSADDONS_EXPORT FcitxQtInputMethodProxy: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.fcitx.Fcitx.InputMethod"; }

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

    ~FcitxQtInputMethodProxy();

    Q_PROPERTY(QString CurrentIM READ currentIM WRITE setCurrentIM)
    inline QString currentIM() const
    { return qvariant_cast< QString >(property("CurrentIM")); }
    inline void setCurrentIM(const QString &value)
    { setProperty("CurrentIM", QVariant::fromValue(value)); }

    Q_PROPERTY(FcitxQtInputMethodItemList IMList READ iMList WRITE setIMList)
    inline FcitxQtInputMethodItemList iMList() const
    { return qvariant_cast< FcitxQtInputMethodItemList >(property("IMList")); }
    inline void setIMList(FcitxQtInputMethodItemList value)
    { setProperty("IMList", QVariant::fromValue(value)); }

public Q_SLOTS: // METHODS
    inline QDBusPendingReply<> ActivateIM()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("ActivateIM"), argumentList);
    }

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

    inline QDBusPendingReply<> ConfigureAddon(const QString &addon)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(addon);
        return asyncCallWithArgumentList(QStringLiteral("ConfigureAddon"), argumentList);
    }

    inline QDBusPendingReply<> ConfigureIM(const QString &im)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(im);
        return asyncCallWithArgumentList(QStringLiteral("ConfigureIM"), argumentList);
    }

    inline QDBusPendingReply<int, uint, uint, uint, uint> CreateIC()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("CreateIC"), argumentList);
    }
    inline QDBusReply<int> CreateIC(uint &keyval1, uint &state1, uint &keyval2, uint &state2)
    {
        QList<QVariant> argumentList;
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("CreateIC"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 5) {
            keyval1 = qdbus_cast<uint>(reply.arguments().at(1));
            state1 = qdbus_cast<uint>(reply.arguments().at(2));
            keyval2 = qdbus_cast<uint>(reply.arguments().at(3));
            state2 = qdbus_cast<uint>(reply.arguments().at(4));
        }
        return reply;
    }

    inline QDBusPendingReply<int, bool, uint, uint, uint, uint> CreateICv2(const QString &appname)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(appname);
        return asyncCallWithArgumentList(QStringLiteral("CreateICv2"), argumentList);
    }
    inline QDBusReply<int> CreateICv2(const QString &appname, bool &enable, uint &keyval1, uint &state1, uint &keyval2, uint &state2)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(appname);
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("CreateICv2"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 6) {
            enable = qdbus_cast<bool>(reply.arguments().at(1));
            keyval1 = qdbus_cast<uint>(reply.arguments().at(2));
            state1 = qdbus_cast<uint>(reply.arguments().at(3));
            keyval2 = qdbus_cast<uint>(reply.arguments().at(4));
            state2 = qdbus_cast<uint>(reply.arguments().at(5));
        }
        return reply;
    }

    inline QDBusPendingReply<int, bool, uint, uint, uint, uint> CreateICv3(const QString &appname, int pid)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(appname) << QVariant::fromValue(pid);
        return asyncCallWithArgumentList(QStringLiteral("CreateICv3"), argumentList);
    }
    inline QDBusReply<int> CreateICv3(const QString &appname, int pid, bool &enable, uint &keyval1, uint &state1, uint &keyval2, uint &state2)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(appname) << QVariant::fromValue(pid);
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("CreateICv3"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 6) {
            enable = qdbus_cast<bool>(reply.arguments().at(1));
            keyval1 = qdbus_cast<uint>(reply.arguments().at(2));
            state1 = qdbus_cast<uint>(reply.arguments().at(3));
            keyval2 = qdbus_cast<uint>(reply.arguments().at(4));
            state2 = qdbus_cast<uint>(reply.arguments().at(5));
        }
        return reply;
    }

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

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

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

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

    inline QDBusPendingReply<QString> GetIMAddon(const QString &im)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(im);
        return asyncCallWithArgumentList(QStringLiteral("GetIMAddon"), argumentList);
    }

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

    inline QDBusPendingReply<> ReloadAddonConfig(const QString &addon)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(addon);
        return asyncCallWithArgumentList(QStringLiteral("ReloadAddonConfig"), argumentList);
    }

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

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

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

    inline QDBusPendingReply<> SetCurrentIM(const QString &im)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(im);
        return asyncCallWithArgumentList(QStringLiteral("SetCurrentIM"), argumentList);
    }

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

Q_SIGNALS: // SIGNALS
};

#endif
