--- /dev/null
+///////////////////////////////////////////////////////////////////////////////
+// Name: wx/osx/cocoa/evtloop.h
+// Purpose: declaration of wxGUIEventLoop for wxOSX/Cocoa
+// Author: Vadim Zeitlin
+// Created: 2008-12-28
+// RCS-ID: $Id$
+// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
+// Licence: wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_OSX_COCOA_EVTLOOP_H_
+#define _WX_OSX_COCOA_EVTLOOP_H_
+
+class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxEventLoopManual
+{
+public:
+ wxGUIEventLoop();
+
+ // implement/override base class pure virtual
+ virtual bool Pending() const;
+ virtual bool Dispatch();
+ virtual int DispatchTimeout(unsigned long timeout);
+
+ virtual void WakeUp();
+
+private:
+ double m_sleepTime;
+};
+
+#endif // _WX_OSX_COCOA_EVTLOOP_H_
+
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#ifdef __WXMAC_CLASSIC__
- #error "wxEventLoop is not implemented for Classic build."
+#ifdef __WXOSX_COCOA__
+ #include "wx/osx/cocoa/evtloop.h"
#else
#include "wx/osx/carbon/evtloop.h"
#endif
return true;
}
+
+int wxGUIEventLoop::DispatchTimeout(unsigned long timeout)
+{
+ wxMacAutoreleasePool autoreleasepool;
+
+ NSEvent *event = [NSApp
+ nextEventMatchingMask:NSAnyEventMask
+ untilDate:[NSDate dateWithTimeIntervalSinceNow: timeout/1000]
+ inMode:NSDefaultRunLoopMode
+ dequeue: YES];
+ if ( !event )
+ return -1;
+
+ [NSApp sendEvent: event];
+
+ return true;
+}