Rework idle handling so that NSApplication does not need to be subclassed or posed as.

Copyright Software 2000 Ltd.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2007-05-14 07:00:30 +00:00
parent bfb6847df6
commit 047c1182f9
3 changed files with 172 additions and 90 deletions

View File

@@ -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
// ========================================================================
@@ -26,7 +31,7 @@ class WXDLLEXPORT wxApp: public wxAppBase
// ------------------------------------------------------------------------
public:
wxApp();
virtual ~wxApp() {}
virtual ~wxApp();
// ------------------------------------------------------------------------
// Cocoa specifics
@@ -37,10 +42,14 @@ public:
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;
wxCFRef<CFRunLoopObserverRef> m_cfRunLoopIdleObserver;
wxCFRef<CFStringRef> m_cfObservedRunLoopMode;
// ------------------------------------------------------------------------
// Implementation