]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/evtloop.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / osx / evtloop.h
index a295706f588a26cc0efc0f3a8d74ff28eeb479ad..995a7137018dae21aaf0e75d4807f2172f9ea54c 100644 (file)
@@ -1,11 +1,11 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        include/wx/osx/evtloop.h
-// Purpose:     simply forwards to wx/mac/carbon/evtloop.h for consistency with
-//              the other Mac headers
+// Name:        wx/osx/evtloop.h
+// Purpose:     simply forwards to wx/osx/carbon/evtloop.h or
+//              wx/osx/cocoa/evtloop.h for consistency with the other Mac
+//              headers
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     2006-01-12
-// RCS-ID:      $Id$
 // Copyright:   (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 #ifndef _WX_OSX_EVTLOOP_H_
 #define _WX_OSX_EVTLOOP_H_
 
-typedef struct __CFRunLoop * CFRunLoopRef;
+#ifdef __WXOSX_COCOA__
+    #include "wx/osx/cocoa/evtloop.h"
+#else
+    #include "wx/osx/carbon/evtloop.h"
+#endif
 
-class WXDLLIMPEXP_BASE wxCFEventLoop : public wxEventLoopManual
+class WXDLLIMPEXP_FWD_CORE wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow;
+
+class WXDLLIMPEXP_CORE wxModalEventLoop : public wxGUIEventLoop
 {
 public:
-#if wxUSE_EVENTLOOP_SOURCE
-    virtual wxEventLoopSource *
-      AddSourceForFD(int fd, wxEventLoopSourceHandler *handler, int flags);
-#endif // wxUSE_EVENTLOOP_SOURCE
-
+    wxModalEventLoop(wxWindow *modalWindow);
+    wxModalEventLoop(WXWindow modalNativeWindow);
+    
+#ifdef __WXOSX_COCOA__
+    // skip wxGUIEventLoop to avoid missing Enter/Exit notifications
+    int Run() { return wxCFEventLoop::Run(); }
+#endif
 protected:
-    // get the currently executing CFRunLoop
-    virtual CFRunLoopRef CFGetCurrentRunLoop() const = 0;
-};
+    virtual void OSXDoRun();
+    virtual void OSXDoStop();
 
-#if wxUSE_GUI
-    #ifdef __WXOSX_COCOA__
-        #include "wx/osx/cocoa/evtloop.h"
-    #else
-        #include "wx/osx/carbon/evtloop.h"
-    #endif
-#endif // wxUSE_GUI
+    // (in case) the modal window for this event loop
+    wxNonOwnedWindow* m_modalWindow;
+    WXWindow m_modalNativeWindow;
+};
 
 #endif // _WX_OSX_EVTLOOP_H_