+ if (bEnable)
+ {
+ //
+ // Enable the child back unless it had been disabled before us
+ //
+ if (!m_pChildrenDisabled || !m_pChildrenDisabled->Find(pChild))
+ pChild->Enable();
+ }
+ else // we're being disabled
+ {
+ if (pChild->IsEnabled())
+ {
+ //
+ // Disable it as children shouldn't stay enabled while the
+ // parent is not
+ //
+ pChild->Disable();
+ }
+ else // child already disabled, remember it
+ {
+ //
+ // Have we created the list of disabled children already?
+ //
+ if (!m_pChildrenDisabled)
+ m_pChildrenDisabled = new wxWindowList;
+ m_pChildrenDisabled->Append(pChild);
+ }
+ }