/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp -N -p fcitxqtinputcontextproxy -c FcitxQtInputContextProxy interfaces/org.fcitx.Fcitx.InputContext.xml -i fcitxqtformattedpreedit.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 FCITXQTINPUTCONTEXTPROXY_H
#define FCITXQTINPUTCONTEXTPROXY_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 "fcitxqtformattedpreedit.h"
#include "fcitxqtdbusaddons_export.h"

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

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

    ~FcitxQtInputContextProxy();

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

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

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

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

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

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

    inline QDBusPendingReply<int> ProcessKeyEvent(uint keyval, uint keycode, uint state, int type, uint time)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(keyval) << QVariant::fromValue(keycode) << QVariant::fromValue(state) << QVariant::fromValue(type) << QVariant::fromValue(time);
        return asyncCallWithArgumentList(QStringLiteral("ProcessKeyEvent"), argumentList);
    }

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

    inline QDBusPendingReply<> SetCapacity(uint caps)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(caps);
        return asyncCallWithArgumentList(QStringLiteral("SetCapacity"), argumentList);
    }

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

    inline QDBusPendingReply<> SetCursorRect(int x, int y, int w, int h)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(x) << QVariant::fromValue(y) << QVariant::fromValue(w) << QVariant::fromValue(h);
        return asyncCallWithArgumentList(QStringLiteral("SetCursorRect"), argumentList);
    }

    inline QDBusPendingReply<> SetSurroundingText(const QString &text, uint cursor, uint anchor)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(text) << QVariant::fromValue(cursor) << QVariant::fromValue(anchor);
        return asyncCallWithArgumentList(QStringLiteral("SetSurroundingText"), argumentList);
    }

    inline QDBusPendingReply<> SetSurroundingTextPosition(uint cursor, uint anchor)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(cursor) << QVariant::fromValue(anchor);
        return asyncCallWithArgumentList(QStringLiteral("SetSurroundingTextPosition"), argumentList);
    }

Q_SIGNALS: // SIGNALS
    void CloseIM();
    void CommitString(const QString &str);
    void CurrentIM(const QString &name, const QString &uniqueName, const QString &langCode);
    void DeleteSurroundingText(int offset, uint nchar);
    void EnableIM();
    void ForwardKey(uint keyval, uint state, int type);
    void UpdateClientSideUI(const QString &auxup, const QString &auxdown, const QString &preedit, const QString &candidateword, const QString &imname, int cursorpos);
    void UpdateFormattedPreedit(FcitxQtFormattedPreeditList str, int cursorpos);
};

#endif
