X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0187ddb4a81e1eea473b960f9d740b4f531f1ada..333e57d578e9e0fb6555452b5a53698ffd85ee69:/include/wx/cocoa/app.h diff --git a/include/wx/cocoa/app.h b/include/wx/cocoa/app.h index e8a604544a..50900b4f18 100644 --- a/include/wx/cocoa/app.h +++ b/include/wx/cocoa/app.h @@ -12,6 +12,11 @@ #ifndef _WX_COCOA_APP_H_ #define _WX_COCOA_APP_H_ +typedef struct __CFRunLoopObserver * CFRunLoopObserverRef; +typedef const struct __CFString * CFStringRef; + +#include "wx/mac/corefoundation/cfref.h" + // ======================================================================== // wxApp // ======================================================================== @@ -20,31 +25,30 @@ class WXDLLEXPORT wxApp: public wxAppBase { DECLARE_DYNAMIC_CLASS(wxApp) - DECLARE_EVENT_TABLE() // ------------------------------------------------------------------------ // initialization // ------------------------------------------------------------------------ public: wxApp(); - virtual ~wxApp() {} + virtual ~wxApp(); // ------------------------------------------------------------------------ // Cocoa specifics // ------------------------------------------------------------------------ public: inline WX_NSApplication GetNSApplication() { return m_cocoaApp; } - void CocoaInstallRequestedIdleHandler() { if(m_isIdle) CocoaInstallIdleHandler(); } - inline void CocoaRequestIdle() { m_isIdle = true; } virtual void CocoaDelegate_applicationWillBecomeActive(); virtual void CocoaDelegate_applicationDidBecomeActive(); virtual void CocoaDelegate_applicationWillResignActive(); virtual void CocoaDelegate_applicationDidResignActive(); + virtual void CocoaDelegate_applicationWillUpdate(); + virtual void CF_ObserveMainRunLoopBeforeWaiting(CFRunLoopObserverRef observer, int activity); protected: WX_NSApplication m_cocoaApp; struct objc_object *m_cocoaAppDelegate; WX_NSThread m_cocoaMainThread; - void CocoaInstallIdleHandler(); - bool m_isIdle; + wxCFRef m_cfRunLoopIdleObserver; + wxCFRef m_cfObservedRunLoopMode; // ------------------------------------------------------------------------ // Implementation @@ -54,7 +58,7 @@ public: virtual void Exit(); virtual bool Yield(bool onlyIfNeeded = FALSE); - virtual void WakeUpIdle() { CocoaRequestIdle(); } + virtual void WakeUpIdle(); virtual bool Initialize(int& argc, wxChar **argv); virtual void CleanUp(); @@ -69,6 +73,8 @@ public: bool IsInAssert() const { return m_isInAssert; } #endif // __WXDEBUG__ + // Set true _before_ initializing wx to force embedded mode (no app delegate, etc.) + static bool sm_isEmbedded; private: #ifdef __WXDEBUG__ bool m_isInAssert;