static void FWL_SetChildThemeID(IFWL_Widget* pParent, uint32_t dwThemeID) { CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); IFWL_Widget* pChild = pWidgetMgr->GetFirstChildWidget(pParent); while (pChild) { IFWL_ThemeProvider* pTheme = pChild->GetThemeProvider(); if (pTheme) { pTheme->SetThemeID(pChild, dwThemeID, FALSE); } FWL_SetChildThemeID(pChild, dwThemeID); pChild = pWidgetMgr->GetNextSiblingWidget(pChild); } }
void IFWL_Widget::SetStates(uint32_t dwStates, bool bSet) { bSet ? (m_pProperties->m_dwStates |= dwStates) : (m_pProperties->m_dwStates &= ~dwStates); if (!(dwStates & FWL_WGTSTATE_Invisible) || !bSet) return; CFWL_NoteDriver* noteDriver = static_cast<CFWL_NoteDriver*>(GetOwnerApp()->GetNoteDriver()); CFWL_WidgetMgr* widgetMgr = GetOwnerApp()->GetWidgetMgr(); noteDriver->NotifyTargetHide(this); IFWL_Widget* child = widgetMgr->GetFirstChildWidget(this); while (child) { noteDriver->NotifyTargetHide(child); NotifyHideChildWidget(widgetMgr, child, noteDriver); child = widgetMgr->GetNextSiblingWidget(child); } return; }
IFWL_Widget* CFWL_WidgetMgr::nextTab(IFWL_Widget* parent, IFWL_Widget* focus, FX_BOOL& bFind) { CFWL_WidgetMgr* pMgr = CFWL_WidgetMgr::GetInstance(); IFWL_Widget* child = pMgr->GetFirstChildWidget(parent); while (child) { if (focus == child) bFind = TRUE; if ((child->GetStyles() & FWL_WGTSTYLE_TabStop) && (!focus || (focus != child && bFind))) { return child; } IFWL_Widget* bRet = nextTab(child, focus, bFind); if (bRet) return bRet; child = pMgr->GetNextSiblingWidget(child); } return nullptr; }