File indexing completed on 2024-12-22 04:34:59
0001 /* 0002 SPDX-FileCopyrightText: 2009 Nokia Corporation and /or its subsidiary(-ies). 0003 Contact: Qt Software Information (qt-info@nokia.com) 0004 0005 This file is part of the QtCore module of the Qt Toolkit. 0006 0007 $QT_BEGIN_LICENSE:LGPL$ 0008 Commercial Usage 0009 Licensees holding valid Qt Commercial licenses may use this file in 0010 accordance with the Qt Commercial License Agreement provided with the 0011 Software or, alternatively, in accordance with the terms contained in 0012 a written agreement between you and Nokia. 0013 0014 GNU Lesser General Public License Usage 0015 Alternatively, this file may be used under the terms of the GNU Lesser 0016 General Public License version 2.1 as published by the Free Software 0017 Foundation and appearing in the file LICENSE.LGPL included in the 0018 packaging of this file. Please review the following information to 0019 ensure the GNU Lesser General Public License version 2.1 requirements 0020 will be met: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 0021 0022 In addition, as a special exception, Nokia gives you certain 0023 additional rights. These rights are described in the Nokia Qt LGPL 0024 Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 0025 package. 0026 0027 GNU General Public License Usage 0028 Alternatively, this file may be used under the terms of the GNU 0029 General Public License version 3.0 as published by the Free Software 0030 Foundation and appearing in the file LICENSE.GPL included in the 0031 packaging of this file. Please review the following information to 0032 ensure the GNU General Public License version 3.0 requirements will be 0033 met: https://www.gnu.org/licenses/gpl-3.0.html. 0034 0035 If you are unsure which license is appropriate for your use, please 0036 contact the sales department at qt-sales@nokia.com. 0037 $QT_END_LICENSE$ 0038 0039 */ 0040 0041 #ifndef QEVENTDISPATCHER_WIN_P_H 0042 #define QEVENTDISPATCHER_WIN_P_H 0043 0044 // 0045 // W A R N I N G 0046 // ------------- 0047 // 0048 // This file is not part of the Qt API. It exists purely as an 0049 // implementation detail. This header file may change from version to 0050 // version without notice, or even be removed. 0051 // 0052 // We mean it. 0053 // 0054 0055 #include "QtCore/qabstracteventdispatcher.h" 0056 #include "QtCore/qt_windows.h" 0057 0058 #include "k3b_export.h" 0059 0060 QT_BEGIN_NAMESPACE 0061 0062 class QWinEventNotifier; 0063 class QEventDispatcherWin32Private; 0064 0065 // forward declaration 0066 LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp); 0067 0068 class LIBK3B_EXPORT QEventDispatcherWin32 : public QAbstractEventDispatcher 0069 { 0070 Q_OBJECT 0071 Q_DECLARE_PRIVATE(QEventDispatcherWin32) 0072 0073 void createInternalHwnd(); 0074 friend class QGuiEventDispatcherWin32; 0075 0076 public: 0077 explicit QEventDispatcherWin32(QObject *parent = 0); 0078 ~QEventDispatcherWin32(); 0079 0080 bool processEvents(QEventLoop::ProcessEventsFlags flags); 0081 bool hasPendingEvents(); 0082 0083 void registerSocketNotifier(QSocketNotifier *notifier); 0084 void unregisterSocketNotifier(QSocketNotifier *notifier); 0085 0086 void registerTimer(int timerId, int interval, QObject *object); 0087 bool unregisterTimer(int timerId); 0088 bool unregisterTimers(QObject *object); 0089 QList<TimerInfo> registeredTimers(QObject *object) const; 0090 0091 bool registerEventNotifier(QWinEventNotifier *notifier); 0092 void unregisterEventNotifier(QWinEventNotifier *notifier); 0093 void activateEventNotifiers(); 0094 0095 void wakeUp(); 0096 void interrupt(); 0097 void flush(); 0098 0099 void startingUp(); 0100 void closingDown(); 0101 0102 bool event(QEvent *e); 0103 0104 private: 0105 friend LRESULT CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp); 0106 }; 0107 0108 QT_END_NAMESPACE 0109 0110 #endif // QEVENTDISPATCHER_WIN_P_H