#include "widget.h"
#include "ui_widget.h"
#include "stdafx.h"
#include <QtGui>
#include <QDebug>
ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlags(Qt::WindowStaysOnTopHint);
setWindowOpacity(0.4);
installEventFilter(this);
setMouseTracking(true);
setAttribute(Qt::WA_MouseNoMask);
setAcceptDrops(true);
}
Widget::~Widget()
{
delete ui;
}
{
mouseX = event->x(); // ____ Always update mouse position
mouseY = event->y(); //
QRegion maskedRegion
(0,
0,width
(), height
(),
QRegion::Rectangle);
// mask the entire app QRegion maskedRegion3
(mouseX
-1, mouseY
-1,
2,
2,
QRegion::Rectangle);
// mask a 2 px square around the mouse setMask(maskedRegion.subtract(maskedRegion3)); // ...
}
{
mouseX = event->x(); // ...
mouseY = event->y(); // ...
QRegion maskedRegion
(0,
0,width
(), height
(),
QRegion::Rectangle);
// ... QRegion maskedRegion3
(mouseX
-1, mouseY
-1,
2,
2,
QRegion::Rectangle);
// ... setMask(maskedRegion.subtract(maskedRegion3));// ...
// INPUT windows class from stdafx.h
INPUT *buffer = new INPUT[1]; //allocate a buffer
buffer->type = INPUT_MOUSE;
buffer->mi.dx = 100;
buffer->mi.dy = 100;
buffer->mi.mouseData = 0;
buffer->mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
buffer->mi.time = 0;
buffer->mi.dwExtraInfo = 0;
SendInput(1,buffer,sizeof(INPUT));
delete (buffer); //clean up our messes.
}
{
if (event
->type
() == QEvent::MouseButtonPress) {
setMask(maskedRegion.subtract(maskedRegion3));
INPUT *buffer = new INPUT[1]; //allocate a buffer
buffer->type = INPUT_MOUSE;
buffer->mi.dx = 100;
buffer->mi.dy = 100;
buffer->mi.mouseData = 0;
buffer->mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
buffer->mi.time = 0;
buffer->mi.dwExtraInfo = 0;
SendInput(1,buffer,sizeof(INPUT));
delete (buffer); //clean up our messes.*/
}else
return false;//QWidget::eventFilter(obj, event);
}
//
//
// masking the app at the mouse's pos when dragging |
// V
//
{
mouseX = event->pos().x(); // ...
mouseY = event->pos().y(); // ...
QRegion maskedRegion
(0,
0,width
(), height
(),
QRegion::Rectangle);
// ... QRegion maskedRegion3
(mouseX
-1, mouseY
-1,
2,
2,
QRegion::Rectangle);
// ... setMask(maskedRegion.subtract(maskedRegion3));// ...
event->accept(); // accept event so that dragMoveEvent and dropEvent get called also
}
{
mouseX = event->pos().x();
mouseY = event->pos().y();
setMask(maskedRegion.subtract(maskedRegion3));
event->accept();
}
{
mouseX = event->pos().x();
mouseY = event->pos().y();
setMask(maskedRegion.subtract(maskedRegion3));
event->accept();
}
// generated by QtCreator
void Widget
::changeEvent(QEvent *e
) {
switch (e->type()) {
ui->retranslateUi(this);
break;
default:
break;
}
}
#include "widget.h"
#include "ui_widget.h"
#include "stdafx.h"
#include <QtGui>
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->setWindowFlags(Qt::WindowStaysOnTopHint);
setWindowOpacity(0.4);
installEventFilter(this);
setMouseTracking(true);
setAttribute(Qt::WA_MouseNoMask);
setAcceptDrops(true);
}
Widget::~Widget()
{
delete ui;
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
mouseX = event->x(); // ____ Always update mouse position
mouseY = event->y(); //
QRegion maskedRegion(0, 0,width(), height(), QRegion::Rectangle); // mask the entire app
QRegion maskedRegion3(mouseX-1, mouseY-1,2,2, QRegion::Rectangle);// mask a 2 px square around the mouse
setMask(maskedRegion.subtract(maskedRegion3)); // ...
}
void Widget::mousePressEvent(QMouseEvent *event)
{
mouseX = event->x(); // ...
mouseY = event->y(); // ...
QRegion maskedRegion(0, 0,width(), height(), QRegion::Rectangle);// ...
QRegion maskedRegion3(mouseX-1, mouseY-1,2,2, QRegion::Rectangle);// ...
setMask(maskedRegion.subtract(maskedRegion3));// ...
// INPUT windows class from stdafx.h
INPUT *buffer = new INPUT[1]; //allocate a buffer
buffer->type = INPUT_MOUSE;
buffer->mi.dx = 100;
buffer->mi.dy = 100;
buffer->mi.mouseData = 0;
buffer->mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
buffer->mi.time = 0;
buffer->mi.dwExtraInfo = 0;
SendInput(1,buffer,sizeof(INPUT));
delete (buffer); //clean up our messes.
}
bool Widget::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonPress)
{
QRegion maskedRegion(0, 0,width(), height(), QRegion::Rectangle);
QRegion maskedRegion3(mouseX-1, mouseY-1,2,2, QRegion::Rectangle);
setMask(maskedRegion.subtract(maskedRegion3));
INPUT *buffer = new INPUT[1]; //allocate a buffer
buffer->type = INPUT_MOUSE;
buffer->mi.dx = 100;
buffer->mi.dy = 100;
buffer->mi.mouseData = 0;
buffer->mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
buffer->mi.time = 0;
buffer->mi.dwExtraInfo = 0;
SendInput(1,buffer,sizeof(INPUT));
delete (buffer); //clean up our messes.*/
}else
return false;//QWidget::eventFilter(obj, event);
}
//
//
// masking the app at the mouse's pos when dragging |
// V
//
void Widget::dragEnterEvent ( QDragEnterEvent * event )
{
mouseX = event->pos().x(); // ...
mouseY = event->pos().y(); // ...
QRegion maskedRegion(0, 0,width(), height(), QRegion::Rectangle); // ...
QRegion maskedRegion3(mouseX-1, mouseY-1,2,2, QRegion::Rectangle);// ...
setMask(maskedRegion.subtract(maskedRegion3));// ...
event->accept(); // accept event so that dragMoveEvent and dropEvent get called also
}
void Widget::dragMoveEvent ( QDragMoveEvent * event )
{
mouseX = event->pos().x();
mouseY = event->pos().y();
QRegion maskedRegion(0, 0,width(), height(), QRegion::Rectangle);
QRegion maskedRegion3(mouseX-1, mouseY-1,2,2, QRegion::Rectangle);
setMask(maskedRegion.subtract(maskedRegion3));
event->accept();
}
void Widget::dropEvent ( QDropEvent * event )
{
mouseX = event->pos().x();
mouseY = event->pos().y();
QRegion maskedRegion(0, 0,width(), height(), QRegion::Rectangle);
QRegion maskedRegion3(mouseX-1, mouseY-1,2,2, QRegion::Rectangle);
setMask(maskedRegion.subtract(maskedRegion3));
event->accept();
}
// generated by QtCreator
void Widget::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks