/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -m -p display1monitorinterface /build/deepin-clipboard/src/dde-clipboard/dbus/org.deepin.dde.Display1.Monitor.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 DISPLAY1MONITORINTERFACE_H
#define DISPLAY1MONITORINTERFACE_H

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

#include <DDBusExtendedAbstractInterface>
#include <QtDBus/QtDBus>

#include "types/resolution.h"
#include "types/resolutionlist.h"
#include "types/reflectlist.h"
#include "types/rotationlist.h"

/*
 * Proxy class for interface org.deepin.dde.Display1.Monitor
 */
class __OrgDeepinDdeDisplay1MonitorInterfacePrivate;
class __OrgDeepinDdeDisplay1MonitorInterface : public DTK_CORE_NAMESPACE::DDBusExtendedAbstractInterface
{
    Q_OBJECT

public:
    static inline const char *staticInterfaceName()
    { return "org.deepin.dde.Display1.Monitor"; }

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

    ~__OrgDeepinDdeDisplay1MonitorInterface();

    Q_PROPERTY(QStringList AvailableFillModes READ availableFillModes NOTIFY AvailableFillModesChanged)
    QStringList availableFillModes();

    Q_PROPERTY(Resolution BestMode READ bestMode NOTIFY BestModeChanged)
    Resolution bestMode();

    Q_PROPERTY(bool Connected READ connected NOTIFY ConnectedChanged)
    bool connected();

    Q_PROPERTY(QString CurrentFillMode READ currentFillMode WRITE setCurrentFillMode NOTIFY CurrentFillModeChanged)
    QString currentFillMode();
    void setCurrentFillMode(const QString &value);

    Q_PROPERTY(Resolution CurrentMode READ currentMode NOTIFY CurrentModeChanged)
    Resolution currentMode();

    Q_PROPERTY(uchar CurrentRotateMode READ currentRotateMode NOTIFY CurrentRotateModeChanged)
    uchar currentRotateMode();

    Q_PROPERTY(bool Enabled READ enabled NOTIFY EnabledChanged)
    bool enabled();

    Q_PROPERTY(ushort Height READ height NOTIFY HeightChanged)
    ushort height();

    Q_PROPERTY(QString Manufacturer READ manufacturer NOTIFY ManufacturerChanged)
    QString manufacturer();

    Q_PROPERTY(uint MmHeight READ mmHeight NOTIFY MmHeightChanged)
    uint mmHeight();

    Q_PROPERTY(uint MmWidth READ mmWidth NOTIFY MmWidthChanged)
    uint mmWidth();

    Q_PROPERTY(QString Model READ model NOTIFY ModelChanged)
    QString model();

    Q_PROPERTY(ResolutionList Modes READ modes NOTIFY ModesChanged)
    ResolutionList modes();

    Q_PROPERTY(QString Name READ name NOTIFY NameChanged)
    QString name();

    Q_PROPERTY(ushort Reflect READ reflect NOTIFY ReflectChanged)
    ushort reflect();

    Q_PROPERTY(ReflectList Reflects READ reflects NOTIFY ReflectsChanged)
    ReflectList reflects();

    Q_PROPERTY(double RefreshRate READ refreshRate NOTIFY RefreshRateChanged)
    double refreshRate();

    Q_PROPERTY(ushort Rotation READ rotation NOTIFY RotationChanged)
    ushort rotation();

    Q_PROPERTY(RotationList Rotations READ rotations NOTIFY RotationsChanged)
    RotationList rotations();

    Q_PROPERTY(ushort Width READ width NOTIFY WidthChanged)
    ushort width();

    Q_PROPERTY(short X READ x NOTIFY XChanged)
    short x();

    Q_PROPERTY(short Y READ y NOTIFY YChanged)
    short y();

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

    inline void EnableQueued(bool in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("Enable"), argumentList);
    }


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

    inline void SetModeQueued(uint in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("SetMode"), argumentList);
    }


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

    inline void SetModeBySizeQueued(ushort in0, ushort in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);

        CallQueued(QStringLiteral("SetModeBySize"), argumentList);
    }


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

    inline void SetPositionQueued(short in0, short in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);

        CallQueued(QStringLiteral("SetPosition"), argumentList);
    }


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

    inline void SetReflectQueued(ushort in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("SetReflect"), argumentList);
    }


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

    inline void SetRotationQueued(ushort in0)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0);

        CallQueued(QStringLiteral("SetRotation"), argumentList);
    }



Q_SIGNALS: // SIGNALS
    // begin property changed signals
    void AvailableFillModesChanged(const QStringList & value) const;
    void BestModeChanged(Resolution  value) const;
    void ConnectedChanged(bool  value) const;
    void CurrentFillModeChanged(const QString & value) const;
    void CurrentModeChanged(Resolution  value) const;
    void CurrentRotateModeChanged(uchar  value) const;
    void EnabledChanged(bool  value) const;
    void HeightChanged(ushort  value) const;
    void ManufacturerChanged(const QString & value) const;
    void MmHeightChanged(uint  value) const;
    void MmWidthChanged(uint  value) const;
    void ModelChanged(const QString & value) const;
    void ModesChanged(ResolutionList  value) const;
    void NameChanged(const QString & value) const;
    void ReflectChanged(ushort  value) const;
    void ReflectsChanged(ReflectList  value) const;
    void RefreshRateChanged(double  value) const;
    void RotationChanged(ushort  value) const;
    void RotationsChanged(RotationList  value) const;
    void WidthChanged(ushort  value) const;
    void XChanged(short  value) const;
    void YChanged(short  value) const;

public Q_SLOTS:
    void CallQueued(const QString &callName, const QList<QVariant> &args);

private Q_SLOTS:
    void onPendingCallFinished(QDBusPendingCallWatcher *w);
    void onPropertyChanged(const QString &propName, const QVariant &value);

private:
    __OrgDeepinDdeDisplay1MonitorInterfacePrivate *d_ptr;
};

namespace org {
  namespace deepin {
    namespace dde {
      namespace display1 {
        typedef ::__OrgDeepinDdeDisplay1MonitorInterface Monitor;
      }
    }
  }
}
#endif
