Esempio n. 1
0
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;
}
Esempio n. 2
0
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);
  }
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
void CFWL_WidgetTP::FillBackground(CFX_Graphics* pGraphics,
                                   const CFX_RectF* pRect,
                                   CFX_Matrix* pMatrix) {
  FillSoildRect(pGraphics, FWLTHEME_COLOR_Background, pRect, pMatrix);
}
Esempio n. 5
0
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);
}
Esempio n. 6
0
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);
  }
}
Esempio n. 7
0
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);
  }
}