parent
c34b0d9c16
commit
bdae96379f
Binary file not shown.
@ -0,0 +1,26 @@
|
|||||||
|
#include <QtGlobal>
|
||||||
|
|
||||||
|
#include "mousetap.h"
|
||||||
|
#ifdef Q_OS_WIN32
|
||||||
|
#include "winmousetap.h"
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_OSX
|
||||||
|
#include "cocoamousetap.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
MouseTap *MouseTap::s_instance = Q_NULLPTR;
|
||||||
|
MouseTap *MouseTap::getInstance()
|
||||||
|
{
|
||||||
|
if (s_instance == Q_NULLPTR) {
|
||||||
|
#ifdef Q_OS_WIN32
|
||||||
|
s_instance = new WinMouseTap();
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_OSX
|
||||||
|
s_instance = new CocoaMouseTap();
|
||||||
|
#endif
|
||||||
|
#ifdef Q_OS_LINUX
|
||||||
|
Q_ASSERT(false);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
return s_instance;
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
#ifndef MOUSETAP_H
|
||||||
|
#define MOUSETAP_H
|
||||||
|
class QWidget;
|
||||||
|
class MouseTap {
|
||||||
|
public:
|
||||||
|
static MouseTap* getInstance();
|
||||||
|
virtual void initMouseEventTap() = 0;
|
||||||
|
virtual void quitMouseEventTap() = 0;
|
||||||
|
virtual void enableMouseEventTap(QWidget* widget, bool enabled) = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
static MouseTap *s_instance;
|
||||||
|
};
|
||||||
|
#endif // MOUSETAP_H
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
HEADERS += \
|
||||||
|
$$PWD/mousetap.h
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
$$PWD/mousetap.cpp
|
||||||
|
|
||||||
|
win32 {
|
||||||
|
HEADERS += $$PWD/winmousetap.h
|
||||||
|
SOURCES += $$PWD/winmousetap.cpp
|
||||||
|
LIBS += -lUser32
|
||||||
|
}
|
||||||
|
|
||||||
|
mac {
|
||||||
|
HEADERS += $$PWD/cocoamousetap.h
|
||||||
|
OBJECTIVE_SOURCES += $$PWD/cocoamousetap.mm
|
||||||
|
LIBS += -framework Appkit
|
||||||
|
QMAKE_CFLAGS += -mmacosx-version-min=10.6
|
||||||
|
}
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
#include <Windows.h>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
#include "winmousetap.h"
|
||||||
|
|
||||||
|
WinMouseTap::WinMouseTap()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
WinMouseTap::~WinMouseTap()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void WinMouseTap::initMouseEventTap()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void WinMouseTap::quitMouseEventTap()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void WinMouseTap::enableMouseEventTap(QWidget *widget, bool enabled)
|
||||||
|
{
|
||||||
|
if (!widget) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(enabled) {
|
||||||
|
QRect rc(widget->mapToGlobal(widget->pos())
|
||||||
|
, widget->size());
|
||||||
|
RECT mainRect;
|
||||||
|
mainRect.left = (LONG)rc.left();
|
||||||
|
mainRect.right = (LONG)rc.right();
|
||||||
|
mainRect.top = (LONG)rc.top();
|
||||||
|
mainRect.bottom = (LONG)rc.bottom();
|
||||||
|
ClipCursor(&mainRect);
|
||||||
|
} else {
|
||||||
|
ClipCursor(Q_NULLPTR);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
#ifndef WINMOUSETAP_H
|
||||||
|
#define WINMOUSETAP_H
|
||||||
|
|
||||||
|
#include "mousetap.h"
|
||||||
|
|
||||||
|
class WinMouseTap : public MouseTap
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
WinMouseTap();
|
||||||
|
virtual ~WinMouseTap();
|
||||||
|
|
||||||
|
void initMouseEventTap() override;
|
||||||
|
void quitMouseEventTap() override;
|
||||||
|
void enableMouseEventTap(QWidget* widget, bool enabled) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // WINMOUSETAP_H
|
||||||
@ -1,6 +1 @@
|
|||||||
mac {
|
include ($$PWD/mousetap/mousetap.pri)
|
||||||
HEADERS += $$PWD/cocoamousetap.h
|
|
||||||
OBJECTIVE_SOURCES += $$PWD/cocoamousetap.mm
|
|
||||||
LIBS += -framework Appkit
|
|
||||||
QMAKE_CFLAGS += -mmacosx-version-min=10.6
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
Reference in new issue