123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
/**************************************************************************** ** $Id: qeventloop.h,v 1.1 2003/12/04 08:17:57 falbujer Exp $ ** ** Declaration of QEventLoop class ** ** Copyright (C) 1992-2002 Trolltech AS. All rights reserved. ** ** This file is part of the kernel module of the Qt GUI Toolkit. ** ** This file may be distributed under the terms of the Q Public License ** as defined by Trolltech AS of Norway and appearing in the file ** LICENSE.QPL included in the packaging of this file. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition ** licenses may use this file in accordance with the Qt Commercial License ** Agreement provided with the Software. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for ** information about Qt Commercial License Agreements. ** See http://www.trolltech.com/qpl/ for QPL licensing information. ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef QEVENTLOOP_H #define QEVENTLOOP_H #include "qobject.h" #include "qsocketnotifier.h" class QEventLoopPrivate; class QSocketNotifier; class QTimer; #ifdef Q_WS_MAC struct timeval; //stdc struct struct TimerInfo; //internal structure (qeventloop_mac.cpp) #endif #if defined(QT_THREAD_SUPPORT) class QMutex; #endif // QT_THREAD_SUPPORT class Q_EXPORT QEventLoop : public QObject { Q_OBJECT public: QEventLoop( QObject *parent = 0, const char *name = 0 ); ~QEventLoop(); enum ProcessEvents { AllEvents = 0x00, ExcludeUserInput = 0x01, ExcludeSocketNotifiers = 0x02, WaitForMore = 0x04 }; typedef uint ProcessEventsFlags; void processEvents( ProcessEventsFlags flags, int maxtime ); virtual bool processEvents( ProcessEventsFlags flags ); virtual bool hasPendingEvents() const; virtual void registerSocketNotifier( QSocketNotifier * ); virtual void unregisterSocketNotifier( QSocketNotifier * ); void setSocketNotifierPending( QSocketNotifier * ); int activateSocketNotifiers(); int activateTimers(); int timeToWait() const; virtual int exec(); virtual void exit( int retcode = 0 ); virtual int enterLoop(); virtual void exitLoop(); virtual int loopLevel() const; virtual void wakeUp(); signals: void awake(); void aboutToBlock(); private: #if defined(Q_WS_MAC) friend QMAC_PASCAL void qt_mac_select_timer_callbk(EventLoopTimerRef, void *); int macHandleSelect(timeval *); void macHandleTimer(TimerInfo *); #endif // Q_WS_MAC // internal initialization/cleanup - implemented in various platform specific files void init(); void cleanup(); virtual void appStartingUp(); virtual void appClosingDown(); // data for the default implementation - other implementations should not // use/need this data QEventLoopPrivate *d; friend class QApplication; }; #endif // QEVENTLOOP_H
About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us
©2009 Koders is a trademark of Black Duck Software, Inc. Black Duck, Know Your Code and the Black Duck logo are registered trademarks of Black Duck Software, Inc. in the United States and other jurisdictions. All other trademarks are the property of their respective holders.