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); } }
FX_DWORD CFWL_WidgetTP::SetThemeID(IFWL_Widget* pWidget, FX_DWORD dwThemeID, FX_BOOL bChildren) { FX_DWORD dwOld = m_dwThemeID; m_dwThemeID = dwThemeID; if (CFWL_ArrowData::IsInstance()) { CFWL_ArrowData::GetInstance()->SetColorData(FWL_GetThemeColor(dwThemeID)); } if (bChildren) { FWL_SetChildThemeID(pWidget, dwThemeID); } return dwOld; }
static void FWL_SetChildThemeID(IFWL_Widget* pParent, FX_DWORD dwThemeID) { IFWL_WidgetMgr* pWidgetMgr = FWL_GetWidgetMgr(); IFWL_Widget* pChild = pWidgetMgr->GetWidget(pParent, FWL_WGTRELATION_FirstChild); while (pChild) { IFWL_ThemeProvider* pTheme = pChild->GetThemeProvider(); if (pTheme) { pTheme->SetThemeID(pChild, dwThemeID, FALSE); } FWL_SetChildThemeID(pChild, dwThemeID); pChild = pWidgetMgr->GetWidget(pChild, FWL_WGTRELATION_NextSibling); } }