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

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

dinputdevicetablet.h中定义了InputDevices中的Tablet设备, 既包括数位板也包括数位笔.

@class Dtk::Device::DInputDeviceTablet dinputdevicetablet.h
@brief 数位板类

该设备包括数位板和数位笔, 当数位笔功能特化之后可能会发生改变

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

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

@property Dtk::Device::DInputDeviceTablet::cursorMode
@brief 是否是光标模式

默认情况下, 数位板非光标模式, 采用的是绝对坐标, 当cursorMode为true的时候, 也就是采用光标模式的时候, 会采用相对坐标, 此时数位笔的行为和手指在触摸板上的行为类似.

@fn bool DInputDeviceTablet::cursorMode() const
@brief 获取数位笔是否处于光标模式
@sa [cursorMode](@ref Dtk::InputDevices::DInputDeviceTablet::cursorMode)

@fn void DInputDeviceTablet::setCursorMode(bool cursorMode)
@brief 设置数位笔是否为光标模式
@sa [cursorMode](@ref Dtk::InputDevices::DInputDeviceTablet::cursorMode)

@fn void DInputDeviceTablet::cursorModeChanged(bool cursorMode)
@brief 光标模式改变信号
@sa [cursorMode](@ref Dtk::InputDevices::DInputDeviceTablet::cursorMode)

@fn DExpected<void> DInputDeviceTablet::reset() override
@brief 重置数位板/数位笔的所有设置

该函数会影响所有的数位板/数位笔.

*/
