<class name="QEventLoop" doc="/**
&lt;p&gt;The &lt;a href=&quot;QEventLoop.html#QEventLoop(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QEventLoop&lt;/tt&gt;&lt;/a&gt; class provides a means of entering and leaving an event loop.&lt;/p&gt;
&lt;p&gt;At any time, you can create a &lt;a href=&quot;QEventLoop.html#QEventLoop(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QEventLoop&lt;/tt&gt;&lt;/a&gt; object and call &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt; on it to start a local event loop. From within the event loop, calling &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;&lt;tt&gt;exit&lt;/tt&gt;&lt;/a&gt; will force &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt; to return.&lt;/p&gt;

@see &lt;a href=&quot;QAbstractEventDispatcher.html&quot;&gt;&lt;tt&gt;QAbstractEventDispatcher&lt;/tt&gt;&lt;/a&gt; */">
    <method name="public QEventLoop(com.trolltech.qt.core.QObject parent)" doc="/**
&lt;p&gt;Constructs an event loop object with the given &lt;tt&gt;parent&lt;/tt&gt;.&lt;/p&gt;
 */"/>
    <method name="public QEventLoop()" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QEventLoop.html#QEventLoop(com.trolltech.qt.core.QObject)&quot;&gt;&lt;tt&gt;QEventLoop&lt;/tt&gt;&lt;/a&gt;(0). */"/>
    <method name="public final int exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags flags)" doc="/**
&lt;p&gt;Enters the main event loop and waits until &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;&lt;tt&gt;exit&lt;/tt&gt;&lt;/a&gt; is called. Returns the value that was passed to &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;&lt;tt&gt;exit&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If &lt;tt&gt;flags&lt;/tt&gt; are specified, only events of the types allowed by the &lt;tt&gt;flags&lt;/tt&gt; will be processed.&lt;/p&gt;
&lt;p&gt;It is necessary to call this function to start event handling. The main event loop receives events from the window system and dispatches these to the application widgets.&lt;/p&gt;
&lt;p&gt;Generally speaking, no user interaction can take place before calling &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt;. As a special case, modal widgets like &lt;a href=&quot;%2E%2E/gui/QMessageBox.html&quot;&gt;&lt;tt&gt;QMessageBox&lt;/tt&gt;&lt;/a&gt; can be used before calling &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt;, because modal widgets use their own local event loop.&lt;/p&gt;
&lt;p&gt;To make your application perform idle processing (i.e&amp;#x2e; executing a special function whenever there are no pending events), use a &lt;a href=&quot;QTimer.html&quot;&gt;&lt;tt&gt;QTimer&lt;/tt&gt;&lt;/a&gt; with 0 timeout. More sophisticated idle processing schemes can be achieved using &lt;a href=&quot;QEventLoop.html#processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags, int)&quot;&gt;&lt;tt&gt;processEvents&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

@see &lt;tt&gt;QApplication::quit&lt;/tt&gt;
@see &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;&lt;tt&gt;exit&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QEventLoop.html#processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags, int)&quot;&gt;&lt;tt&gt;processEvents&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final int exec()" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;exec&lt;/tt&gt;&lt;/a&gt;(AllEvents). */"/>
    <method name="public final void exit(int returnCode)" doc="/**
&lt;p&gt;Tells the event loop to exit with a return code.&lt;/p&gt;
&lt;p&gt;After this function has been called, the event loop returns from the call to &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt;. The &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt; function returns &lt;tt&gt;returnCode&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;By convention, a &lt;tt&gt;returnCode&lt;/tt&gt; of 0 means success, and any non-zero value indicates an error.&lt;/p&gt;
&lt;p&gt;Note that unlike the C library function of the same name, this function &lt;i&gt;does&lt;/i&gt; return to the caller -- it is event processing that stops.&lt;/p&gt;

@see &lt;tt&gt;QCoreApplication::quit&lt;/tt&gt;
@see &lt;a href=&quot;QEventLoop.html#quit()&quot;&gt;&lt;tt&gt;quit&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void exit()" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;exit&lt;/tt&gt;&lt;/a&gt;(0). */"/>
    <method name="public final boolean isRunning()" doc="/**
&lt;p&gt;Returns true if the event loop is running; otherwise returns false. The event loop is considered running from the time when &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt; is called until &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;&lt;tt&gt;exit&lt;/tt&gt;&lt;/a&gt; is called.&lt;/p&gt;

@see &lt;a href=&quot;QEventLoop.html#exec(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags)&quot;&gt;&lt;tt&gt;exec&lt;/tt&gt;&lt;/a&gt;
@see &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;&lt;tt&gt;exit&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final boolean processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags flags)" doc="/**
&lt;p&gt;Processes pending events that match &lt;tt&gt;flags&lt;/tt&gt; until there are no more events to process. Returns true if pending events were handled; otherwise returns false.&lt;/p&gt;
&lt;p&gt;This function is especially useful if you have a long running operation and want to show its progress without allowing user input; i.e&amp;#x2e; by using the &lt;a href=&quot;QEventLoop.html#ProcessEventsFlag-enum&quot;&gt;&lt;tt&gt;ExcludeUserInputEvents&lt;/tt&gt;&lt;/a&gt; flag.&lt;/p&gt;
&lt;p&gt;This function is simply a wrapper for QAbstractEventDispatcher::processEvents(). See the documentation for that function for details.&lt;/p&gt;
 */"/>
    <method name="public final boolean processEvents()" doc="/**
&lt;p&gt;Equivalent to &lt;a href=&quot;QEventLoop.html#processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags, int)&quot;&gt;&lt;tt&gt;processEvents&lt;/tt&gt;&lt;/a&gt;(AllEvents). */"/>
    <method name="public final void processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags flags, int maximumTime)" doc="/**
&lt;p&gt;Process pending events that match &lt;tt&gt;flags&lt;/tt&gt; for a maximum of &lt;tt&gt;maximumTime&lt;/tt&gt; milliseconds, or until there are no more events to process, whichever is shorter. This function is especially useful if you have a long running operation and want to show its progress without allowing user input, i.e&amp;#x2e; by using the &lt;a href=&quot;QEventLoop.html#ProcessEventsFlag-enum&quot;&gt;&lt;tt&gt;ExcludeUserInputEvents&lt;/tt&gt;&lt;/a&gt; flag.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This function does not process events continuously; it returns after all available events are processed.&lt;/li&gt;
&lt;li&gt;Specifying the &lt;a href=&quot;QEventLoop.html#ProcessEventsFlag-enum&quot;&gt;&lt;tt&gt;WaitForMoreEvents&lt;/tt&gt;&lt;/a&gt; flag makes no sense and will be ignored.&lt;/li&gt;
&lt;/ul&gt;
 */"/>
    <method name="public final void quit()" doc="/**
&lt;p&gt;Tells the event loop to exit normally.&lt;/p&gt;
&lt;p&gt;Same as exit(0).&lt;/p&gt;

@see &lt;tt&gt;QCoreApplication::quit&lt;/tt&gt;
@see &lt;a href=&quot;QEventLoop.html#exit(int)&quot;&gt;&lt;tt&gt;exit&lt;/tt&gt;&lt;/a&gt; */"/>
    <method name="public final void wakeUp()" doc="/**
&lt;p&gt;Wakes up the event loop.&lt;/p&gt;

@see &lt;tt&gt;QAbstractEventDispatcher::wakeUp&lt;/tt&gt; */"/>
    <enum name="ProcessEventsFlag" doc="/**
&lt;p&gt;This enum controls the types of events processed by the &lt;a href=&quot;QEventLoop.html#processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags, int)&quot;&gt;&lt;tt&gt;processEvents&lt;/tt&gt;&lt;/a&gt; functions.&lt;/p&gt;

@see &lt;a href=&quot;QEventLoop.html#processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags, int)&quot;&gt;&lt;tt&gt;processEvents&lt;/tt&gt;&lt;/a&gt; */">
        <enum-value name="AllEvents" doc="/**
&lt;p&gt;All events except DeferredDelete are processed.&lt;/p&gt;
 */"/>
        <enum-value name="ExcludeUserInputEvents" doc="/**
&lt;p&gt;Do not process user input events, such as ButtonPress and KeyPress. Note that the events are not discarded; they will be delivered the next time &lt;a href=&quot;QEventLoop.html#processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags, int)&quot;&gt;&lt;tt&gt;processEvents&lt;/tt&gt;&lt;/a&gt; is called without the &lt;a href=&quot;QEventLoop.html#ProcessEventsFlag-enum&quot;&gt;&lt;tt&gt;ExcludeUserInputEvents&lt;/tt&gt;&lt;/a&gt; flag.&lt;/p&gt;
 */"/>
        <enum-value name="ExcludeSocketNotifiers" doc="/**
&lt;p&gt;Do not process socket notifier events. Note that the events are not discarded; they will be delivered the next time &lt;a href=&quot;QEventLoop.html#processEvents(com.trolltech.qt.core.QEventLoop.ProcessEventsFlags, int)&quot;&gt;&lt;tt&gt;processEvents&lt;/tt&gt;&lt;/a&gt; is called without the &lt;a href=&quot;QEventLoop.html#ProcessEventsFlag-enum&quot;&gt;&lt;tt&gt;ExcludeSocketNotifiers&lt;/tt&gt;&lt;/a&gt; flag.&lt;/p&gt;
 */"/>
        <enum-value name="WaitForMoreEvents" doc="/**
&lt;p&gt;Wait for events if no pending events are available.&lt;/p&gt;
 */"/>
        <enum-value name="X11ExcludeTimers" doc="/**
Internal. */"/>
        <enum-value name="DeferredDeletion" doc="/**
&lt;p&gt;Allow objects to be queued for deletion at a later time.&lt;/p&gt;
 */"/>
</enum>
</class>
