///////////////////////////////////////////////////////////////////////////////
-// 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_