X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/955a919785b76a1826e6b8d55f696a0dfb62a318..72ac4e888aff9b766216f96cc090b051a7f52188:/include/wx/cocoa/app.h diff --git a/include/wx/cocoa/app.h b/include/wx/cocoa/app.h index ac4078563f..bed4a07c7f 100644 --- a/include/wx/cocoa/app.h +++ b/include/wx/cocoa/app.h @@ -4,54 +4,61 @@ // Author: David Elliott // Modified by: // Created: 2002/11/27 -// RCS-ID: $Id: +// RCS-ID: $Id$ // Copyright: (c) 2002 David Elliott -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_COCOA_APP_H_ #define _WX_COCOA_APP_H_ +typedef struct __CFRunLoopObserver * CFRunLoopObserverRef; +typedef const struct __CFString * CFStringRef; + +#include "wx/osx/core/cfref.h" + +// ======================================================================== +// wxApp +// ======================================================================== // Represents the application. Derive OnInit and declare // a new App object to start application -class WXDLLEXPORT wxApp: public wxAppBase +class WXDLLIMPEXP_CORE 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; - void CocoaInstallIdleHandler(); - bool m_isIdle; + struct objc_object *m_cocoaAppDelegate; + WX_NSThread m_cocoaMainThread; + wxCFRef m_cfRunLoopIdleObserver; + wxCFRef m_cfObservedRunLoopMode; // ------------------------------------------------------------------------ // Implementation // ------------------------------------------------------------------------ public: // Implement wxAppBase pure virtuals - virtual int MainLoop(); - virtual void ExitMainLoop(); - virtual bool Initialized(); - virtual bool Pending(); - virtual void Dispatch(); - 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(); @@ -60,6 +67,18 @@ public: virtual bool OnInit(); virtual bool OnInitGui(); + +#ifdef __WXDEBUG__ + virtual void OnAssert(const wxChar *file, int line, const wxChar *cond, const wxChar *msg); + 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; +#endif // __WXDEBUG__ }; #endif // _WX_COCOA_APP_H_