// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later

/*!
@~chinese
@file dinputdevicemouse.h
@ingroup inputdevices

@class Dtk::Device::DInputDeviceMouse dinputdevicemouse.h
@brief 鼠标设备类

@fn DInputDeviceMouse::DInputDeviceMouse(QObject *parent = nullptr)
@brief 空参构造函数和指定父对象的构造函数 
@param[in] parent 父对象, 用于在对象树中管理生命周期

该函数仅开放给子类和DInputDeviceManager使用

@fn DInputDeviceMouse::DInputDeviceMouse(const DeviceInfo &info, bool enabled = true)
@brief 设备信息初始化构造函数
@param[in] info 设备信息
@param[in] enabled 设备是否开启

该函数仅开放给子类和DInputDeviceManager使用

@fn bool DInputDeviceMouse::naturalScroll() const
@brief 判断是否开启自然滚动模式
@sa naturalScroll

@fn bool DInputDeviceMouse::middleButtonEmulation() const
@brief 判断是否开启中键模拟
@sa middleButtonEmulation

@fn void DInputDeviceMouse::setNaturalScroll(bool naturalScroll)
@brief 设置开启或关闭自然滚动模式
@sa naturalScroll

@fn void DInputDeviceMouse::setMiddleButtonEmulation(bool middleButtonEmulation)
@brief 设置开启或关闭中键模拟
@sa middleButtonEmulation

@fn void DInputDeviceMouse::naturalScrollChanged(bool naturalScroll)
@brief 自然滚动模式改变信号
@sa naturalScroll

@fn void DInputDeviceMouse::middleButtonEmulationChanged(bool emulation)
@brief 中键模拟开关信号
@sa middleButtonEmulation

@fn DExpected<void> DInputDeviceMouse::reset()
@brief 重置所有设置

该函数会重置鼠标相关的所有设置, 目前版本会重置所有鼠标设备的设置.

@property Dtk::Device::DInputDeviceMouse::naturalScroll
@brief 是否自然滚动

自然滚动指的是滚轮向上滚动, 屏幕向下滑动, 反之.

@property Dtk::Device::DInputDeviceMouse::middleButtonEmulation
@brief 中键模拟

中键模拟对于鼠标而言就是是否开启中键

*/
