void CFWL_NoteDriver::NotifyTargetDestroy(IFWL_Widget* pNoteTarget) { if (m_pFocus == pNoteTarget) { m_pFocus = NULL; } if (m_pHover == pNoteTarget) { m_pHover = NULL; } if (m_pGrab == pNoteTarget) { m_pGrab = NULL; } UnregisterEventTarget(pNoteTarget); int32_t count = m_forms.GetSize(); for (int32_t nIndex = 0; nIndex < count; nIndex++) { CFWL_FormImp* pForm = static_cast<CFWL_FormImp*>(m_forms[nIndex]); if (!pForm) { continue; } CFWL_WidgetImp* pSubFocus = pForm->GetSubFocus(); if (!pSubFocus) return; if (pSubFocus && pSubFocus->GetInterface() == pNoteTarget) { pForm->SetSubFocus(NULL); } } }
FWL_ERR CFWL_DateTimePickerImp::Finalize() { if (m_pEdit) { m_pEdit->Finalize(); } if (m_pMonthCal) { m_pMonthCal->Finalize(); } if (m_pForm) { m_pForm->Finalize(); } UnregisterEventTarget(); delete m_pDelegate; m_pDelegate = nullptr; return CFWL_WidgetImp::Finalize(); }
CFWL_Form::~CFWL_Form() { UnregisterEventTarget(); UnRegisterForm(); }
IFWL_DateTimePicker::~IFWL_DateTimePicker() { UnregisterEventTarget(); }