]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/osx/evtloop.h
Unselect all wxDataViewCtrl items when clicking outside of the item area.
[wxWidgets.git] / include / wx / osx / evtloop.h
index 100804ae2aea992d9344fb32358756fe1f26ff17..a26f03372fddac3b7f34990667f9ddc8fed277a6 100644 (file)
@@ -1,7 +1,8 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        include/wx/osx/evtloop.h
-// Purpose:     simply forwards to wx/mac/carbon/evtloop.h for consistency with
-//              the other Mac headers
+// Name:        wx/osx/evtloop.h
+// Purpose:     simply forwards to wx/osx/carbon/evtloop.h or
+//              wx/osx/cocoa/evtloop.h for consistency with the other Mac
+//              headers
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     2006-01-12
 #ifndef _WX_OSX_EVTLOOP_H_
 #define _WX_OSX_EVTLOOP_H_
 
-DECLARE_WXOSX_OPAQUE_CFREF( CFRunLoop );
-DECLARE_WXOSX_OPAQUE_CFREF( CFRunLoopObserver );
+#ifdef __WXOSX_COCOA__
+    #include "wx/osx/cocoa/evtloop.h"
+#else
+    #include "wx/osx/carbon/evtloop.h"
+#endif
 
-class WXDLLIMPEXP_BASE wxCFEventLoop : public wxEventLoopBase
+class WXDLLIMPEXP_FWD_CORE wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow;
+
+class WXDLLIMPEXP_CORE wxModalEventLoop : public wxGUIEventLoop
 {
 public:
-    wxCFEventLoop();
-    virtual ~wxCFEventLoop();
-
-    // enters a loop calling OnNextIteration(), Pending() and Dispatch() and
-    // terminating when Exit() is called
-    virtual int Run();
-    
-    // sets the "should exit" flag and wakes up the loop so that it terminates
-    // soon
-    virtual void Exit(int rc = 0);
-    
-    // return true if any events are available
-    virtual bool Pending() const;
-    
-    // dispatch a single event, return false if we should exit from the loop
-    virtual bool Dispatch();
-    
-    // same as Dispatch() but doesn't wait for longer than the specified (in
-    // ms) timeout, return true if an event was processed, false if we should
-    // exit the loop or -1 if timeout expired
-    virtual int DispatchTimeout(unsigned long timeout);
-
-    // implement this to wake up the loop: usually done by posting a dummy event
-    // to it (can be called from non main thread)
-    virtual void WakeUp();
-    
-    virtual bool YieldFor(long eventsToProcess);
-
-#if wxUSE_EVENTLOOP_SOURCE
-    virtual wxEventLoopSource *
-      AddSourceForFD(int fd, wxEventLoopSourceHandler *handler, int flags);
-#endif // wxUSE_EVENTLOOP_SOURCE
-
-    void ObserverCallBack(CFRunLoopObserverRef observer, int activity);
+    wxModalEventLoop(wxWindow *modalWindow);
+    wxModalEventLoop(WXWindow modalNativeWindow);
 
 protected:
-    // get the currently executing CFRunLoop
-    virtual CFRunLoopRef CFGetCurrentRunLoop() const;
+    virtual void DoRun();
 
-    virtual int DoDispatchTimeout(unsigned long timeout);
-
-    // should we exit the loop?
-    bool m_shouldExit;
-
-    // the loop exit code
-    int m_exitcode;
-    
-    // runloop observer
-    CFRunLoopObserverRef m_runLoopObserver;
-
-private:
-    // process all already pending events and dispatch a new one (blocking
-    // until it appears in the event queue if necessary)
-    //
-    // returns the return value of DoDispatchTimeout()
-    int DoProcessEvents();
+    virtual void DoStop();
 
+    // (in case) the modal window for this event loop
+    wxNonOwnedWindow* m_modalWindow;
+    WXWindow m_modalNativeWindow;
 };
 
-#if wxUSE_GUI
-    #ifdef __WXOSX_COCOA__
-        #include "wx/osx/cocoa/evtloop.h"
-    #else
-        #include "wx/osx/carbon/evtloop.h"
-    #endif
-#endif // wxUSE_GUI
-
 #endif // _WX_OSX_EVTLOOP_H_