Declaration of QEventDispatcherWin32Private in private header file
As the class will be used as a base class for QEventDispatcherQPA its declaration has to be accessible from there. Reviewed-by: Friedemann Kleintbb10
parent
4d778f7976
commit
07818c429c
|
|
@ -50,7 +50,6 @@
|
|||
#include "qvarlengtharray.h"
|
||||
#include "qwineventnotifier_p.h"
|
||||
|
||||
#include "qabstracteventdispatcher_p.h"
|
||||
#include "qcoreapplication_p.h"
|
||||
#include <private/qthread_p.h>
|
||||
#include <private/qmutexpool_p.h>
|
||||
|
|
@ -280,32 +279,6 @@ int WSAAsyncSelect(SOCKET, HWND, unsigned int, long)
|
|||
|
||||
class QEventDispatcherWin32Private;
|
||||
|
||||
struct QSockNot {
|
||||
QSocketNotifier *obj;
|
||||
int fd;
|
||||
};
|
||||
typedef QHash<int, QSockNot *> QSNDict;
|
||||
|
||||
struct WinTimerInfo { // internal timer info
|
||||
QObject *dispatcher;
|
||||
int timerId;
|
||||
int interval;
|
||||
QObject *obj; // - object to receive events
|
||||
bool inTimerEvent;
|
||||
int fastTimerId;
|
||||
};
|
||||
|
||||
class QZeroTimerEvent : public QTimerEvent
|
||||
{
|
||||
public:
|
||||
inline QZeroTimerEvent(int timerId)
|
||||
: QTimerEvent(timerId)
|
||||
{ t = QEvent::ZeroTimerEvent; }
|
||||
};
|
||||
|
||||
typedef QList<WinTimerInfo*> WinTimerVec; // vector of TimerInfo structs
|
||||
typedef QHash<int, WinTimerInfo*> WinTimerDict; // fast dict of timers
|
||||
|
||||
#if !defined(DWORD_PTR) && !defined(Q_OS_WIN64)
|
||||
#define DWORD_PTR DWORD
|
||||
#endif
|
||||
|
|
@ -338,47 +311,6 @@ static void resolveTimerAPI()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
class QEventDispatcherWin32Private : public QAbstractEventDispatcherPrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(QEventDispatcherWin32)
|
||||
public:
|
||||
QEventDispatcherWin32Private();
|
||||
~QEventDispatcherWin32Private();
|
||||
|
||||
DWORD threadId;
|
||||
|
||||
bool interrupt;
|
||||
|
||||
// internal window handle used for socketnotifiers/timers/etc
|
||||
HWND internalHwnd;
|
||||
HHOOK getMessageHook;
|
||||
|
||||
// for controlling when to send posted events
|
||||
QAtomicInt serialNumber;
|
||||
int lastSerialNumber, sendPostedEventsWindowsTimerId;
|
||||
QAtomicInt wakeUps;
|
||||
|
||||
// timers
|
||||
WinTimerVec timerVec;
|
||||
WinTimerDict timerDict;
|
||||
void registerTimer(WinTimerInfo *t);
|
||||
void unregisterTimer(WinTimerInfo *t, bool closingDown = false);
|
||||
void sendTimerEvent(int timerId);
|
||||
|
||||
// socket notifiers
|
||||
QSNDict sn_read;
|
||||
QSNDict sn_write;
|
||||
QSNDict sn_except;
|
||||
void doWsaAsyncSelect(int socket);
|
||||
|
||||
QList<QWinEventNotifier *> winEventNotifierList;
|
||||
void activateEventNotifier(QWinEventNotifier * wen);
|
||||
|
||||
QList<MSG> queuedUserInputEvents;
|
||||
QList<MSG> queuedSocketEvents;
|
||||
};
|
||||
|
||||
QEventDispatcherWin32Private::QEventDispatcherWin32Private()
|
||||
: threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0), getMessageHook(0),
|
||||
serialNumber(0), lastSerialNumber(0), sendPostedEventsWindowsTimerId(0), wakeUps(0)
|
||||
|
|
@ -703,6 +635,10 @@ QEventDispatcherWin32::QEventDispatcherWin32(QObject *parent)
|
|||
{
|
||||
}
|
||||
|
||||
QEventDispatcherWin32::QEventDispatcherWin32(QEventDispatcherWin32Private &dd, QObject *parent)
|
||||
: QAbstractEventDispatcher(dd, parent)
|
||||
{ }
|
||||
|
||||
QEventDispatcherWin32::~QEventDispatcherWin32()
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@
|
|||
#include "QtCore/qabstracteventdispatcher.h"
|
||||
#include "QtCore/qt_windows.h"
|
||||
|
||||
#include "qabstracteventdispatcher_p.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QWinEventNotifier;
|
||||
|
|
@ -100,11 +102,80 @@ public:
|
|||
|
||||
bool event(QEvent *e);
|
||||
|
||||
protected:
|
||||
QEventDispatcherWin32(QEventDispatcherWin32Private &dd, QObject *parent = 0);
|
||||
|
||||
private:
|
||||
friend LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp);
|
||||
friend LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int, WPARAM, LPARAM);
|
||||
};
|
||||
|
||||
struct QSockNot {
|
||||
QSocketNotifier *obj;
|
||||
int fd;
|
||||
};
|
||||
typedef QHash<int, QSockNot *> QSNDict;
|
||||
|
||||
struct WinTimerInfo { // internal timer info
|
||||
QObject *dispatcher;
|
||||
int timerId;
|
||||
int interval;
|
||||
QObject *obj; // - object to receive events
|
||||
bool inTimerEvent;
|
||||
int fastTimerId;
|
||||
};
|
||||
|
||||
class QZeroTimerEvent : public QTimerEvent
|
||||
{
|
||||
public:
|
||||
inline QZeroTimerEvent(int timerId)
|
||||
: QTimerEvent(timerId)
|
||||
{ t = QEvent::ZeroTimerEvent; }
|
||||
};
|
||||
|
||||
typedef QList<WinTimerInfo*> WinTimerVec; // vector of TimerInfo structs
|
||||
typedef QHash<int, WinTimerInfo*> WinTimerDict; // fast dict of timers
|
||||
|
||||
class Q_CORE_EXPORT QEventDispatcherWin32Private : public QAbstractEventDispatcherPrivate
|
||||
{
|
||||
Q_DECLARE_PUBLIC(QEventDispatcherWin32)
|
||||
public:
|
||||
QEventDispatcherWin32Private();
|
||||
~QEventDispatcherWin32Private();
|
||||
|
||||
DWORD threadId;
|
||||
|
||||
bool interrupt;
|
||||
|
||||
// internal window handle used for socketnotifiers/timers/etc
|
||||
HWND internalHwnd;
|
||||
HHOOK getMessageHook;
|
||||
|
||||
// for controlling when to send posted events
|
||||
QAtomicInt serialNumber;
|
||||
int lastSerialNumber, sendPostedEventsWindowsTimerId;
|
||||
QAtomicInt wakeUps;
|
||||
|
||||
// timers
|
||||
WinTimerVec timerVec;
|
||||
WinTimerDict timerDict;
|
||||
void registerTimer(WinTimerInfo *t);
|
||||
void unregisterTimer(WinTimerInfo *t, bool closingDown = false);
|
||||
void sendTimerEvent(int timerId);
|
||||
|
||||
// socket notifiers
|
||||
QSNDict sn_read;
|
||||
QSNDict sn_write;
|
||||
QSNDict sn_except;
|
||||
void doWsaAsyncSelect(int socket);
|
||||
|
||||
QList<QWinEventNotifier *> winEventNotifierList;
|
||||
void activateEventNotifier(QWinEventNotifier * wen);
|
||||
|
||||
QList<MSG> queuedUserInputEvents;
|
||||
QList<MSG> queuedSocketEvents;
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // QEVENTDISPATCHER_WIN_P_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue