FWL_ERR CFWL_ContentImp::RemoveAllWidgets() { CFWL_WidgetMgr* pMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); if (!pMgr) return FWL_ERR_Indefinite; while (IFWL_Widget* widget = pMgr->GetWidget(m_pInterface, FWL_WGTRELATION_FirstChild)) { pMgr->SetParent(NULL, widget); } return FWL_ERR_Succeeded; }
FX_BOOL CFWL_NoteDriver::DoKey(CFWL_MsgKey* pMsg, IFWL_Widget* pMessageForm) { #if (_FX_OS_ != _FX_MACOSX_) if (pMsg->m_dwCmd == FWL_MSGKEYCMD_KeyDown && pMsg->m_dwKeyCode == FWL_VKEY_Tab) { CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); IFWL_Widget* pForm = GetMessageForm(pMsg->m_pDstTarget); IFWL_Widget* pFocus = m_pFocus; if (m_pFocus) { if (pWidgetMgr->GetWidget(m_pFocus, FWL_WGTRELATION_SystemForm) != pForm) { pFocus = NULL; } } FX_BOOL bFind = FALSE; IFWL_Widget* pNextTabStop = pWidgetMgr->nextTab(pForm, pFocus, bFind); if (!pNextTabStop) { bFind = FALSE; pNextTabStop = pWidgetMgr->nextTab(pForm, NULL, bFind); } if (pNextTabStop == pFocus) { return TRUE; } if (pNextTabStop) { SetFocus(pNextTabStop); } return TRUE; } #endif if (!m_pFocus) { if (pMsg->m_dwCmd == FWL_MSGKEYCMD_KeyDown && pMsg->m_dwKeyCode == FWL_VKEY_Return) { CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); IFWL_Widget* defButton = pWidgetMgr->GetDefaultButton(pMessageForm); if (defButton) { pMsg->m_pDstTarget = defButton; return TRUE; } } return FALSE; } pMsg->m_pDstTarget = m_pFocus; return TRUE; }
IFWL_Widget* CFWL_NoteDriver::GetMessageForm(IFWL_Widget* pDstTarget) { int32_t iTrackLoop = m_noteLoopQueue.GetSize(); if (iTrackLoop <= 0) return NULL; IFWL_Widget* pMessageForm = NULL; if (iTrackLoop > 1) { CFWL_NoteLoop* pNootLoop = static_cast<CFWL_NoteLoop*>(m_noteLoopQueue[iTrackLoop - 1]); pMessageForm = pNootLoop->GetForm()->GetInterface(); } else { pMessageForm = (m_forms.Find(pDstTarget) < 0) ? NULL : pDstTarget; } if (!pMessageForm && pDstTarget) { CFWL_WidgetMgr* pWidgetMgr = static_cast<CFWL_WidgetMgr*>(FWL_GetWidgetMgr()); if (!pWidgetMgr) return NULL; pMessageForm = pWidgetMgr->GetWidget(pDstTarget, FWL_WGTRELATION_SystemForm); } return pMessageForm; }