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

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

dinputdevicetouchpad.h中定义了InputDevices中的TouchPad设备

@class Dtk::Device::DInputDeviceTouchPad dinputdevicetouchpad.h
@brief 触摸板设备

触摸板设备包括很多触摸板下方的实体按键.

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

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

@property Dtk::Device::DInputDeviceTouchPad::disableWhileTyping
@brief 是否在打字时禁用

如果为true, 在键盘打字的时候, 会关闭触摸板, 触摸板的enabled属性为false. 当前版本, 该设置会影响所有的触摸板设备.

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

对于触摸板而言, 在开启自然滚动时, 双指向下拉动, 屏幕向上滑动, 反之. 其带给用户的感觉为直接使用双指控制屏幕, 故称自然滚动.

@property Dtk::Device::DInputDeviceTouchPad::tapToClick
@brief 轻触时点击

如果为true, 在轻触触摸板的时候会触发点击事件.

@fn bool DInputDeviceTouchPad::disableWhileTyping() const
@brief 获取是否在打字时禁用
@sa [disableWhileTyping](@ref Dtk::InputDevices::DInputDeviceTouchPad::disableWhileTyping)

@fn bool DInputDeviceTouchPad::naturalScroll() const
@brief 获取是否自然滚动
@sa [naturalScroll](@ref Dtk::InputDevices::DInputDeviceTouchPad::naturalScroll)

@fn bool DInputDeviceTouchPad::tapToClick() const
@brief 获取是否轻触时点击
@sa [tapToClick](@ref Dtk::InputDevices::DInputDeviceTouchPad::tapToClick)

@fn void DInputDeviceTouchPad::setDisableWhileTyping(bool disableWhileTyping)
@brief 设置是否在打字时禁用
@sa [disableWhileTyping](@ref Dtk::InputDevices::DInputDeviceTouchPad::disableWhileTyping)

@fn void DInputDeviceTouchPad::setNaturalScroll(bool naturalScroll)
@brief 设置是否自然滚动
@sa [naturalScroll](@ref Dtk::InputDevices::DInputDeviceTouchPad::naturalScroll)

@fn void DInputDeviceTouchPad::setTapToClick(bool tapToClick)
@brief 设置轻触时点击
@sa [tapToClick](@ref Dtk::InputDevices::DInputDeviceTouchPad::tapToClick)

@fn void DInputDeviceTouchPad::disableWhileTypingChanged(bool disableWhileTyping)
@brief 是否在打字时禁用改变信号
@sa [disableWhileTyping](@ref Dtk::InputDevices::DInputDeviceTouchPad::disableWhileTyping)

@fn void DInputDeviceTouchPad::naturalScrollChanged(bool naturalScroll)
@brief 是否自然滚动改变信号
@sa [naturalScroll](@ref Dtk::InputDevices::DInputDeviceTouchPad::naturalScroll)

@fn void DInputDeviceTouchPad::tapToClickChanged(bool tapToClick)
@brief 轻触时点击改变信号
@sa [tapToClick](@ref Dtk::InputDevices::DInputDeviceTouchPad::tapToClick)

@fn DExpected<void> DInputDeviceTouchPad::reset() override
@brief 重置触摸板的所有设置
@return 空DExpected对象, 无效表示操作失败

该函数会重置所有触摸板的设置.

@fn DExpected<void> DInputDeviceTouchPad::enable(bool enabled = true)
@brief 设置enabled属性
@param[in] enabled 设备是否启用, 默认值为true
@sa [enabled](@ref Dtk::InputDevices::DInputDevice::enabled)

*/
