mirror of
https://github.com/NohamR/RMHook-Win.git
synced 2026-05-26 04:17:10 +00:00
74 lines
2.2 KiB
C++
74 lines
2.2 KiB
C++
// Copyright (C) 2020 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
|
|
|
#ifndef QABSTRACTEVENTDISPATCHER_H
|
|
#define QABSTRACTEVENTDISPATCHER_H
|
|
|
|
#include <QtCore/qobject.h>
|
|
#include <QtCore/qeventloop.h>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
class QAbstractNativeEventFilter;
|
|
class QAbstractEventDispatcherPrivate;
|
|
class QSocketNotifier;
|
|
|
|
class Q_CORE_EXPORT QAbstractEventDispatcher : public QObject
|
|
{
|
|
Q_OBJECT
|
|
Q_DECLARE_PRIVATE(QAbstractEventDispatcher)
|
|
|
|
public:
|
|
struct TimerInfo
|
|
{
|
|
int timerId;
|
|
int interval;
|
|
Qt::TimerType timerType;
|
|
|
|
inline TimerInfo(int id, int i, Qt::TimerType t)
|
|
: timerId(id), interval(i), timerType(t) { }
|
|
};
|
|
|
|
explicit QAbstractEventDispatcher(QObject *parent = nullptr);
|
|
~QAbstractEventDispatcher();
|
|
|
|
static QAbstractEventDispatcher *instance(QThread *thread = nullptr);
|
|
|
|
virtual bool processEvents(QEventLoop::ProcessEventsFlags flags) = 0;
|
|
|
|
virtual void registerSocketNotifier(QSocketNotifier *notifier) = 0;
|
|
virtual void unregisterSocketNotifier(QSocketNotifier *notifier) = 0;
|
|
|
|
int registerTimer(qint64 interval, Qt::TimerType timerType, QObject *object);
|
|
virtual void registerTimer(int timerId, qint64 interval, Qt::TimerType timerType, QObject *object) = 0;
|
|
virtual bool unregisterTimer(int timerId) = 0;
|
|
virtual bool unregisterTimers(QObject *object) = 0;
|
|
virtual QList<TimerInfo> registeredTimers(QObject *object) const = 0;
|
|
|
|
virtual int remainingTime(int timerId) = 0;
|
|
|
|
virtual void wakeUp() = 0;
|
|
virtual void interrupt() = 0;
|
|
|
|
virtual void startingUp();
|
|
virtual void closingDown();
|
|
|
|
void installNativeEventFilter(QAbstractNativeEventFilter *filterObj);
|
|
void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj);
|
|
bool filterNativeEvent(const QByteArray &eventType, void *message, qintptr *result);
|
|
|
|
Q_SIGNALS:
|
|
void aboutToBlock();
|
|
void awake();
|
|
|
|
protected:
|
|
QAbstractEventDispatcher(QAbstractEventDispatcherPrivate &,
|
|
QObject *parent);
|
|
};
|
|
|
|
Q_DECLARE_TYPEINFO(QAbstractEventDispatcher::TimerInfo, Q_PRIMITIVE_TYPE);
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
#endif // QABSTRACTEVENTDISPATCHER_H
|