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?
|
// is the event loop running now?
|
||||||
virtual bool IsRunning() const;
|
virtual bool IsRunning() const;
|
||||||
|
|
||||||
|
// return currently active (running) event loop, may be NULL
|
||||||
|
static wxEventLoop *GetActive() { return ms_activeLoop; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// the pointer to the port specific implementation class
|
// the pointer to the port specific implementation class
|
||||||
class WXDLLEXPORT wxEventLoopImpl *m_impl;
|
class WXDLLEXPORT wxEventLoopImpl *m_impl;
|
||||||
|
// the pointer to currently active loop
|
||||||
|
static wxEventLoop *ms_activeLoop;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _WX_EVTLOOP_H_
|
#endif // _WX_EVTLOOP_H_
|
||||||
|
@@ -62,6 +62,8 @@ private:
|
|||||||
// wxEventLoop running and exiting
|
// wxEventLoop running and exiting
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wxEventLoop *wxEventLoop::ms_activeLoop = NULL;
|
||||||
|
|
||||||
wxEventLoop::~wxEventLoop()
|
wxEventLoop::~wxEventLoop()
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( !m_impl, _T("should have been deleted in Run()") );
|
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!
|
// event loops are not recursive, you need to create another loop!
|
||||||
wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
|
wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
|
||||||
|
|
||||||
|
wxEventLoop *oldLoop = ms_activeLoop;
|
||||||
|
ms_activeLoop = this;
|
||||||
|
|
||||||
m_impl = new wxEventLoopImpl;
|
m_impl = new wxEventLoopImpl;
|
||||||
|
|
||||||
gtk_main();
|
gtk_main();
|
||||||
@@ -85,6 +90,8 @@ int wxEventLoop::Run()
|
|||||||
delete m_impl;
|
delete m_impl;
|
||||||
m_impl = NULL;
|
m_impl = NULL;
|
||||||
|
|
||||||
|
ms_activeLoop = oldLoop;
|
||||||
|
|
||||||
return exitcode;
|
return exitcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -62,6 +62,8 @@ private:
|
|||||||
// wxEventLoop running and exiting
|
// wxEventLoop running and exiting
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wxEventLoop *wxEventLoop::ms_activeLoop = NULL;
|
||||||
|
|
||||||
wxEventLoop::~wxEventLoop()
|
wxEventLoop::~wxEventLoop()
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( !m_impl, _T("should have been deleted in Run()") );
|
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!
|
// event loops are not recursive, you need to create another loop!
|
||||||
wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
|
wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
|
||||||
|
|
||||||
|
wxEventLoop *oldLoop = ms_activeLoop;
|
||||||
|
ms_activeLoop = this;
|
||||||
|
|
||||||
m_impl = new wxEventLoopImpl;
|
m_impl = new wxEventLoopImpl;
|
||||||
|
|
||||||
gtk_main();
|
gtk_main();
|
||||||
@@ -85,6 +90,8 @@ int wxEventLoop::Run()
|
|||||||
delete m_impl;
|
delete m_impl;
|
||||||
m_impl = NULL;
|
m_impl = NULL;
|
||||||
|
|
||||||
|
ms_activeLoop = oldLoop;
|
||||||
|
|
||||||
return exitcode;
|
return exitcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -146,6 +146,8 @@ bool wxEventLoopImpl::SendIdleMessage()
|
|||||||
// wxEventLoop implementation
|
// wxEventLoop implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
|
wxEventLoop *wxEventLoop::ms_activeLoop = NULL;
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxEventLoop running and exiting
|
// wxEventLoop running and exiting
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -166,6 +168,9 @@ int wxEventLoop::Run()
|
|||||||
wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
|
wxCHECK_MSG( !IsRunning(), -1, _T("can't reenter a message loop") );
|
||||||
|
|
||||||
m_impl = new wxEventLoopImpl;
|
m_impl = new wxEventLoopImpl;
|
||||||
|
|
||||||
|
wxEventLoop *oldLoop = ms_activeLoop;
|
||||||
|
ms_activeLoop = this;
|
||||||
|
|
||||||
for ( ;; )
|
for ( ;; )
|
||||||
{
|
{
|
||||||
@@ -191,6 +196,8 @@ int wxEventLoop::Run()
|
|||||||
delete m_impl;
|
delete m_impl;
|
||||||
m_impl = NULL;
|
m_impl = NULL;
|
||||||
|
|
||||||
|
ms_activeLoop = oldLoop;
|
||||||
|
|
||||||
return exitcode;
|
return exitcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user