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/include/fwl/theme/formtp.h" | 7 #include "xfa/include/fwl/theme/formtp.h" |
8 | 8 |
9 #include "xfa/fde/tto/fde_textout.h" | 9 #include "xfa/fde/tto/fde_textout.h" |
10 #include "xfa/fwl/core/cfwl_themebackground.h" | 10 #include "xfa/fwl/core/cfwl_themebackground.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 } | 55 } |
56 if (m_pDeactivebitmap) { | 56 if (m_pDeactivebitmap) { |
57 delete m_pDeactivebitmap; | 57 delete m_pDeactivebitmap; |
58 m_pDeactivebitmap = NULL; | 58 m_pDeactivebitmap = NULL; |
59 } | 59 } |
60 return CFWL_WidgetTP::Finalize(); | 60 return CFWL_WidgetTP::Finalize(); |
61 } | 61 } |
62 FX_BOOL CFWL_FormTP::IsValidWidget(IFWL_Widget* pWidget) { | 62 FX_BOOL CFWL_FormTP::IsValidWidget(IFWL_Widget* pWidget) { |
63 if (!pWidget) | 63 if (!pWidget) |
64 return FALSE; | 64 return FALSE; |
65 FX_DWORD dwHash = pWidget->GetClassID(); | 65 uint32_t dwHash = pWidget->GetClassID(); |
66 return dwHash == FWL_CLASSHASH_Form; | 66 return dwHash == FWL_CLASSHASH_Form; |
67 } | 67 } |
68 FX_DWORD CFWL_FormTP::SetThemeID(IFWL_Widget* pWidget, | 68 uint32_t CFWL_FormTP::SetThemeID(IFWL_Widget* pWidget, |
69 FX_DWORD dwThemeID, | 69 uint32_t dwThemeID, |
70 FX_BOOL bChildren) { | 70 FX_BOOL bChildren) { |
71 if (m_pThemeData) { | 71 if (m_pThemeData) { |
72 SetThemeData(FWL_GetThemeColor(dwThemeID)); | 72 SetThemeData(FWL_GetThemeColor(dwThemeID)); |
73 } | 73 } |
74 InitCaption(TRUE); | 74 InitCaption(TRUE); |
75 InitCaption(FALSE); | 75 InitCaption(FALSE); |
76 return CFWL_WidgetTP::SetThemeID(pWidget, dwThemeID, bChildren); | 76 return CFWL_WidgetTP::SetThemeID(pWidget, dwThemeID, bChildren); |
77 } | 77 } |
78 FX_BOOL CFWL_FormTP::DrawBackground(CFWL_ThemeBackground* pParams) { | 78 FX_BOOL CFWL_FormTP::DrawBackground(CFWL_ThemeBackground* pParams) { |
79 if (!pParams) | 79 if (!pParams) |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 if (!m_pTextOut) | 152 if (!m_pTextOut) |
153 return FALSE; | 153 return FALSE; |
154 if (pParams->m_iPart == FWL_PART_FRM_Caption) { | 154 if (pParams->m_iPart == FWL_PART_FRM_Caption) { |
155 m_pTextOut->SetTextColor(0xFFFFFFFF); | 155 m_pTextOut->SetTextColor(0xFFFFFFFF); |
156 } else { | 156 } else { |
157 m_pTextOut->SetTextColor(0xFF000000); | 157 m_pTextOut->SetTextColor(0xFF000000); |
158 } | 158 } |
159 return CFWL_WidgetTP::DrawText(pParams); | 159 return CFWL_WidgetTP::DrawText(pParams); |
160 } | 160 } |
161 void* CFWL_FormTP::GetCapacity(CFWL_ThemePart* pThemePart, | 161 void* CFWL_FormTP::GetCapacity(CFWL_ThemePart* pThemePart, |
162 FX_DWORD dwCapacity) { | 162 uint32_t dwCapacity) { |
163 FX_BOOL bDefPro = FALSE; | 163 FX_BOOL bDefPro = FALSE; |
164 FX_BOOL bDwordVal = FALSE; | 164 FX_BOOL bDwordVal = FALSE; |
165 switch (dwCapacity) { | 165 switch (dwCapacity) { |
166 case FWL_WGTCAPACITY_CXBorder: { | 166 case FWL_WGTCAPACITY_CXBorder: { |
167 m_fValue = FWLTHEME_CAPACITY_CXFormBorder; | 167 m_fValue = FWLTHEME_CAPACITY_CXFormBorder; |
168 break; | 168 break; |
169 } | 169 } |
170 case FWL_WGTCAPACITY_CYBorder: { | 170 case FWL_WGTCAPACITY_CYBorder: { |
171 m_fValue = FWLTHEME_CAPACITY_CYFormBorder; | 171 m_fValue = FWLTHEME_CAPACITY_CYFormBorder; |
172 break; | 172 break; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 } | 223 } |
224 case FWL_PART_FRM_Icon: { | 224 case FWL_PART_FRM_Icon: { |
225 CalIcon(pThemePart->m_pWidget, rtPart); | 225 CalIcon(pThemePart->m_pWidget, rtPart); |
226 break; | 226 break; |
227 } | 227 } |
228 default: {} | 228 default: {} |
229 } | 229 } |
230 return FWL_ERR_Succeeded; | 230 return FWL_ERR_Succeeded; |
231 } | 231 } |
232 void CFWL_FormTP::CalCloseBox(IFWL_Widget* pWidget, CFX_RectF& rect) { | 232 void CFWL_FormTP::CalCloseBox(IFWL_Widget* pWidget, CFX_RectF& rect) { |
233 FX_DWORD dwStyles = pWidget->GetStyles(); | 233 uint32_t dwStyles = pWidget->GetStyles(); |
234 CFX_RectF rtWidget; | 234 CFX_RectF rtWidget; |
235 pWidget->GetWidgetRect(rtWidget); | 235 pWidget->GetWidgetRect(rtWidget); |
236 rtWidget.Offset(-rtWidget.left, -rtWidget.top); | 236 rtWidget.Offset(-rtWidget.left, -rtWidget.top); |
237 if (dwStyles & FWL_WGTSTYLE_CloseBox) { | 237 if (dwStyles & FWL_WGTSTYLE_CloseBox) { |
238 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Span, | 238 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Span, |
239 rtWidget.top + FWLTHEME_FORMBTN_Margin, FWLTHEME_FORMBTN_Size, | 239 rtWidget.top + FWLTHEME_FORMBTN_Margin, FWLTHEME_FORMBTN_Size, |
240 FWLTHEME_FORMBTN_Size); | 240 FWLTHEME_FORMBTN_Size); |
241 } else { | 241 } else { |
242 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Span, | 242 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Span, |
243 rtWidget.top + FWLTHEME_FORMBTN_Margin, 0, 0); | 243 rtWidget.top + FWLTHEME_FORMBTN_Margin, 0, 0); |
244 } | 244 } |
245 } | 245 } |
246 void CFWL_FormTP::CalMaxBox(IFWL_Widget* pWidget, CFX_RectF& rect) { | 246 void CFWL_FormTP::CalMaxBox(IFWL_Widget* pWidget, CFX_RectF& rect) { |
247 FX_DWORD dwStyles = pWidget->GetStyles(); | 247 uint32_t dwStyles = pWidget->GetStyles(); |
248 CFX_RectF rtWidget; | 248 CFX_RectF rtWidget; |
249 pWidget->GetWidgetRect(rtWidget); | 249 pWidget->GetWidgetRect(rtWidget); |
250 rtWidget.Offset(-rtWidget.left, -rtWidget.top); | 250 rtWidget.Offset(-rtWidget.left, -rtWidget.top); |
251 if (dwStyles & FWL_WGTSTYLE_MaximizeBox) { | 251 if (dwStyles & FWL_WGTSTYLE_MaximizeBox) { |
252 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Size + | 252 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Size + |
253 FWLTHEME_FORMBTN_Span * 2, | 253 FWLTHEME_FORMBTN_Span * 2, |
254 rtWidget.top + FWLTHEME_FORMBTN_Margin, FWLTHEME_FORMBTN_Size, | 254 rtWidget.top + FWLTHEME_FORMBTN_Margin, FWLTHEME_FORMBTN_Size, |
255 FWLTHEME_FORMBTN_Size); | 255 FWLTHEME_FORMBTN_Size); |
256 } else { | 256 } else { |
257 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Size + | 257 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + FWLTHEME_FORMBTN_Size + |
258 FWLTHEME_FORMBTN_Span * 2, | 258 FWLTHEME_FORMBTN_Span * 2, |
259 rtWidget.top + FWLTHEME_FORMBTN_Margin, 0, 0); | 259 rtWidget.top + FWLTHEME_FORMBTN_Margin, 0, 0); |
260 } | 260 } |
261 } | 261 } |
262 void CFWL_FormTP::CalMinBox(IFWL_Widget* pWidget, CFX_RectF& rect) { | 262 void CFWL_FormTP::CalMinBox(IFWL_Widget* pWidget, CFX_RectF& rect) { |
263 FX_DWORD dwStyles = pWidget->GetStyles(); | 263 uint32_t dwStyles = pWidget->GetStyles(); |
264 CFX_RectF rtWidget; | 264 CFX_RectF rtWidget; |
265 pWidget->GetWidgetRect(rtWidget); | 265 pWidget->GetWidgetRect(rtWidget); |
266 rtWidget.Offset(-rtWidget.left, -rtWidget.top); | 266 rtWidget.Offset(-rtWidget.left, -rtWidget.top); |
267 if (dwStyles & FWL_WGTSTYLE_MinimizeBox) { | 267 if (dwStyles & FWL_WGTSTYLE_MinimizeBox) { |
268 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + | 268 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + |
269 FWLTHEME_FORMBTN_Size * 2 + FWLTHEME_FORMBTN_Span * 3, | 269 FWLTHEME_FORMBTN_Size * 2 + FWLTHEME_FORMBTN_Span * 3, |
270 rtWidget.top + FWLTHEME_FORMBTN_Margin, FWLTHEME_FORMBTN_Size, | 270 rtWidget.top + FWLTHEME_FORMBTN_Margin, FWLTHEME_FORMBTN_Size, |
271 FWLTHEME_FORMBTN_Size); | 271 FWLTHEME_FORMBTN_Size); |
272 } else { | 272 } else { |
273 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + | 273 rect.Set(rtWidget.left + FWLTHEME_FORMBTN_Margin + |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
571 } | 571 } |
572 } | 572 } |
573 void CFWL_FormTP::DrawIconImage(CFX_Graphics* pGraphics, | 573 void CFWL_FormTP::DrawIconImage(CFX_Graphics* pGraphics, |
574 CFX_DIBitmap* pDIBitmap, | 574 CFX_DIBitmap* pDIBitmap, |
575 const CFX_RectF* pRect, | 575 const CFX_RectF* pRect, |
576 FWLTHEME_STATE eState, | 576 FWLTHEME_STATE eState, |
577 CFX_Matrix* pMatrix, | 577 CFX_Matrix* pMatrix, |
578 int32_t iActive) { | 578 int32_t iActive) { |
579 pGraphics->StretchImage(pDIBitmap, *pRect, pMatrix); | 579 pGraphics->StretchImage(pDIBitmap, *pRect, pMatrix); |
580 } | 580 } |
581 void CFWL_FormTP::SetThemeData(FX_DWORD dwID) { | 581 void CFWL_FormTP::SetThemeData(uint32_t dwID) { |
582 m_pThemeData->clrTransWhite = ArgbEncode(0x65, 255, 255, 255); | 582 m_pThemeData->clrTransWhite = ArgbEncode(0x65, 255, 255, 255); |
583 m_pThemeData->clrCloseBtBKStart[0][0] = ArgbEncode(0xff, 240, 166, 148); | 583 m_pThemeData->clrCloseBtBKStart[0][0] = ArgbEncode(0xff, 240, 166, 148); |
584 m_pThemeData->clrCloseBtBKEnd[0][0] = ArgbEncode(0xff, 228, 61, 5); | 584 m_pThemeData->clrCloseBtBKEnd[0][0] = ArgbEncode(0xff, 228, 61, 5); |
585 m_pThemeData->clrCloseBtBKStart[0][1] = ArgbEncode(0xff, 255, 184, 176); | 585 m_pThemeData->clrCloseBtBKStart[0][1] = ArgbEncode(0xff, 255, 184, 176); |
586 m_pThemeData->clrCloseBtBKEnd[0][1] = ArgbEncode(0xff, 252, 107, 71); | 586 m_pThemeData->clrCloseBtBKEnd[0][1] = ArgbEncode(0xff, 252, 107, 71); |
587 m_pThemeData->clrCloseBtBKStart[0][2] = ArgbEncode(0xff, 141, 44, 20); | 587 m_pThemeData->clrCloseBtBKStart[0][2] = ArgbEncode(0xff, 141, 44, 20); |
588 m_pThemeData->clrCloseBtBKEnd[0][2] = ArgbEncode(0xff, 202, 72, 33); | 588 m_pThemeData->clrCloseBtBKEnd[0][2] = ArgbEncode(0xff, 202, 72, 33); |
589 m_pThemeData->clrCloseBtEdgeLight[0][0] = ArgbEncode(0xff, 255, 122, 107); | 589 m_pThemeData->clrCloseBtEdgeLight[0][0] = ArgbEncode(0xff, 255, 122, 107); |
590 m_pThemeData->clrCloseBtEdgeDark[0][0] = ArgbEncode(0xff, 218, 77, 54); | 590 m_pThemeData->clrCloseBtEdgeDark[0][0] = ArgbEncode(0xff, 218, 77, 54); |
591 m_pThemeData->clrCloseBtEdgeLight[0][1] = ArgbEncode(0xff, 255, 93, 74); | 591 m_pThemeData->clrCloseBtEdgeLight[0][1] = ArgbEncode(0xff, 255, 93, 74); |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
890 path.AddRectangle(0, 5, 1, 15); | 890 path.AddRectangle(0, 5, 1, 15); |
891 DrawAxialShading(&gs, 0, 5, 0, 20, m_pThemeData->clrHeadBK[1][1], | 891 DrawAxialShading(&gs, 0, 5, 0, 20, m_pThemeData->clrHeadBK[1][1], |
892 m_pThemeData->clrHeadBK[1][2], &path); | 892 m_pThemeData->clrHeadBK[1][2], &path); |
893 path.Clear(); | 893 path.Clear(); |
894 path.AddRectangle(0, 20, 1, FWLTHEME_CAPACITY_CYCaption - 19); | 894 path.AddRectangle(0, 20, 1, FWLTHEME_CAPACITY_CYCaption - 19); |
895 DrawAxialShading(&gs, 0, 20, 0, FWLTHEME_CAPACITY_CYCaption, | 895 DrawAxialShading(&gs, 0, 20, 0, FWLTHEME_CAPACITY_CYCaption, |
896 m_pThemeData->clrHeadBK[1][2], | 896 m_pThemeData->clrHeadBK[1][2], |
897 m_pThemeData->clrHeadBK[1][3], &path); | 897 m_pThemeData->clrHeadBK[1][3], &path); |
898 } | 898 } |
899 } | 899 } |
OLD | NEW |