X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5c6eb3a84be918dcfed2496d014549e13af0f0e9..86ac84b8ce086e6bbda58f422d41f84268606e35:/include/wx/osx/carbon/evtloop.h diff --git a/include/wx/osx/carbon/evtloop.h b/include/wx/osx/carbon/evtloop.h index 5cf323876d..d704a9c50c 100644 --- a/include/wx/osx/carbon/evtloop.h +++ b/include/wx/osx/carbon/evtloop.h @@ -12,53 +12,28 @@ #ifndef _WX_MAC_CARBON_EVTLOOP_H_ #define _WX_MAC_CARBON_EVTLOOP_H_ -// set wxMAC_USE_RUN_APP_EVENT_LOOP to 1 if the standard -// RunApplicationEventLoop function should be used, otherwise -// the lower level CarbonEventLoop will be used -// -// in the long run we should make this 1 by default but we will have to clean -// up event handling to make sure we don't miss handling of things like pending -// events etc and perhaps we will also have to pipe events through an -// ueber-event-handler to make sure we have one place to do all these -// house-keeping functions -#define wxMAC_USE_RUN_APP_EVENT_LOOP 0 - -// ---------------------------------------------------------------------------- -// wxEventLoop -// ---------------------------------------------------------------------------- - -#if wxMAC_USE_RUN_APP_EVENT_LOOP - -class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxEventLoopBase -{ -public: - wxGUIEventLoop() { m_exitcode = 0; } - - // implement base class pure virtuals - virtual int Run(); - virtual void Exit(int rc = 0); - virtual bool Pending() const; - virtual bool Dispatch(); - -private: - int m_exitcode; -}; - -#else // manual event loop +class OpaqueEventRef; +typedef OpaqueEventRef *EventRef; class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxEventLoopManual { public: - wxGUIEventLoop() { } + wxGUIEventLoop(); + // implement/override base class pure virtual virtual bool Pending() const; virtual bool Dispatch(); + virtual int DispatchTimeout(unsigned long timeout); - // implement base class pure virtual virtual void WakeUp(); -}; + virtual bool YieldFor(long eventsToProcess); + +private: + // dispatch an event and release it + void DispatchAndReleaseEvent(EventRef event); -#endif // auto/manual event loop + double m_sleepTime; +}; #endif // _WX_MAC_CARBON_EVTLOOP_H_