FX_BOOL CFWL_ComboBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) { if (!pParams) return FALSE; switch (pParams->m_iPart) { case FWL_PART_CMB_Border: { DrawBorder(pParams->m_pGraphics, &pParams->m_rtPart, &pParams->m_matrix); break; } case FWL_PART_CMB_Edge: { DrawEdge(pParams->m_pGraphics, pParams->m_pWidget->GetStyles(), &pParams->m_rtPart, &pParams->m_matrix); break; } case FWL_PART_CMB_Background: { CFX_Path path; path.Create(); CFX_RectF& rect = pParams->m_rtPart; path.AddRectangle(rect.left, rect.top, rect.width, rect.height); CFX_Color cr; switch (pParams->m_dwStates) { case FWL_PARTSTATE_CMB_Selected: cr = FWLTHEME_COLOR_BKSelected; break; case FWL_PARTSTATE_CMB_Disabled: cr = FWLTHEME_COLOR_EDGERB1; break; default: cr = 0xFFFFFFFF; } pParams->m_pGraphics->SaveGraphState(); pParams->m_pGraphics->SetFillColor(&cr); pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, &pParams->m_matrix); pParams->m_pGraphics->RestoreGraphState(); break; } case FWL_PART_CMB_DropDownButton: { DrawDropDownButton(pParams, pParams->m_dwStates, &pParams->m_matrix); break; } case FWL_PART_CMB_StretcgHandler: { DrawStrethHandler(pParams, 0, &pParams->m_matrix); break; } default: { return FALSE; } } return TRUE; }
void CFWL_ComboBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) { if (!pParams) return; switch (pParams->m_iPart) { case CFWL_Part::Border: { DrawBorder(pParams->m_pGraphics, &pParams->m_rtPart, &pParams->m_matrix); break; } case CFWL_Part::Background: { CFX_Path path; CFX_RectF& rect = pParams->m_rtPart; path.AddRectangle(rect.left, rect.top, rect.width, rect.height); FX_ARGB argb_color; switch (pParams->m_dwStates) { case CFWL_PartState_Selected: argb_color = FWLTHEME_COLOR_BKSelected; break; case CFWL_PartState_Disabled: argb_color = FWLTHEME_COLOR_EDGERB1; break; default: argb_color = 0xFFFFFFFF; } pParams->m_pGraphics->SaveGraphState(); CFX_Color cr(argb_color); pParams->m_pGraphics->SetFillColor(&cr); pParams->m_pGraphics->FillPath(&path, FXFILL_WINDING, &pParams->m_matrix); pParams->m_pGraphics->RestoreGraphState(); break; } case CFWL_Part::DropDownButton: { DrawDropDownButton(pParams, pParams->m_dwStates, &pParams->m_matrix); break; } case CFWL_Part::StretchHandler: { DrawStrethHandler(pParams, 0, &pParams->m_matrix); break; } default: break; } }