/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp -N -p qibusinputcontextproxy -c QIBusInputContextProxy interfaces/org.freedesktop.IBus.InputContext.xml
 *
 * qdbusxml2cpp is Copyright (C) 2023 The Qt Company Ltd and other contributors.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef QIBUSINPUTCONTEXTPROXY_H
#define QIBUSINPUTCONTEXTPROXY_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>

// Added for QIBusPropTypeClientCommitPreedit and QIBusPropTypeContentType
#include "qibustypes.h"

/*
 * Proxy class for interface org.freedesktop.IBus.InputContext
 */
class QIBusInputContextProxy: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.freedesktop.IBus.InputContext"; }

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

    ~QIBusInputContextProxy();

    Q_PROPERTY(QIBusPropTypeClientCommitPreedit ClientCommitPreedit READ clientCommitPreedit WRITE setClientCommitPreedit)
    inline QIBusPropTypeClientCommitPreedit clientCommitPreedit() const
    { return qvariant_cast< QIBusPropTypeClientCommitPreedit >(property("ClientCommitPreedit")); }
    inline void setClientCommitPreedit(const QIBusPropTypeClientCommitPreedit &value)
    { setProperty("ClientCommitPreedit", QVariant::fromValue(value)); }

    Q_PROPERTY(QIBusPropTypeContentType ContentType READ contentType WRITE setContentType)
    inline QIBusPropTypeContentType contentType() const
    { return qvariant_cast< QIBusPropTypeContentType >(property("ContentType")); }
    inline void setContentType(const QIBusPropTypeContentType &value)
    { setProperty("ContentType", QVariant::fromValue(value)); }

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

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

    inline QDBusPendingReply<> Enable()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("Enable"), 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<QDBusVariant> GetEngine()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("GetEngine"), argumentList);
    }

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

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

    inline QDBusPendingReply<> PropertyActivate(const QString &name, int state)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(name) << QVariant::fromValue(state);
        return asyncCallWithArgumentList(QStringLiteral("PropertyActivate"), argumentList);
    }

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

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

    inline QDBusPendingReply<> SetCursorLocation(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("SetCursorLocation"), argumentList);
    }

    inline QDBusPendingReply<> SetCursorLocationRelative(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("SetCursorLocationRelative"), argumentList);
    }

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

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

Q_SIGNALS: // SIGNALS
    void CommitText(const QDBusVariant &text);
    void CursorDownLookupTable();
    void CursorUpLookupTable();
    void DeleteSurroundingText(int offset, uint n_chars);
    void Disabled();
    void Enabled();
    void ForwardKeyEvent(uint keyval, uint keycode, uint state);
    void HideAuxiliaryText();
    void HideLookupTable();
    void HidePreeditText();
    void PageDownLookupTable();
    void PageUpLookupTable();
    void RegisterProperties(const QDBusVariant &props);
    void RequireSurroundingText();
    void ShowAuxiliaryText();
    void ShowLookupTable();
    void ShowPreeditText();
    void UpdateAuxiliaryText(const QDBusVariant &text, bool visible);
    void UpdateLookupTable(const QDBusVariant &table, bool visible);
    void UpdatePreeditText(const QDBusVariant &text, uint cursor_pos, bool visible);
    void UpdatePreeditTextWithMode(const QDBusVariant &text, uint cursor_pos, bool visible, uint mode);
    void UpdateProperty(const QDBusVariant &prop);
};

#endif
