I have tried QDesktopWidget but with no luck. Here is the code of the DLL file
The mouseHookPlugin_global.h looks like
#ifndef MOUSEHOOKPLUGIN_GLOBAL_H
#define MOUSEHOOKPLUGIN_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(MOUSEHOOKPLUGIN_LIBRARY)
# define MOUSEHOOKPLUGINSHARED_EXPORT Q_DECL_EXPORT
#else
# define MOUSEHOOKPLUGINSHARED_EXPORT Q_DECL_IMPORT
#endif
#ifdef Q_OS_WIN
#define MY_EXPORT __declspec(dllexport)
#else
#define MY_EXPORT
#endif
#endif // MOUSEHOOKPLUGIN_GLOBAL_H
#ifndef MOUSEHOOKPLUGIN_GLOBAL_H
#define MOUSEHOOKPLUGIN_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(MOUSEHOOKPLUGIN_LIBRARY)
# define MOUSEHOOKPLUGINSHARED_EXPORT Q_DECL_EXPORT
#else
# define MOUSEHOOKPLUGINSHARED_EXPORT Q_DECL_IMPORT
#endif
#ifdef Q_OS_WIN
#define MY_EXPORT __declspec(dllexport)
#else
#define MY_EXPORT
#endif
#endif // MOUSEHOOKPLUGIN_GLOBAL_H
To copy to clipboard, switch view to plain text mode
The header file looks like
#ifndef MOUSEHOOKPLUGIN_H
#define MOUSEHOOKPLUGIN_H
#include <QString>
#include <QMenu>
#include <QDesktopWidget>
#include <QTimer>
#include <QMouseEvent>
#include "mouseHookPlugin_global.h"
extern "C"
{
MY_EXPORT void uninitializePlugin();
}
class MOUSEHOOKPLUGINSHARED_EXPORT MouseHookPlugin
: public QDesktopWidget{
Q_OBJECT
public:
MouseHookPlugin();
~MouseHookPlugin();
public slots:
void slotShowMenu();
void slotUninitializePlugin();
//void slotTimerTicks();
private:
};
#endif // MOUSEHOOKPLUGIN_H
#ifndef MOUSEHOOKPLUGIN_H
#define MOUSEHOOKPLUGIN_H
#include <QString>
#include <QMenu>
#include <QDesktopWidget>
#include <QTimer>
#include <QMouseEvent>
#include "mouseHookPlugin_global.h"
extern "C"
{
MY_EXPORT void initializePlugin(QString, QString, QMenu*);
MY_EXPORT void uninitializePlugin();
}
class MOUSEHOOKPLUGINSHARED_EXPORT MouseHookPlugin : public QDesktopWidget
{
Q_OBJECT
public:
MouseHookPlugin();
~MouseHookPlugin();
void mouseDoubleClickEvent(QMouseEvent *);
public slots:
void slotShowMenu();
void slotInitializePlugin(QString, QString, QMenu*);
void slotUninitializePlugin();
//void slotTimerTicks();
private:
QString appPath;
QString setPath;
QMenu* ruMenu;
};
#endif // MOUSEHOOKPLUGIN_H
To copy to clipboard, switch view to plain text mode
and the cpp file looks like
#include "mousehookplugin.h"
namespace
{
MouseHookPlugin *mhp;
}
{
mhp = new MouseHookPlugin();
mhp->slotInitializePlugin(ap,sp,ru);
}
void uninitializePlugin()
{
mhp->slotUninitializePlugin();
delete mhp;
}
MouseHookPlugin::MouseHookPlugin()
{
ruMenu = NULL;
}
MouseHookPlugin::~MouseHookPlugin()
{
}
void MouseHookPlugin
::mouseDoubleClickEvent(QMouseEvent *e
) {
if(e->button() == Qt::LeftButton)
qDebug
(QString("Mouse double clicked...").
toAscii());
}
void MouseHookPlugin::slotShowMenu()
{
if(ruMenu)
{
QMenu *pMenu
= ruMenu
->actions
()[1]->menu
();
if(pMenu)
{
pMenu->activateWindow();
}
}
}
{
appPath = ap;
setPath = sp;
ruMenu = ru;
qDebug
(QString("Initialization completed...").
toAscii());
}
void MouseHookPlugin::slotUninitializePlugin()
{
qDebug
(QString("Uninitialization completed...").
toAscii());
}
#include "mousehookplugin.h"
namespace
{
MouseHookPlugin *mhp;
}
void initializePlugin(QString ap, QString sp, QMenu* ru)
{
mhp = new MouseHookPlugin();
mhp->slotInitializePlugin(ap,sp,ru);
}
void uninitializePlugin()
{
mhp->slotUninitializePlugin();
delete mhp;
}
MouseHookPlugin::MouseHookPlugin()
{
ruMenu = NULL;
}
MouseHookPlugin::~MouseHookPlugin()
{
}
void MouseHookPlugin::mouseDoubleClickEvent(QMouseEvent *e)
{
if(e->button() == Qt::LeftButton)
qDebug(QString("Mouse double clicked...").toAscii());
}
void MouseHookPlugin::slotShowMenu()
{
if(ruMenu)
{
QMenu *pMenu = ruMenu->actions()[1]->menu();
if(pMenu)
{
pMenu->popup(QCursor::pos());
pMenu->activateWindow();
}
}
}
void MouseHookPlugin::slotInitializePlugin(QString ap, QString sp, QMenu* ru)
{
appPath = ap;
setPath = sp;
ruMenu = ru;
qDebug(QString("Initialization completed...").toAscii());
}
void MouseHookPlugin::slotUninitializePlugin()
{
qDebug(QString("Uninitialization completed...").toAscii());
}
To copy to clipboard, switch view to plain text mode
I am not getting any double clicks, local or global. Am I missing something?
Bookmarks