class WXDLLIMPEXP_BASE wxLog;
class WXDLLIMPEXP_BASE wxMessageOutput;
-class WXDLLEXPORT wxEventLoop;
+// wxUSE_EVTLOOP_IN_APP is a temporary hack needed until all ports are updated
+// to use wxEventLoop, otherwise we get linking errors on wxMac, it's going to
+// disappear a.s.a.p.
+#ifdef __WXMAC__
+ #define wxUSE_EVTLOOP_IN_APP 0
+#else
+ #define wxUSE_EVTLOOP_IN_APP 1
+ class WXDLLEXPORT wxEventLoop;
+#endif
// ----------------------------------------------------------------------------
// typedefs
virtual wxAppTraits *CreateTraits();
+#if wxUSE_EVTLOOP_IN_APP
// the main event loop of the application (may be NULL if the loop hasn't
// been started yet or has already terminated)
wxEventLoop *m_mainLoop;
+#endif // wxUSE_EVTLOOP_IN_APP
// the main top level window (may be NULL)
wxWindow *m_topWindow;
m_useBestVisual = FALSE;
m_isActive = TRUE;
+#if wxUSE_EVTLOOP_IN_APP
m_mainLoop = NULL;
+#endif // wxUSE_EVTLOOP_IN_APP
// We don't want to exit the app if the user code shows a dialog from its
// OnInit() -- but this is what would happen if we set m_exitOnFrameDelete
int wxAppBase::MainLoop()
{
+#if wxUSE_EVTLOOP_IN_APP
wxTiedEventLoopPtr mainLoop(&m_mainLoop, new wxEventLoop);
return m_mainLoop->Run();
+#else // !wxUSE_EVTLOOP_IN_APP
+ return 0;
+#endif // wxUSE_EVTLOOP_IN_APP/!wxUSE_EVTLOOP_IN_APP
}
void wxAppBase::ExitMainLoop()
{
+#if wxUSE_EVTLOOP_IN_APP
// we should exit from the main event loop, not just any currently active
// (e.g. modal dialog) event loop
if ( m_mainLoop )
{
m_mainLoop->Exit(0);
}
+#endif // wxUSE_EVTLOOP_IN_APP
}
bool wxAppBase::Pending()
{
+#if wxUSE_EVTLOOP_IN_APP
// use the currently active message loop here, not m_mainLoop, because if
// we're showing a modal dialog (with its own event loop) currently the
// main event loop is not running anyhow
wxEventLoop * const loop = wxEventLoop::GetActive();
return loop && loop->Pending();
+#else // wxUSE_EVTLOOP_IN_APP
+ return false;
+#endif // wxUSE_EVTLOOP_IN_APP/!wxUSE_EVTLOOP_IN_APP
}
bool wxAppBase::Dispatch()
{
+#if wxUSE_EVTLOOP_IN_APP
// see comment in Pending()
wxEventLoop * const loop = wxEventLoop::GetActive();
return loop ? loop->Dispatch() : true;
+#else // wxUSE_EVTLOOP_IN_APP
+ return true;
+#endif // wxUSE_EVTLOOP_IN_APP/!wxUSE_EVTLOOP_IN_APP
}
// ----------------------------------------------------------------------------