DtkWidget 5.6.0.2
DTK Widget module
dregionmonitor.h
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DREGIONMONITOR_H_DWIDGET
6#define DREGIONMONITOR_H_DWIDGET
7
8#include <DObject>
9#include <dtkwidget_global.h>
10
11#include <QObject>
12
13DWIDGET_BEGIN_NAMESPACE
14
15class DRegionMonitorPrivate;
16class D_DECL_DEPRECATED_X("Use libdtkgui") DRegionMonitor : public QObject
17 , public DTK_CORE_NAMESPACE::DObject
18{
19 Q_OBJECT
20 D_DECLARE_PRIVATE(DRegionMonitor)
22 Q_PROPERTY(CoordinateType coordinateType READ coordinateType WRITE setCoordinateType NOTIFY coordinateTypeChanged)
23
24public:
25 explicit DRegionMonitor(QObject *parent = nullptr);
26
27 enum WatchedFlags {
28 Button_Left = 1,
29 Button_Right = 3,
30 };
31
32 enum CoordinateType {
33 ScaleRatio,
34 Original
35 };
36 Q_ENUM(CoordinateType)
37
38 bool registered() const;
39 QRegion watchedRegion() const;
40 CoordinateType coordinateType() const;
41
43 void buttonPress(const QPoint &p, const int flag) const;
44 void buttonRelease(const QPoint &p, const int flag) const;
45 void cursorMove(const QPoint &p) const;
46 void keyPress(const QString &keyname) const;
47 void keyRelease(const QString &keyname) const;
48 void coordinateTypeChanged(CoordinateType type) const;
49
50public Q_SLOTS:
51 void registerRegion();
52 inline void registerRegion(const QRegion &region)
53 {
54 setWatchedRegion(region);
55 registerRegion();
56 }
57 void unregisterRegion();
58 void setWatchedRegion(const QRegion &region);
59 void setCoordinateType(CoordinateType type);
60};
61
62DWIDGET_END_NAMESPACE
63
64#endif // DREGIONMONITOR_H_DWIDGET
Definition: dregionmonitor.h:18
Q_DISABLE_COPY(Class)
Q_ENUM(...)
Q_PROPERTY(...)
Q_SIGNALSQ_SIGNALS
Q_SLOTSQ_SLOTS