void CFWL_Form::EndDoModal() { if (!m_pNoteLoop) return; #if (_FX_OS_ == _FX_OS_MACOSX_) m_pNoteLoop->EndModalLoop(); const CFWL_App* pApp = GetOwnerApp(); if (!pApp) return; CFWL_NoteDriver* pDriver = static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); if (!pDriver) return; pDriver->PopNoteLoop(); SetStates(FWL_WGTSTATE_Invisible); #else SetStates(FWL_WGTSTATE_Invisible); m_pNoteLoop->EndModalLoop(); #endif }
CFWL_Widget* CFWL_Form::DoModal() { const CFWL_App* pApp = GetOwnerApp(); if (!pApp) return nullptr; CFWL_NoteDriver* pDriver = pApp->GetNoteDriver(); if (!pDriver) return nullptr; m_pNoteLoop = pdfium::MakeUnique<CFWL_NoteLoop>(); m_pNoteLoop->SetMainForm(this); pDriver->PushNoteLoop(m_pNoteLoop.get()); RemoveStates(FWL_WGTSTATE_Invisible); pDriver->Run(); #if _FX_OS_ != _FX_OS_MACOSX_ pDriver->PopNoteLoop(); #endif m_pNoteLoop.reset(); return nullptr; }