| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fwl/theme/cfwl_checkboxtp.h" | 7 #include "xfa/fwl/theme/cfwl_checkboxtp.h" |
| 8 | 8 |
| 9 #include "core/fxge/include/cfx_pathdata.h" | 9 #include "core/fxge/include/cfx_pathdata.h" |
| 10 #include "xfa/fde/tto/fde_textout.h" | 10 #include "xfa/fde/tto/fde_textout.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 const int kSignBorder = 2; | 21 const int kSignBorder = 2; |
| 22 const int kSignPath = 100; | 22 const int kSignPath = 100; |
| 23 | 23 |
| 24 } // namespace | 24 } // namespace |
| 25 | 25 |
| 26 #define CHECKBOX_COLOR_BOXLT1 (ArgbEncode(255, 172, 168, 153)) | 26 #define CHECKBOX_COLOR_BOXLT1 (ArgbEncode(255, 172, 168, 153)) |
| 27 #define CHECKBOX_COLOR_BOXLT2 (ArgbEncode(255, 113, 111, 100)) | 27 #define CHECKBOX_COLOR_BOXLT2 (ArgbEncode(255, 113, 111, 100)) |
| 28 #define CHECKBOX_COLOR_BOXRB1 (ArgbEncode(255, 241, 239, 226)) | 28 #define CHECKBOX_COLOR_BOXRB1 (ArgbEncode(255, 241, 239, 226)) |
| 29 #define CHECKBOX_COLOR_BOXRB2 (ArgbEncode(255, 255, 255, 255)) | 29 #define CHECKBOX_COLOR_BOXRB2 (ArgbEncode(255, 255, 255, 255)) |
| 30 | 30 |
| 31 CFWL_CheckBoxTP::CFWL_CheckBoxTP() | 31 CFWL_CheckBoxTP::CFWL_CheckBoxTP() : m_pThemeData(new CKBThemeData) { |
| 32 : m_pThemeData(new CKBThemeData), m_pCheckPath(nullptr) { | |
| 33 SetThemeData(0); | 32 SetThemeData(0); |
| 34 } | 33 } |
| 35 | 34 |
| 36 CFWL_CheckBoxTP::~CFWL_CheckBoxTP() { | 35 CFWL_CheckBoxTP::~CFWL_CheckBoxTP() { |
| 37 delete m_pThemeData; | 36 if (m_pCheckPath) |
| 38 if (m_pCheckPath) { | |
| 39 m_pCheckPath->Clear(); | 37 m_pCheckPath->Clear(); |
| 40 delete m_pCheckPath; | |
| 41 } | |
| 42 } | 38 } |
| 43 | 39 |
| 44 bool CFWL_CheckBoxTP::IsValidWidget(IFWL_Widget* pWidget) { | 40 bool CFWL_CheckBoxTP::IsValidWidget(IFWL_Widget* pWidget) { |
| 45 return pWidget && pWidget->GetClassID() == FWL_Type::CheckBox; | 41 return pWidget && pWidget->GetClassID() == FWL_Type::CheckBox; |
| 46 } | 42 } |
| 47 | 43 |
| 48 uint32_t CFWL_CheckBoxTP::SetThemeID(IFWL_Widget* pWidget, | 44 uint32_t CFWL_CheckBoxTP::SetThemeID(IFWL_Widget* pWidget, |
| 49 uint32_t dwThemeID, | 45 uint32_t dwThemeID, |
| 50 FX_BOOL bChildren) { | 46 FX_BOOL bChildren) { |
| 51 if (m_pThemeData) { | 47 if (m_pThemeData) |
| 52 SetThemeData(FWL_GetThemeColor(dwThemeID)); | 48 SetThemeData(FWL_GetThemeColor(dwThemeID)); |
| 53 } | |
| 54 return CFWL_WidgetTP::SetThemeID(pWidget, dwThemeID, bChildren); | 49 return CFWL_WidgetTP::SetThemeID(pWidget, dwThemeID, bChildren); |
| 55 } | 50 } |
| 51 |
| 56 FX_BOOL CFWL_CheckBoxTP::DrawText(CFWL_ThemeText* pParams) { | 52 FX_BOOL CFWL_CheckBoxTP::DrawText(CFWL_ThemeText* pParams) { |
| 57 if (!m_pTextOut) | 53 if (!m_pTextOut) |
| 58 return FALSE; | 54 return FALSE; |
| 59 m_pTextOut->SetTextColor(pParams->m_dwStates & CFWL_PartState_Disabled | 55 m_pTextOut->SetTextColor(pParams->m_dwStates & CFWL_PartState_Disabled |
| 60 ? FWLTHEME_CAPACITY_TextDisColor | 56 ? FWLTHEME_CAPACITY_TextDisColor |
| 61 : FWLTHEME_CAPACITY_TextColor); | 57 : FWLTHEME_CAPACITY_TextColor); |
| 62 return CFWL_WidgetTP::DrawText(pParams); | 58 return CFWL_WidgetTP::DrawText(pParams); |
| 63 } | 59 } |
| 60 |
| 64 FX_BOOL CFWL_CheckBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) { | 61 FX_BOOL CFWL_CheckBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) { |
| 65 if (!pParams) | 62 if (!pParams) |
| 66 return FALSE; | 63 return FALSE; |
| 67 switch (pParams->m_iPart) { | 64 switch (pParams->m_iPart) { |
| 68 case CFWL_Part::Border: { | 65 case CFWL_Part::Border: { |
| 69 DrawBorder(pParams->m_pGraphics, &pParams->m_rtPart, &pParams->m_matrix); | 66 DrawBorder(pParams->m_pGraphics, &pParams->m_rtPart, &pParams->m_matrix); |
| 70 break; | 67 break; |
| 71 } | 68 } |
| 72 case CFWL_Part::Edge: { | 69 case CFWL_Part::Edge: { |
| 73 DrawEdge(pParams->m_pGraphics, pParams->m_pWidget->GetStyles(), | 70 DrawEdge(pParams->m_pGraphics, pParams->m_pWidget->GetStyles(), |
| (...skipping 19 matching lines...) Expand all Loading... |
| 93 } | 90 } |
| 94 DrawSignBorder( | 91 DrawSignBorder( |
| 95 pParams->m_pWidget, pParams->m_pGraphics, &pParams->m_rtPart, | 92 pParams->m_pWidget, pParams->m_pGraphics, &pParams->m_rtPart, |
| 96 pParams->m_dwStates & CFWL_PartState_Disabled, &pParams->m_matrix); | 93 pParams->m_dwStates & CFWL_PartState_Disabled, &pParams->m_matrix); |
| 97 break; | 94 break; |
| 98 } | 95 } |
| 99 default: { return FALSE; } | 96 default: { return FALSE; } |
| 100 } | 97 } |
| 101 return TRUE; | 98 return TRUE; |
| 102 } | 99 } |
| 100 |
| 103 FWL_Error CFWL_CheckBoxTP::Initialize() { | 101 FWL_Error CFWL_CheckBoxTP::Initialize() { |
| 104 InitTTO(); | 102 InitTTO(); |
| 105 return CFWL_WidgetTP::Initialize(); | 103 return CFWL_WidgetTP::Initialize(); |
| 106 } | 104 } |
| 105 |
| 107 FWL_Error CFWL_CheckBoxTP::Finalize() { | 106 FWL_Error CFWL_CheckBoxTP::Finalize() { |
| 108 FinalizeTTO(); | 107 FinalizeTTO(); |
| 109 return CFWL_WidgetTP::Finalize(); | 108 return CFWL_WidgetTP::Finalize(); |
| 110 } | 109 } |
| 110 |
| 111 void CFWL_CheckBoxTP::DrawBoxBk(IFWL_Widget* pWidget, | 111 void CFWL_CheckBoxTP::DrawBoxBk(IFWL_Widget* pWidget, |
| 112 CFX_Graphics* pGraphics, | 112 CFX_Graphics* pGraphics, |
| 113 const CFX_RectF* pRect, | 113 const CFX_RectF* pRect, |
| 114 uint32_t dwStates, | 114 uint32_t dwStates, |
| 115 CFX_Matrix* pMatrix) { | 115 CFX_Matrix* pMatrix) { |
| 116 dwStates &= 0x03; | 116 dwStates &= 0x03; |
| 117 int32_t fillMode = FXFILL_WINDING; | 117 int32_t fillMode = FXFILL_WINDING; |
| 118 uint32_t dwStyleEx = pWidget->GetStylesEx(); | 118 uint32_t dwStyleEx = pWidget->GetStylesEx(); |
| 119 dwStyleEx &= FWL_STYLEEXT_CKB_ShapeMask; | 119 dwStyleEx &= FWL_STYLEEXT_CKB_ShapeMask; |
| 120 CFX_Path path; | 120 CFX_Path path; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 } | 152 } |
| 153 if (dwStates & CFWL_PartState_Checked) { | 153 if (dwStates & CFWL_PartState_Checked) { |
| 154 iTheme += 4; | 154 iTheme += 4; |
| 155 } else if (dwStates & CFWL_PartState_Neutral) { | 155 } else if (dwStates & CFWL_PartState_Neutral) { |
| 156 iTheme += 8; | 156 iTheme += 8; |
| 157 } | 157 } |
| 158 DrawAxialShading(pGraphics, pRect->left - 1, pRect->top - 1, fRight, fBottom, | 158 DrawAxialShading(pGraphics, pRect->left - 1, pRect->top - 1, fRight, fBottom, |
| 159 m_pThemeData->clrBoxBk[iTheme][0], | 159 m_pThemeData->clrBoxBk[iTheme][0], |
| 160 m_pThemeData->clrBoxBk[iTheme][1], &path, fillMode, pMatrix); | 160 m_pThemeData->clrBoxBk[iTheme][1], &path, fillMode, pMatrix); |
| 161 } | 161 } |
| 162 |
| 162 void CFWL_CheckBoxTP::DrawSign(IFWL_Widget* pWidget, | 163 void CFWL_CheckBoxTP::DrawSign(IFWL_Widget* pWidget, |
| 163 CFX_Graphics* pGraphics, | 164 CFX_Graphics* pGraphics, |
| 164 const CFX_RectF* pRtBox, | 165 const CFX_RectF* pRtBox, |
| 165 uint32_t dwStates, | 166 uint32_t dwStates, |
| 166 CFX_Matrix* pMatrix) { | 167 CFX_Matrix* pMatrix) { |
| 167 CFX_RectF rtSign(*pRtBox); | 168 CFX_RectF rtSign(*pRtBox); |
| 168 rtSign.Deflate(kSignMargin, kSignMargin); | 169 rtSign.Deflate(kSignMargin, kSignMargin); |
| 169 uint32_t dwColor = m_pThemeData->clrSignCheck; | 170 uint32_t dwColor = m_pThemeData->clrSignCheck; |
| 170 bool bCheck = true; | 171 bool bCheck = true; |
| 171 if ((dwStates & CFWL_PartState_Disabled) && | 172 if ((dwStates & CFWL_PartState_Disabled) && |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 } | 210 } |
| 210 case FWL_STYLEEXT_CKB_SignShapeStar: { | 211 case FWL_STYLEEXT_CKB_SignShapeStar: { |
| 211 DrawSignStar(pGraphics, &rtSign, dwColor, pMatrix); | 212 DrawSignStar(pGraphics, &rtSign, dwColor, pMatrix); |
| 212 break; | 213 break; |
| 213 } | 214 } |
| 214 } | 215 } |
| 215 } else { | 216 } else { |
| 216 FillSoildRect(pGraphics, ArgbEncode(255, 33, 161, 33), &rtSign, pMatrix); | 217 FillSoildRect(pGraphics, ArgbEncode(255, 33, 161, 33), &rtSign, pMatrix); |
| 217 } | 218 } |
| 218 } | 219 } |
| 220 |
| 219 void CFWL_CheckBoxTP::DrawSignNeutral(CFX_Graphics* pGraphics, | 221 void CFWL_CheckBoxTP::DrawSignNeutral(CFX_Graphics* pGraphics, |
| 220 const CFX_RectF* pRtSign, | 222 const CFX_RectF* pRtSign, |
| 221 CFX_Matrix* pMatrix) { | 223 CFX_Matrix* pMatrix) { |
| 222 ((CFX_RectF*)pRtSign)->Inflate(-3, -3); | 224 ((CFX_RectF*)pRtSign)->Inflate(-3, -3); |
| 223 FillSoildRect(pGraphics, m_pThemeData->clrSignNeutral, pRtSign, pMatrix); | 225 FillSoildRect(pGraphics, m_pThemeData->clrSignNeutral, pRtSign, pMatrix); |
| 224 } | 226 } |
| 227 |
| 225 void CFWL_CheckBoxTP::DrawSignCheck(CFX_Graphics* pGraphics, | 228 void CFWL_CheckBoxTP::DrawSignCheck(CFX_Graphics* pGraphics, |
| 226 const CFX_RectF* pRtSign, | 229 const CFX_RectF* pRtSign, |
| 227 FX_ARGB argbFill, | 230 FX_ARGB argbFill, |
| 228 CFX_Matrix* pMatrix) { | 231 CFX_Matrix* pMatrix) { |
| 229 if (!m_pCheckPath) { | 232 if (!m_pCheckPath) |
| 230 initCheckPath(pRtSign->width); | 233 InitCheckPath(pRtSign->width); |
| 231 } | 234 |
| 232 CFX_Matrix mt; | 235 CFX_Matrix mt; |
| 233 mt.SetIdentity(); | 236 mt.SetIdentity(); |
| 234 mt.Translate(pRtSign->left, pRtSign->top); | 237 mt.Translate(pRtSign->left, pRtSign->top); |
| 235 mt.Concat(*pMatrix); | 238 mt.Concat(*pMatrix); |
| 236 CFX_Color crFill(argbFill); | 239 CFX_Color crFill(argbFill); |
| 237 pGraphics->SaveGraphState(); | 240 pGraphics->SaveGraphState(); |
| 238 pGraphics->SetFillColor(&crFill); | 241 pGraphics->SetFillColor(&crFill); |
| 239 pGraphics->FillPath(m_pCheckPath, FXFILL_WINDING, &mt); | 242 pGraphics->FillPath(m_pCheckPath.get(), FXFILL_WINDING, &mt); |
| 240 pGraphics->RestoreGraphState(); | 243 pGraphics->RestoreGraphState(); |
| 241 } | 244 } |
| 245 |
| 242 void CFWL_CheckBoxTP::DrawSignCircle(CFX_Graphics* pGraphics, | 246 void CFWL_CheckBoxTP::DrawSignCircle(CFX_Graphics* pGraphics, |
| 243 const CFX_RectF* pRtSign, | 247 const CFX_RectF* pRtSign, |
| 244 FX_ARGB argbFill, | 248 FX_ARGB argbFill, |
| 245 CFX_Matrix* pMatrix) { | 249 CFX_Matrix* pMatrix) { |
| 246 CFX_Path path; | 250 CFX_Path path; |
| 247 path.Create(); | 251 path.Create(); |
| 248 path.AddEllipse(*pRtSign); | 252 path.AddEllipse(*pRtSign); |
| 249 CFX_Color crFill(argbFill); | 253 CFX_Color crFill(argbFill); |
| 250 pGraphics->SaveGraphState(); | 254 pGraphics->SaveGraphState(); |
| 251 pGraphics->SetFillColor(&crFill); | 255 pGraphics->SetFillColor(&crFill); |
| 252 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); | 256 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); |
| 253 pGraphics->RestoreGraphState(); | 257 pGraphics->RestoreGraphState(); |
| 254 } | 258 } |
| 259 |
| 255 void CFWL_CheckBoxTP::DrawSignCross(CFX_Graphics* pGraphics, | 260 void CFWL_CheckBoxTP::DrawSignCross(CFX_Graphics* pGraphics, |
| 256 const CFX_RectF* pRtSign, | 261 const CFX_RectF* pRtSign, |
| 257 FX_ARGB argbFill, | 262 FX_ARGB argbFill, |
| 258 CFX_Matrix* pMatrix) { | 263 CFX_Matrix* pMatrix) { |
| 259 CFX_Path path; | 264 CFX_Path path; |
| 260 path.Create(); | 265 path.Create(); |
| 261 FX_FLOAT fRight = pRtSign->right(); | 266 FX_FLOAT fRight = pRtSign->right(); |
| 262 FX_FLOAT fBottom = pRtSign->bottom(); | 267 FX_FLOAT fBottom = pRtSign->bottom(); |
| 263 path.AddLine(pRtSign->left, pRtSign->top, fRight, fBottom); | 268 path.AddLine(pRtSign->left, pRtSign->top, fRight, fBottom); |
| 264 path.AddLine(pRtSign->left, fBottom, fRight, pRtSign->top); | 269 path.AddLine(pRtSign->left, fBottom, fRight, pRtSign->top); |
| 265 CFX_Color crFill(argbFill); | 270 CFX_Color crFill(argbFill); |
| 266 pGraphics->SaveGraphState(); | 271 pGraphics->SaveGraphState(); |
| 267 pGraphics->SetStrokeColor(&crFill); | 272 pGraphics->SetStrokeColor(&crFill); |
| 268 pGraphics->SetLineWidth(1.0f); | 273 pGraphics->SetLineWidth(1.0f); |
| 269 pGraphics->StrokePath(&path, pMatrix); | 274 pGraphics->StrokePath(&path, pMatrix); |
| 270 pGraphics->RestoreGraphState(); | 275 pGraphics->RestoreGraphState(); |
| 271 } | 276 } |
| 277 |
| 272 void CFWL_CheckBoxTP::DrawSignDiamond(CFX_Graphics* pGraphics, | 278 void CFWL_CheckBoxTP::DrawSignDiamond(CFX_Graphics* pGraphics, |
| 273 const CFX_RectF* pRtSign, | 279 const CFX_RectF* pRtSign, |
| 274 FX_ARGB argbFill, | 280 FX_ARGB argbFill, |
| 275 CFX_Matrix* pMatrix) { | 281 CFX_Matrix* pMatrix) { |
| 276 CFX_Path path; | 282 CFX_Path path; |
| 277 path.Create(); | 283 path.Create(); |
| 278 FX_FLOAT fWidth = pRtSign->width; | 284 FX_FLOAT fWidth = pRtSign->width; |
| 279 FX_FLOAT fHeight = pRtSign->height; | 285 FX_FLOAT fHeight = pRtSign->height; |
| 280 FX_FLOAT fBottom = pRtSign->bottom(); | 286 FX_FLOAT fBottom = pRtSign->bottom(); |
| 281 path.MoveTo(pRtSign->left + fWidth / 2, pRtSign->top); | 287 path.MoveTo(pRtSign->left + fWidth / 2, pRtSign->top); |
| 282 path.LineTo(pRtSign->left, pRtSign->top + fHeight / 2); | 288 path.LineTo(pRtSign->left, pRtSign->top + fHeight / 2); |
| 283 path.LineTo(pRtSign->left + fWidth / 2, fBottom); | 289 path.LineTo(pRtSign->left + fWidth / 2, fBottom); |
| 284 path.LineTo(pRtSign->right(), pRtSign->top + fHeight / 2); | 290 path.LineTo(pRtSign->right(), pRtSign->top + fHeight / 2); |
| 285 path.LineTo(pRtSign->left + fWidth / 2, pRtSign->top); | 291 path.LineTo(pRtSign->left + fWidth / 2, pRtSign->top); |
| 286 CFX_Color crFill(argbFill); | 292 CFX_Color crFill(argbFill); |
| 287 pGraphics->SaveGraphState(); | 293 pGraphics->SaveGraphState(); |
| 288 pGraphics->SetFillColor(&crFill); | 294 pGraphics->SetFillColor(&crFill); |
| 289 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); | 295 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); |
| 290 pGraphics->RestoreGraphState(); | 296 pGraphics->RestoreGraphState(); |
| 291 } | 297 } |
| 298 |
| 292 void CFWL_CheckBoxTP::DrawSignSquare(CFX_Graphics* pGraphics, | 299 void CFWL_CheckBoxTP::DrawSignSquare(CFX_Graphics* pGraphics, |
| 293 const CFX_RectF* pRtSign, | 300 const CFX_RectF* pRtSign, |
| 294 FX_ARGB argbFill, | 301 FX_ARGB argbFill, |
| 295 CFX_Matrix* pMatrix) { | 302 CFX_Matrix* pMatrix) { |
| 296 CFX_Path path; | 303 CFX_Path path; |
| 297 path.Create(); | 304 path.Create(); |
| 298 path.AddRectangle(pRtSign->left, pRtSign->top, pRtSign->width, | 305 path.AddRectangle(pRtSign->left, pRtSign->top, pRtSign->width, |
| 299 pRtSign->height); | 306 pRtSign->height); |
| 300 CFX_Color crFill(argbFill); | 307 CFX_Color crFill(argbFill); |
| 301 pGraphics->SaveGraphState(); | 308 pGraphics->SaveGraphState(); |
| 302 pGraphics->SetFillColor(&crFill); | 309 pGraphics->SetFillColor(&crFill); |
| 303 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); | 310 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); |
| 304 pGraphics->RestoreGraphState(); | 311 pGraphics->RestoreGraphState(); |
| 305 } | 312 } |
| 313 |
| 306 void CFWL_CheckBoxTP::DrawSignStar(CFX_Graphics* pGraphics, | 314 void CFWL_CheckBoxTP::DrawSignStar(CFX_Graphics* pGraphics, |
| 307 const CFX_RectF* pRtSign, | 315 const CFX_RectF* pRtSign, |
| 308 FX_ARGB argbFill, | 316 FX_ARGB argbFill, |
| 309 CFX_Matrix* pMatrix) { | 317 CFX_Matrix* pMatrix) { |
| 310 CFX_Path path; | 318 CFX_Path path; |
| 311 path.Create(); | 319 path.Create(); |
| 312 FX_FLOAT fBottom = pRtSign->bottom(); | 320 FX_FLOAT fBottom = pRtSign->bottom(); |
| 313 FX_FLOAT fRadius = | 321 FX_FLOAT fRadius = |
| 314 (pRtSign->top - fBottom) / (1 + (FX_FLOAT)cos(FX_PI / 5.0f)); | 322 (pRtSign->top - fBottom) / (1 + (FX_FLOAT)cos(FX_PI / 5.0f)); |
| 315 CFX_PointF ptCenter((pRtSign->left + pRtSign->right()) / 2.0f, | 323 CFX_PointF ptCenter((pRtSign->left + pRtSign->right()) / 2.0f, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 329 nNext -= 5; | 337 nNext -= 5; |
| 330 } | 338 } |
| 331 path.LineTo(px[nNext], py[nNext]); | 339 path.LineTo(px[nNext], py[nNext]); |
| 332 } | 340 } |
| 333 CFX_Color crFill(argbFill); | 341 CFX_Color crFill(argbFill); |
| 334 pGraphics->SaveGraphState(); | 342 pGraphics->SaveGraphState(); |
| 335 pGraphics->SetFillColor(&crFill); | 343 pGraphics->SetFillColor(&crFill); |
| 336 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); | 344 pGraphics->FillPath(&path, FXFILL_WINDING, pMatrix); |
| 337 pGraphics->RestoreGraphState(); | 345 pGraphics->RestoreGraphState(); |
| 338 } | 346 } |
| 347 |
| 339 void CFWL_CheckBoxTP::DrawSignBorder(IFWL_Widget* pWidget, | 348 void CFWL_CheckBoxTP::DrawSignBorder(IFWL_Widget* pWidget, |
| 340 CFX_Graphics* pGraphics, | 349 CFX_Graphics* pGraphics, |
| 341 const CFX_RectF* pRtBox, | 350 const CFX_RectF* pRtBox, |
| 342 FX_BOOL bDisable, | 351 FX_BOOL bDisable, |
| 343 CFX_Matrix* pMatrix) { | 352 CFX_Matrix* pMatrix) { |
| 344 switch (pWidget->GetStylesEx() & FWL_STYLEEXT_CKB_ShapeMask) { | 353 switch (pWidget->GetStylesEx() & FWL_STYLEEXT_CKB_ShapeMask) { |
| 345 case FWL_STYLEEXT_CKB_ShapeSolidSquare: { | 354 case FWL_STYLEEXT_CKB_ShapeSolidSquare: { |
| 346 DrawAnnulusRect(pGraphics, bDisable ? m_pThemeData->clrSignBorderDisable | 355 DrawAnnulusRect(pGraphics, bDisable ? m_pThemeData->clrSignBorderDisable |
| 347 : m_pThemeData->clrSignBorderNormal, | 356 : m_pThemeData->clrSignBorderNormal, |
| 348 pRtBox, 1, pMatrix); | 357 pRtBox, 1, pMatrix); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 361 break; | 370 break; |
| 362 } | 371 } |
| 363 case FWL_STYLEEXT_CKB_ShapeSunkenCircle: { | 372 case FWL_STYLEEXT_CKB_ShapeSunkenCircle: { |
| 364 Draw3DCircle(pGraphics, FWLTHEME_EDGE_Sunken, kSignBorder, pRtBox, | 373 Draw3DCircle(pGraphics, FWLTHEME_EDGE_Sunken, kSignBorder, pRtBox, |
| 365 CHECKBOX_COLOR_BOXLT1, CHECKBOX_COLOR_BOXLT2, | 374 CHECKBOX_COLOR_BOXLT1, CHECKBOX_COLOR_BOXLT2, |
| 366 CHECKBOX_COLOR_BOXRB1, CHECKBOX_COLOR_BOXRB2, pMatrix); | 375 CHECKBOX_COLOR_BOXRB1, CHECKBOX_COLOR_BOXRB2, pMatrix); |
| 367 break; | 376 break; |
| 368 } | 377 } |
| 369 } | 378 } |
| 370 } | 379 } |
| 380 |
| 371 void CFWL_CheckBoxTP::SetThemeData(uint32_t dwID) { | 381 void CFWL_CheckBoxTP::SetThemeData(uint32_t dwID) { |
| 372 uint32_t* pData = (uint32_t*)&m_pThemeData->clrBoxBk; | 382 uint32_t* pData = (uint32_t*)&m_pThemeData->clrBoxBk; |
| 373 if (dwID) { | 383 if (dwID) { |
| 374 *pData++ = 0, *pData++ = 0, *pData++ = ArgbEncode(255, 220, 220, 215), | 384 *pData++ = 0, *pData++ = 0, *pData++ = ArgbEncode(255, 220, 220, 215), |
| 375 *pData++ = ArgbEncode(255, 255, 255, 255), | 385 *pData++ = ArgbEncode(255, 255, 255, 255), |
| 376 *pData++ = ArgbEncode(255, 255, 240, 207), | 386 *pData++ = ArgbEncode(255, 255, 240, 207), |
| 377 *pData++ = ArgbEncode(255, 248, 179, 48), | 387 *pData++ = ArgbEncode(255, 248, 179, 48), |
| 378 *pData++ = ArgbEncode(255, 176, 176, 167), | 388 *pData++ = ArgbEncode(255, 176, 176, 167), |
| 379 *pData++ = ArgbEncode(255, 241, 239, 239), | 389 *pData++ = ArgbEncode(255, 241, 239, 239), |
| 380 *pData++ = ArgbEncode(255, 255, 255, 255), | 390 *pData++ = ArgbEncode(255, 255, 255, 255), |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 *pData++ = ArgbEncode(255, 255, 255, 255); | 439 *pData++ = ArgbEncode(255, 255, 255, 255); |
| 430 m_pThemeData->clrSignBorderNormal = ArgbEncode(255, 28, 81, 128); | 440 m_pThemeData->clrSignBorderNormal = ArgbEncode(255, 28, 81, 128); |
| 431 m_pThemeData->clrSignBorderDisable = ArgbEncode(255, 202, 200, 187); | 441 m_pThemeData->clrSignBorderDisable = ArgbEncode(255, 202, 200, 187); |
| 432 m_pThemeData->clrSignCheck = ArgbEncode(255, 28, 81, 128); | 442 m_pThemeData->clrSignCheck = ArgbEncode(255, 28, 81, 128); |
| 433 m_pThemeData->clrSignNeutral = ArgbEncode(255, 28, 134, 26); | 443 m_pThemeData->clrSignNeutral = ArgbEncode(255, 28, 134, 26); |
| 434 m_pThemeData->clrSignNeutralNormal = ArgbEncode(255, 114, 192, 113); | 444 m_pThemeData->clrSignNeutralNormal = ArgbEncode(255, 114, 192, 113); |
| 435 m_pThemeData->clrSignNeutralHover = ArgbEncode(255, 33, 161, 33); | 445 m_pThemeData->clrSignNeutralHover = ArgbEncode(255, 33, 161, 33); |
| 436 m_pThemeData->clrSignNeutralPressed = ArgbEncode(255, 28, 134, 26); | 446 m_pThemeData->clrSignNeutralPressed = ArgbEncode(255, 28, 134, 26); |
| 437 } | 447 } |
| 438 } | 448 } |
| 439 void CFWL_CheckBoxTP::initCheckPath(FX_FLOAT fCheckLen) { | 449 |
| 450 void CFWL_CheckBoxTP::InitCheckPath(FX_FLOAT fCheckLen) { |
| 440 if (!m_pCheckPath) { | 451 if (!m_pCheckPath) { |
| 441 m_pCheckPath = new CFX_Path; | 452 m_pCheckPath.reset(new CFX_Path); |
| 442 m_pCheckPath->Create(); | 453 m_pCheckPath->Create(); |
| 443 FX_FLOAT fWidth = kSignPath; | 454 FX_FLOAT fWidth = kSignPath; |
| 444 FX_FLOAT fHeight = -kSignPath; | 455 FX_FLOAT fHeight = -kSignPath; |
| 445 FX_FLOAT fBottom = kSignPath; | 456 FX_FLOAT fBottom = kSignPath; |
| 446 CFX_PointF pt1(fWidth / 15.0f, fBottom + fHeight * 2 / 5.0f); | 457 CFX_PointF pt1(fWidth / 15.0f, fBottom + fHeight * 2 / 5.0f); |
| 447 CFX_PointF pt2(fWidth / 4.5f, fBottom + fHeight / 16.0f); | 458 CFX_PointF pt2(fWidth / 4.5f, fBottom + fHeight / 16.0f); |
| 448 CFX_PointF pt3(fWidth / 3.0f, fBottom); | 459 CFX_PointF pt3(fWidth / 3.0f, fBottom); |
| 449 CFX_PointF pt4(fWidth * 14 / 15.0f, fBottom + fHeight * 15 / 16.0f); | 460 CFX_PointF pt4(fWidth * 14 / 15.0f, fBottom + fHeight * 15 / 16.0f); |
| 450 CFX_PointF pt5(fWidth / 3.6f, fBottom + fHeight / 3.5f); | 461 CFX_PointF pt5(fWidth / 3.6f, fBottom + fHeight / 3.5f); |
| 451 CFX_PointF pt12(fWidth / 7.0f, fBottom + fHeight * 2 / 7.0f); | 462 CFX_PointF pt12(fWidth / 7.0f, fBottom + fHeight * 2 / 7.0f); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 pt1.x + px2 * FX_BEZIER, pt1.y + py2 * FX_BEZIER, | 508 pt1.x + px2 * FX_BEZIER, pt1.y + py2 * FX_BEZIER, |
| 498 pt1.x, pt1.y); | 509 pt1.x, pt1.y); |
| 499 FX_FLOAT fScale = fCheckLen / kSignPath; | 510 FX_FLOAT fScale = fCheckLen / kSignPath; |
| 500 CFX_Matrix mt; | 511 CFX_Matrix mt; |
| 501 mt.Set(1, 0, 0, 1, 0, 0); | 512 mt.Set(1, 0, 0, 1, 0, 0); |
| 502 mt.Scale(fScale, fScale); | 513 mt.Scale(fScale, fScale); |
| 503 CFX_PathData* pData = m_pCheckPath->GetPathData(); | 514 CFX_PathData* pData = m_pCheckPath->GetPathData(); |
| 504 pData->Transform(&mt); | 515 pData->Transform(&mt); |
| 505 } | 516 } |
| 506 } | 517 } |
| OLD | NEW |