+ virtual void WakeUpIdle();
+
+ // execute the main GUI loop, the function returns when the loop ends
+ virtual int MainLoop();
+
+ // exit the main GUI loop during the next iteration (i.e. it does not
+ // stop the program immediately!)
+ virtual void ExitMainLoop();
+
+ // returns true if there are unprocessed events in the event queue
+ virtual bool Pending();
+
+ // process the first event in the event queue (blocks until an event
+ // appears if there are none currently, use Pending() if this is not
+ // wanted), returns false if the event loop should stop and true
+ // otherwise
+ virtual bool Dispatch();
+
+ // this virtual function is called when the application
+ // becomes idle and normally just sends wxIdleEvent to all interested
+ // parties
+ //
+ // it should return true if more idle events are needed, false if not
+ virtual bool ProcessIdle();
+
+#if wxUSE_EXCEPTIONS
+ // Function called if an uncaught exception is caught inside the main
+ // event loop: it may return true to continue running the event loop or
+ // false to stop it (in the latter case it may rethrow the exception as
+ // well)
+ virtual bool OnExceptionInMainLoop();
+#endif // wxUSE_EXCEPTIONS
+
+ // Yield-related hooks
+ // -------------------
+
+ // process all currently pending events right now
+ //
+ // it is an error to call Yield() recursively unless the value of
+ // onlyIfNeeded is true
+ //
+ // WARNING: this function is dangerous as it can lead to unexpected
+ // reentrancies (i.e. when called from an event handler it
+ // may result in calling the same event handler again), use
+ // with _extreme_ care or, better, don't use at all!
+ // NOTE: in wxConsoleBase it doesn't do anything, just a hook for GUI wxApp
+ bool Yield(bool onlyIfNeeded = false)
+ { return DoYield(onlyIfNeeded, wxEVT_CATEGORY_ALL); }
+ bool YieldFor(long eventsToProcess)
+ { return DoYield(true, eventsToProcess); }
+ virtual bool IsYielding() const
+ { return false; }
+ virtual bool IsEventAllowedInsideYield(wxEventCategory WXUNUSED(cat)) const
+ { return true; }
+ // no SafeYield hooks since it uses wxWindow which is not available when wxUSE_GUI=0