]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/app.h
Disable disabling wxWeakRef<T>
[wxWidgets.git] / include / wx / cocoa / app.h
index c658fbb3ae677f1ff13a6d2d9a2920a624beeeab..36c8e57805415c7de47bf51334636b7ea82657c6 100644 (file)
@@ -4,55 +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/mac/corefoundation/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;
+    struct objc_object *m_cocoaAppDelegate;
     WX_NSThread m_cocoaMainThread;
-    void CocoaInstallIdleHandler();
-    bool m_isIdle;
+    wxCFRef<CFRunLoopObserverRef> m_cfRunLoopIdleObserver;
+    wxCFRef<CFStringRef> 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();
@@ -67,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;