FX_BOOL CFWL_ListBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) { if (!pParams) return FALSE; switch (pParams->m_iPart) { case FWL_PART_LTB_Border: { DrawBorder(pParams->m_pGraphics, &pParams->m_rtPart, &pParams->m_matrix); break; } case FWL_PART_LTB_Edge: { DrawEdge(pParams->m_pGraphics, pParams->m_pWidget->GetStyles(), &pParams->m_rtPart, &pParams->m_matrix); break; } case FWL_PART_LTB_Background: { FillSoildRect(pParams->m_pGraphics, ArgbEncode(255, 255, 255, 255), &pParams->m_rtPart, &pParams->m_matrix); if (pParams->m_pData) { FillSoildRect(pParams->m_pGraphics, FWLTHEME_COLOR_Background, (CFX_RectF*)pParams->m_pData, &pParams->m_matrix); } break; } case FWL_PART_LTB_ListItem: { DrawListBoxItem(pParams->m_pGraphics, pParams->m_dwStates, &pParams->m_rtPart, pParams->m_pData, &pParams->m_matrix); break; } case FWL_PART_LTB_Icon: { pParams->m_pGraphics->StretchImage(pParams->m_pImage, pParams->m_rtPart, &pParams->m_matrix); break; } case FWL_PART_LTB_Check: { FX_DWORD color = 0xFF000000; if (pParams->m_dwStates == FWL_PARTSTATE_LTB_Checked) { color = 0xFFFF0000; } else if (pParams->m_dwStates == FWL_PARTSTATE_LTB_UnChecked) { color = 0xFF0000FF; } FillSoildRect(pParams->m_pGraphics, color, &pParams->m_rtPart, &pParams->m_matrix); } default: {} } return TRUE; }
void CFWL_CheckBoxTP::DrawSign(IFWL_Widget* pWidget, CFX_Graphics* pGraphics, const CFX_RectF* pRtBox, uint32_t dwStates, CFX_Matrix* pMatrix) { CFX_RectF rtSign(*pRtBox); rtSign.Deflate(kSignMargin, kSignMargin); uint32_t dwColor = m_pThemeData->clrSignCheck; bool bCheck = true; if ((dwStates & CFWL_PartState_Disabled) && (dwStates & CFWL_PartState_Checked)) { dwColor = m_pThemeData->clrSignBorderDisable; } else if (dwStates & CFWL_PartState_Neutral) { if (dwStates & CFWL_PartState_Hovered) { dwColor = m_pThemeData->clrSignNeutralHover; } else if (dwStates & CFWL_PartState_Pressed) { dwColor = m_pThemeData->clrSignNeutralPressed; } else if (dwStates & CFWL_PartState_Disabled) { dwColor = m_pThemeData->clrSignBorderDisable; } else { dwColor = m_pThemeData->clrSignNeutralNormal; } bCheck = false; } if (bCheck) { uint32_t dwStyle = pWidget->GetStylesEx(); switch (dwStyle & FWL_STYLEEXT_CKB_SignShapeMask) { case FWL_STYLEEXT_CKB_SignShapeCheck: { DrawSignCheck(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeCircle: { rtSign.Deflate(1, 1); DrawSignCircle(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeCross: { DrawSignCross(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeDiamond: { DrawSignDiamond(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeSquare: { DrawSignSquare(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeStar: { DrawSignStar(pGraphics, &rtSign, dwColor, pMatrix); break; } } } else { FillSoildRect(pGraphics, ArgbEncode(255, 33, 161, 33), &rtSign, pMatrix); } }
void CFWL_FormTP::DrawMinimizeBox(CFX_Graphics* pGraphics, const CFX_RectF* pRect, FWLTHEME_STATE eState, CFX_Matrix* pMatrix, int32_t iActive) { DrawMinMaxBoxCommon(pGraphics, pRect, eState, pMatrix); CFX_RectF rtMin; rtMin.Set(pRect->left + 5, pRect->top + 13, pRect->width - 14, pRect->height - 18); FillSoildRect(pGraphics, 0xFFFFFFFF, &rtMin, pMatrix); }
void CFWL_WidgetTP::FillBackground(CFX_Graphics* pGraphics, const CFX_RectF* pRect, CFX_Matrix* pMatrix) { FillSoildRect(pGraphics, FWLTHEME_COLOR_Background, pRect, pMatrix); }
void CFWL_CheckBoxTP::DrawSignNeutral(CFX_Graphics* pGraphics, const CFX_RectF* pRtSign, CFX_Matrix* pMatrix) { ((CFX_RectF*)pRtSign)->Inflate(-3, -3); FillSoildRect(pGraphics, m_pThemeData->clrSignNeutral, pRtSign, pMatrix); }
void CFWL_CheckBoxTP::DrawSign(IFWL_Widget* pWidget, CFX_Graphics* pGraphics, const CFX_RectF* pRtBox, FX_DWORD dwStates, CFX_Matrix* pMatrix) { CFX_RectF rtSign(*pRtBox); rtSign.Deflate(CHECKBOX_SIZE_SIGNMARGIN, CHECKBOX_SIZE_SIGNMARGIN); FX_DWORD dwColor = m_pThemeData->clrSignCheck; FX_BOOL bCheck = TRUE; if (((dwStates & FWL_PARTSTATE_CKB_Mask1) == FWL_PARTSTATE_CKB_Disabled) && ((dwStates & FWL_PARTSTATE_CKB_Mask2) == FWL_PARTSTATE_CKB_Checked)) { dwColor = m_pThemeData->clrSignBorderDisable; } else if ((dwStates & FWL_PARTSTATE_CKB_Mask2) == FWL_PARTSTATE_CKB_Neutral) { switch (dwStates & FWL_PARTSTATE_CKB_Mask1) { case FWL_PARTSTATE_CKB_Normal: { bCheck = FALSE; dwColor = m_pThemeData->clrSignNeutralNormal; break; } case FWL_PARTSTATE_CKB_Hovered: { bCheck = FALSE; dwColor = m_pThemeData->clrSignNeutralHover; break; } case FWL_PARTSTATE_CKB_Pressed: { bCheck = FALSE, dwColor = m_pThemeData->clrSignNeutralPressed; break; } case FWL_PARTSTATE_CKB_Disabled: { bCheck = FALSE, dwColor = m_pThemeData->clrSignBorderDisable; break; } } } if (bCheck) { FX_DWORD dwStyle = pWidget->GetStylesEx(); switch (dwStyle & FWL_STYLEEXT_CKB_SignShapeMask) { case FWL_STYLEEXT_CKB_SignShapeCheck: { DrawSignCheck(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeCircle: { rtSign.Deflate(1, 1); DrawSignCircle(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeCross: { DrawSignCross(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeDiamond: { DrawSignDiamond(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeSquare: { DrawSignSquare(pGraphics, &rtSign, dwColor, pMatrix); break; } case FWL_STYLEEXT_CKB_SignShapeStar: { DrawSignStar(pGraphics, &rtSign, dwColor, pMatrix); break; } } } else { FillSoildRect(pGraphics, ArgbEncode(255, 33, 161, 33), &rtSign, pMatrix); } }
void CFWL_FormTP::DrawCaption(CFX_Graphics* pGraphics, const CFX_RectF* pRect, FWLTHEME_STATE eState, CFX_Matrix* pMatrix, int32_t iActive) { CFX_RectF rt; FX_FLOAT fBottom, fRight; fBottom = pRect->bottom(); fRight = pRect->right(); rt.Set(pRect->left, pRect->top, pRect->width, 1); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeTop[iActive][0], &rt, pMatrix); rt.Offset(0, 1); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeTop[iActive][1], &rt, pMatrix); rt.Offset(0, 1); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeTop[iActive][2], &rt, pMatrix); rt.Set(pRect->left, pRect->bottom() - 1, pRect->width, 1); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeBottom[iActive][2], &rt, pMatrix); rt.Offset(0, -1); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeBottom[iActive][1], &rt, pMatrix); rt.Set(pRect->left, pRect->top, 1, pRect->height); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeLeft[iActive][2], &rt, pMatrix); rt.Set(pRect->left + 1, pRect->top + 1, 1, fBottom - 1); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeLeft[iActive][1], &rt, pMatrix); rt.Set(pRect->left + 2, pRect->top + 2, 1, fBottom - 2); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeLeft[iActive][0], &rt, pMatrix); rt.Set(fRight - 1, pRect->top, pRect->width, pRect->height); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeRight[iActive][2], &rt, pMatrix); rt.Set(fRight - 2, pRect->top + 1, 1, fBottom - 1); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeRight[iActive][1], &rt, pMatrix); rt.Set(fRight - 3, pRect->top + 2, 1, fBottom - 2); FillSoildRect(pGraphics, m_pThemeData->clrHeadEdgeRight[iActive][0], &rt, pMatrix); CFX_RectF rect(*pRect); rect.Set(rect.left + 3, rect.top + 3, rect.width - 6, rect.height - 5); if (iActive == 0) { pGraphics->StretchImage(m_pActiveBitmap, rect, pMatrix); } else { pGraphics->StretchImage(m_pDeactivebitmap, rect, pMatrix); } }