added wxEventLoop::GetActive()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -43,10 +43,15 @@ public:
 | 
			
		||||
 | 
			
		||||
    // is the event loop running now?
 | 
			
		||||
    virtual bool IsRunning() const;
 | 
			
		||||
    
 | 
			
		||||
    // return currently active (running) event loop, may be NULL
 | 
			
		||||
    static wxEventLoop *GetActive() { return ms_activeLoop; }
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    // the pointer to the port specific implementation class
 | 
			
		||||
    class WXDLLEXPORT wxEventLoopImpl *m_impl;
 | 
			
		||||
    // the pointer to currently active loop
 | 
			
		||||
    static wxEventLoop *ms_activeLoop;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // _WX_EVTLOOP_H_
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,8 @@ private:
 | 
			
		||||
// wxEventLoop running and exiting
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
wxEventLoop *wxEventLoop::ms_activeLoop = NULL;
 | 
			
		||||
 | 
			
		||||
wxEventLoop::~wxEventLoop()
 | 
			
		||||
{
 | 
			
		||||
    wxASSERT_MSG( !m_impl, _T("should have been deleted in Run()") );
 | 
			
		||||
@@ -77,6 +79,9 @@ int wxEventLoop::Run()
 | 
			
		||||
    // event loops are not recursive, you need to create another loop!
 | 
			
		||||
    wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
 | 
			
		||||
 | 
			
		||||
    wxEventLoop *oldLoop = ms_activeLoop;
 | 
			
		||||
    ms_activeLoop = this;
 | 
			
		||||
 | 
			
		||||
    m_impl = new wxEventLoopImpl;
 | 
			
		||||
 | 
			
		||||
    gtk_main();
 | 
			
		||||
@@ -85,6 +90,8 @@ int wxEventLoop::Run()
 | 
			
		||||
    delete m_impl;
 | 
			
		||||
    m_impl = NULL;
 | 
			
		||||
 | 
			
		||||
    ms_activeLoop = oldLoop;
 | 
			
		||||
 | 
			
		||||
    return exitcode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,8 @@ private:
 | 
			
		||||
// wxEventLoop running and exiting
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
wxEventLoop *wxEventLoop::ms_activeLoop = NULL;
 | 
			
		||||
 | 
			
		||||
wxEventLoop::~wxEventLoop()
 | 
			
		||||
{
 | 
			
		||||
    wxASSERT_MSG( !m_impl, _T("should have been deleted in Run()") );
 | 
			
		||||
@@ -77,6 +79,9 @@ int wxEventLoop::Run()
 | 
			
		||||
    // event loops are not recursive, you need to create another loop!
 | 
			
		||||
    wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
 | 
			
		||||
 | 
			
		||||
    wxEventLoop *oldLoop = ms_activeLoop;
 | 
			
		||||
    ms_activeLoop = this;
 | 
			
		||||
 | 
			
		||||
    m_impl = new wxEventLoopImpl;
 | 
			
		||||
 | 
			
		||||
    gtk_main();
 | 
			
		||||
@@ -85,6 +90,8 @@ int wxEventLoop::Run()
 | 
			
		||||
    delete m_impl;
 | 
			
		||||
    m_impl = NULL;
 | 
			
		||||
 | 
			
		||||
    ms_activeLoop = oldLoop;
 | 
			
		||||
 | 
			
		||||
    return exitcode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -146,6 +146,8 @@ bool wxEventLoopImpl::SendIdleMessage()
 | 
			
		||||
// wxEventLoop implementation
 | 
			
		||||
// ============================================================================
 | 
			
		||||
 | 
			
		||||
wxEventLoop *wxEventLoop::ms_activeLoop = NULL;
 | 
			
		||||
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
// wxEventLoop running and exiting
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
@@ -166,6 +168,9 @@ int wxEventLoop::Run()
 | 
			
		||||
    wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
 | 
			
		||||
 | 
			
		||||
    m_impl = new wxEventLoopImpl;
 | 
			
		||||
    
 | 
			
		||||
    wxEventLoop *oldLoop = ms_activeLoop;
 | 
			
		||||
    ms_activeLoop = this;
 | 
			
		||||
 | 
			
		||||
    for ( ;; )
 | 
			
		||||
    {
 | 
			
		||||
@@ -191,6 +196,8 @@ int wxEventLoop::Run()
 | 
			
		||||
    delete m_impl;
 | 
			
		||||
    m_impl = NULL;
 | 
			
		||||
 | 
			
		||||
    ms_activeLoop = oldLoop;
 | 
			
		||||
 | 
			
		||||
    return exitcode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user