added wxWindowDisabler ctor for conditionally disabling all windows and use it in WaitForChild()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-03-22 03:06:57 +00:00
parent 1d57de4858
commit 2ecd1756e4
4 changed files with 44 additions and 8 deletions

View File

@@ -1561,7 +1561,20 @@ void wxEnableTopLevelWindows(bool enable)
node->GetData()->Enable(enable);
}
wxWindowDisabler::wxWindowDisabler(bool disable)
{
m_disabled = disable;
if ( disable )
DoDisable();
}
wxWindowDisabler::wxWindowDisabler(wxWindow *winToSkip)
{
m_disabled = true;
DoDisable(winToSkip);
}
void wxWindowDisabler::DoDisable(wxWindow *winToSkip)
{
// remember the top level windows which were already disabled, so that we
// don't reenable them later
@@ -1593,6 +1606,9 @@ wxWindowDisabler::wxWindowDisabler(wxWindow *winToSkip)
wxWindowDisabler::~wxWindowDisabler()
{
if ( !m_disabled )
return;
wxWindowList::compatibility_iterator node;
for ( node = wxTopLevelWindows.GetFirst(); node; node = node->GetNext() )
{