#ifndef _WX_OSX_COCOA_EVTLOOP_H_
#define _WX_OSX_COCOA_EVTLOOP_H_
-class WXDLLIMPEXP_BASE wxGUIEventLoop : public wxEventLoopManual
+class WXDLLIMPEXP_BASE wxGUIEventLoop : public wxCFEventLoop
{
public:
- typedef wxMacEventLoopSource Source;
-
wxGUIEventLoop();
-
- // implement/override base class pure virtual
- virtual bool Pending() const;
- virtual bool Dispatch();
- virtual int DispatchTimeout(unsigned long timeout);
+ ~wxGUIEventLoop();
+
+ void BeginModalSession( wxWindow* modalWindow );
+
+ void EndModalSession();
virtual void WakeUp();
- virtual bool YieldFor(long eventsToProcess);
-
-#if wxUSE_EVENTLOOP_SOURCE
- virtual wxMacEventLoopSource* CreateSource() const
- {
- return new wxMacEventLoopSource();
- }
-
- virtual wxMacEventLoopSource* CreateSource(int res,
- wxEventLoopSourceHandler* handler,
- int flags) const;
-
- virtual wxMacEventLoopSource* CreateSource(CFRunLoopSourceRef res,
- wxEventLoopSourceHandler* handler,
- int flags) const
- {
- return new wxMacEventLoopSource(res, handler, flags);
- }
-#endif
+ void OSXUseLowLevelWakeup(bool useIt)
+ { m_osxLowLevelWakeUp = useIt ; }
+
protected:
-#if wxUSE_EVENTLOOP_SOURCE
- // adding/removing sources
- virtual bool DoAddSource(wxAbstractEventLoopSource* source);
- virtual bool DoRemoveSource(wxAbstractEventLoopSource* source);
-#endif
-
-private:
- double m_sleepTime;
+ virtual int DoDispatchTimeout(unsigned long timeout);
+
+ virtual void OSXDoRun();
+ virtual void OSXDoStop();
+
+ virtual CFRunLoopRef CFGetCurrentRunLoop() const;
+
+ void* m_modalSession;
+
+ wxWindow* m_modalWindow;
+
+ WXWindow m_dummyWindow;
+
+ int m_modalNestedLevel;
+
+ bool m_osxLowLevelWakeUp;
};
#endif // _WX_OSX_COCOA_EVTLOOP_H_