/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -c Mouse -p generated/com_deepin_daemon_inputdevice_mouse /build/deepin-qt-dbus-factory/src/dde-qt-dbus-factory-0.2.1/xml/com.deepin.daemon.InputDevice.Mouse.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_INPUTDEVICE_MOUSE_H
#define COM_DEEPIN_DAEMON_INPUTDEVICE_MOUSE_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.InputDevice.Mouse
 */
class __Mouse : public DBusExtendedAbstractInterface
{
    Q_OBJECT

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

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

    ~__Mouse();

    Q_PROPERTY(QString DeviceList READ deviceList NOTIFY DeviceListChanged)
    inline QString deviceList()
    { return qvariant_cast< QString >(internalPropGet("DeviceList", &m_DeviceList)); }

    Q_PROPERTY(bool DisableTpad READ disableTpad WRITE setDisableTpad NOTIFY DisableTpadChanged)
    inline bool disableTpad()
    { return qvariant_cast< bool >(internalPropGet("DisableTpad", &m_DisableTpad)); }
    inline void setDisableTpad(bool value)
    { internalPropSet("DisableTpad", QVariant::fromValue(value), &m_DisableTpad); }

    Q_PROPERTY(int DoubleClick READ doubleClick WRITE setDoubleClick NOTIFY DoubleClickChanged)
    inline int doubleClick()
    { return qvariant_cast< int >(internalPropGet("DoubleClick", &m_DoubleClick)); }
    inline void setDoubleClick(int value)
    { internalPropSet("DoubleClick", QVariant::fromValue(value), &m_DoubleClick); }

    Q_PROPERTY(int DragThreshold READ dragThreshold WRITE setDragThreshold NOTIFY DragThresholdChanged)
    inline int dragThreshold()
    { return qvariant_cast< int >(internalPropGet("DragThreshold", &m_DragThreshold)); }
    inline void setDragThreshold(int value)
    { internalPropSet("DragThreshold", QVariant::fromValue(value), &m_DragThreshold); }

    Q_PROPERTY(bool Exist READ exist NOTIFY ExistChanged)
    inline bool exist()
    { return qvariant_cast< bool >(internalPropGet("Exist", &m_Exist)); }

    Q_PROPERTY(bool LeftHanded READ leftHanded WRITE setLeftHanded NOTIFY LeftHandedChanged)
    inline bool leftHanded()
    { return qvariant_cast< bool >(internalPropGet("LeftHanded", &m_LeftHanded)); }
    inline void setLeftHanded(bool value)
    { internalPropSet("LeftHanded", QVariant::fromValue(value), &m_LeftHanded); }

    Q_PROPERTY(bool MiddleButtonEmulation READ middleButtonEmulation WRITE setMiddleButtonEmulation NOTIFY MiddleButtonEmulationChanged)
    inline bool middleButtonEmulation()
    { return qvariant_cast< bool >(internalPropGet("MiddleButtonEmulation", &m_MiddleButtonEmulation)); }
    inline void setMiddleButtonEmulation(bool value)
    { internalPropSet("MiddleButtonEmulation", QVariant::fromValue(value), &m_MiddleButtonEmulation); }

    Q_PROPERTY(double MotionAcceleration READ motionAcceleration WRITE setMotionAcceleration NOTIFY MotionAccelerationChanged)
    inline double motionAcceleration()
    { return qvariant_cast< double >(internalPropGet("MotionAcceleration", &m_MotionAcceleration)); }
    inline void setMotionAcceleration(double value)
    { internalPropSet("MotionAcceleration", QVariant::fromValue(value), &m_MotionAcceleration); }

    Q_PROPERTY(double MotionScaling READ motionScaling WRITE setMotionScaling NOTIFY MotionScalingChanged)
    inline double motionScaling()
    { return qvariant_cast< double >(internalPropGet("MotionScaling", &m_MotionScaling)); }
    inline void setMotionScaling(double value)
    { internalPropSet("MotionScaling", QVariant::fromValue(value), &m_MotionScaling); }

    Q_PROPERTY(double MotionThreshold READ motionThreshold WRITE setMotionThreshold NOTIFY MotionThresholdChanged)
    inline double motionThreshold()
    { return qvariant_cast< double >(internalPropGet("MotionThreshold", &m_MotionThreshold)); }
    inline void setMotionThreshold(double value)
    { internalPropSet("MotionThreshold", QVariant::fromValue(value), &m_MotionThreshold); }

    Q_PROPERTY(bool NaturalScroll READ naturalScroll WRITE setNaturalScroll NOTIFY NaturalScrollChanged)
    inline bool naturalScroll()
    { return qvariant_cast< bool >(internalPropGet("NaturalScroll", &m_NaturalScroll)); }
    inline void setNaturalScroll(bool value)
    { internalPropSet("NaturalScroll", QVariant::fromValue(value), &m_NaturalScroll); }

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

Q_SIGNALS: // SIGNALS
// begin property changed signals
    void DeviceListChanged(const QString & value) const;
    void DisableTpadChanged(bool  value) const;
    void DoubleClickChanged(int  value) const;
    void DragThresholdChanged(int  value) const;
    void ExistChanged(bool  value) const;
    void LeftHandedChanged(bool  value) const;
    void MiddleButtonEmulationChanged(bool  value) const;
    void MotionAccelerationChanged(double  value) const;
    void MotionScalingChanged(double  value) const;
    void MotionThresholdChanged(double  value) const;
    void NaturalScrollChanged(bool  value) const;

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

// begin private member vaiables
private:
    QString m_DeviceList;
    bool m_DisableTpad;
    int m_DoubleClick;
    int m_DragThreshold;
    bool m_Exist;
    bool m_LeftHanded;
    bool m_MiddleButtonEmulation;
    double m_MotionAcceleration;
    double m_MotionScaling;
    double m_MotionThreshold;
    bool m_NaturalScroll;
};

namespace com {
  namespace deepin {
    namespace daemon {
      namespace inputdevice {
        typedef ::__Mouse Mouse;
      }
    }
  }
}
#endif
