mirror of
https://github.com/NohamR/RMHook-Win.git
synced 2026-05-25 12:27:12 +00:00
70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
// Copyright (C) 2016 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 QEVENTLOOP_H
|
|
#define QEVENTLOOP_H
|
|
|
|
#include <QtCore/qobject.h>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
class QEventLoopPrivate;
|
|
|
|
class Q_CORE_EXPORT QEventLoop : public QObject
|
|
{
|
|
Q_OBJECT
|
|
Q_DECLARE_PRIVATE(QEventLoop)
|
|
|
|
public:
|
|
explicit QEventLoop(QObject *parent = nullptr);
|
|
~QEventLoop();
|
|
|
|
enum ProcessEventsFlag {
|
|
AllEvents = 0x00,
|
|
ExcludeUserInputEvents = 0x01,
|
|
ExcludeSocketNotifiers = 0x02,
|
|
WaitForMoreEvents = 0x04,
|
|
X11ExcludeTimers = 0x08,
|
|
EventLoopExec = 0x20,
|
|
DialogExec = 0x40,
|
|
ApplicationExec = 0x80,
|
|
};
|
|
Q_DECLARE_FLAGS(ProcessEventsFlags, ProcessEventsFlag)
|
|
Q_FLAG(ProcessEventsFlags)
|
|
|
|
bool processEvents(ProcessEventsFlags flags = AllEvents);
|
|
void processEvents(ProcessEventsFlags flags, int maximumTime);
|
|
|
|
int exec(ProcessEventsFlags flags = AllEvents);
|
|
bool isRunning() const;
|
|
|
|
void wakeUp();
|
|
|
|
bool event(QEvent *event) override;
|
|
|
|
public Q_SLOTS:
|
|
void exit(int returnCode = 0);
|
|
void quit();
|
|
};
|
|
|
|
Q_DECLARE_OPERATORS_FOR_FLAGS(QEventLoop::ProcessEventsFlags)
|
|
|
|
class QEventLoopLockerPrivate;
|
|
|
|
class Q_CORE_EXPORT QEventLoopLocker
|
|
{
|
|
public:
|
|
QEventLoopLocker();
|
|
explicit QEventLoopLocker(QEventLoop *loop);
|
|
explicit QEventLoopLocker(QThread *thread);
|
|
~QEventLoopLocker();
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QEventLoopLocker)
|
|
QEventLoopLockerPrivate *d_ptr;
|
|
};
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
#endif // QEVENTLOOP_H
|