]> git.saurik.com Git - wxWidgets.git/commitdiff
(blind) fix for wxMac compilation
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 16 Sep 2003 10:52:57 +0000 (10:52 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 16 Sep 2003 10:52:57 +0000 (10:52 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/app.h
src/common/appcmn.cpp

index 3b57e36670f1d1550280c630009107637131d1ed..220c68a12849f2a24127109962d72cefd1ac2ee7 100644 (file)
@@ -32,7 +32,15 @@ class WXDLLIMPEXP_BASE wxCmdLineParser;
 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
@@ -498,9 +506,11 @@ protected:
     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;
index 7bb287317799ff1160449aaaadf1943ee88cf860..c081dc4ed8a03d64478aa2a61b303f1aef445450 100644 (file)
@@ -97,7 +97,9 @@ wxAppBase::wxAppBase()
     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
@@ -270,37 +272,51 @@ bool wxAppBase::OnCmdLineParsed(wxCmdLineParser& parser)
 
 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
 }
 
 // ----------------------------------------------------------------------------