| 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_widgettp.h" | 7 #include "xfa/fwl/theme/cfwl_widgettp.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 const float kEdgeSunken = 2.0f; | 29 const float kEdgeSunken = 2.0f; |
| 30 const float kLineHeight = 12.0f; | 30 const float kLineHeight = 12.0f; |
| 31 const float kScrollBarWidth = 17.0f; | 31 const float kScrollBarWidth = 17.0f; |
| 32 const float kCXBorder = 1.0f; | 32 const float kCXBorder = 1.0f; |
| 33 const float kCYBorder = 1.0f; | 33 const float kCYBorder = 1.0f; |
| 34 | 34 |
| 35 #define FWLTHEME_CAPACITY_TextSelColor (ArgbEncode(255, 153, 193, 218)) | 35 #define FWLTHEME_CAPACITY_TextSelColor (ArgbEncode(255, 153, 193, 218)) |
| 36 | 36 |
| 37 } // namespace | 37 } // namespace |
| 38 | 38 |
| 39 static void FWL_SetChildThemeID(IFWL_Widget* pParent, uint32_t dwThemeID) { | |
| 40 CFWL_WidgetMgr* pWidgetMgr = CFWL_WidgetMgr::GetInstance(); | |
| 41 IFWL_Widget* pChild = pWidgetMgr->GetFirstChildWidget(pParent); | |
| 42 while (pChild) { | |
| 43 IFWL_ThemeProvider* pTheme = pChild->GetThemeProvider(); | |
| 44 if (pTheme) { | |
| 45 pTheme->SetThemeID(pChild, dwThemeID, FALSE); | |
| 46 } | |
| 47 FWL_SetChildThemeID(pChild, dwThemeID); | |
| 48 pChild = pWidgetMgr->GetNextSiblingWidget(pChild); | |
| 49 } | |
| 50 } | |
| 51 | |
| 52 bool CFWL_WidgetTP::IsValidWidget(IFWL_Widget* pWidget) { | 39 bool CFWL_WidgetTP::IsValidWidget(IFWL_Widget* pWidget) { |
| 53 return FALSE; | 40 return FALSE; |
| 54 } | 41 } |
| 55 | 42 |
| 56 uint32_t CFWL_WidgetTP::GetThemeID(IFWL_Widget* pWidget) { | 43 uint32_t CFWL_WidgetTP::GetThemeID(IFWL_Widget* pWidget) { |
| 57 return m_dwThemeID; | 44 return m_dwThemeID; |
| 58 } | 45 } |
| 59 | 46 |
| 60 uint32_t CFWL_WidgetTP::SetThemeID(IFWL_Widget* pWidget, | 47 uint32_t CFWL_WidgetTP::SetThemeID(IFWL_Widget* pWidget, uint32_t dwThemeID) { |
| 61 uint32_t dwThemeID, | |
| 62 FX_BOOL bChildren) { | |
| 63 uint32_t dwOld = m_dwThemeID; | 48 uint32_t dwOld = m_dwThemeID; |
| 64 m_dwThemeID = dwThemeID; | 49 m_dwThemeID = dwThemeID; |
| 65 if (CFWL_ArrowData::HasInstance()) { | 50 if (CFWL_ArrowData::HasInstance()) |
| 66 CFWL_ArrowData::GetInstance()->SetColorData(FWL_GetThemeColor(dwThemeID)); | 51 CFWL_ArrowData::GetInstance()->SetColorData(FWL_GetThemeColor(dwThemeID)); |
| 67 } | |
| 68 if (bChildren) { | |
| 69 FWL_SetChildThemeID(pWidget, dwThemeID); | |
| 70 } | |
| 71 return dwOld; | 52 return dwOld; |
| 72 } | 53 } |
| 73 | 54 |
| 74 FWL_Error CFWL_WidgetTP::GetThemeMatrix(IFWL_Widget* pWidget, | 55 FWL_Error CFWL_WidgetTP::GetThemeMatrix(IFWL_Widget* pWidget, |
| 75 CFX_Matrix& matrix) { | 56 CFX_Matrix& matrix) { |
| 76 matrix.Set(_ctm.a, _ctm.b, _ctm.c, _ctm.d, _ctm.e, _ctm.f); | 57 matrix.Set(_ctm.a, _ctm.b, _ctm.c, _ctm.d, _ctm.e, _ctm.f); |
| 77 return FWL_Error::Succeeded; | 58 return FWL_Error::Succeeded; |
| 78 } | 59 } |
| 79 | 60 |
| 80 FWL_Error CFWL_WidgetTP::SetThemeMatrix(IFWL_Widget* pWidget, | 61 FWL_Error CFWL_WidgetTP::SetThemeMatrix(IFWL_Widget* pWidget, |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 } | 139 } |
| 159 default: { return nullptr; } | 140 default: { return nullptr; } |
| 160 } | 141 } |
| 161 return &m_fValue; | 142 return &m_fValue; |
| 162 } | 143 } |
| 163 | 144 |
| 164 FX_BOOL CFWL_WidgetTP::IsCustomizedLayout(IFWL_Widget* pWidget) { | 145 FX_BOOL CFWL_WidgetTP::IsCustomizedLayout(IFWL_Widget* pWidget) { |
| 165 return FWL_GetThemeLayout(m_dwThemeID); | 146 return FWL_GetThemeLayout(m_dwThemeID); |
| 166 } | 147 } |
| 167 | 148 |
| 168 FWL_Error CFWL_WidgetTP::GetPartRect(CFWL_ThemePart* pThemePart, | |
| 169 CFX_RectF& rect) { | |
| 170 return FWL_Error::Succeeded; | |
| 171 } | |
| 172 | |
| 173 FX_BOOL CFWL_WidgetTP::IsInPart(CFWL_ThemePart* pThemePart, | |
| 174 FX_FLOAT fx, | |
| 175 FX_FLOAT fy) { | |
| 176 return TRUE; | |
| 177 } | |
| 178 | |
| 179 FX_BOOL CFWL_WidgetTP::CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) { | 149 FX_BOOL CFWL_WidgetTP::CalcTextRect(CFWL_ThemeText* pParams, CFX_RectF& rect) { |
| 180 if (!pParams) | 150 if (!pParams) |
| 181 return FALSE; | 151 return FALSE; |
| 182 if (!m_pTextOut) | 152 if (!m_pTextOut) |
| 183 return FALSE; | 153 return FALSE; |
| 184 m_pTextOut->SetAlignment(pParams->m_iTTOAlign); | 154 m_pTextOut->SetAlignment(pParams->m_iTTOAlign); |
| 185 m_pTextOut->SetStyles(pParams->m_dwTTOStyles | FDE_TTOSTYLE_ArabicContext); | 155 m_pTextOut->SetStyles(pParams->m_dwTTOStyles | FDE_TTOSTYLE_ArabicContext); |
| 186 m_pTextOut->CalcLogicSize(pParams->m_wsText.c_str(), | 156 m_pTextOut->CalcLogicSize(pParams->m_wsText.c_str(), |
| 187 pParams->m_wsText.GetLength(), rect); | 157 pParams->m_wsText.GetLength(), rect); |
| 188 return TRUE; | 158 return TRUE; |
| (...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 if (pData->Equal(wsFontFamily, dwFontStyles, wCodePage)) | 720 if (pData->Equal(wsFontFamily, dwFontStyles, wCodePage)) |
| 751 return pData->GetFont(); | 721 return pData->GetFont(); |
| 752 } | 722 } |
| 753 std::unique_ptr<CFWL_FontData> pFontData(new CFWL_FontData); | 723 std::unique_ptr<CFWL_FontData> pFontData(new CFWL_FontData); |
| 754 if (!pFontData->LoadFont(wsFontFamily, dwFontStyles, wCodePage)) | 724 if (!pFontData->LoadFont(wsFontFamily, dwFontStyles, wCodePage)) |
| 755 return nullptr; | 725 return nullptr; |
| 756 m_FontsArray.push_back(std::move(pFontData)); | 726 m_FontsArray.push_back(std::move(pFontData)); |
| 757 return m_FontsArray.back()->GetFont(); | 727 return m_FontsArray.back()->GetFont(); |
| 758 } | 728 } |
| 759 | 729 |
| 760 FX_BOOL FWLTHEME_Init() { | |
| 761 return TRUE; | |
| 762 } | |
| 763 | |
| 764 void FWLTHEME_Release() { | 730 void FWLTHEME_Release() { |
| 765 CFWL_ArrowData::DestroyInstance(); | 731 CFWL_ArrowData::DestroyInstance(); |
| 766 CFWL_FontManager::DestroyInstance(); | 732 CFWL_FontManager::DestroyInstance(); |
| 767 } | 733 } |
| 768 | 734 |
| 769 uint32_t FWL_GetThemeLayout(uint32_t dwThemeID) { | 735 uint32_t FWL_GetThemeLayout(uint32_t dwThemeID) { |
| 770 return 0xffff0000 & dwThemeID; | 736 return 0xffff0000 & dwThemeID; |
| 771 } | 737 } |
| 772 | 738 |
| 773 uint32_t FWL_GetThemeColor(uint32_t dwThemeID) { | 739 uint32_t FWL_GetThemeColor(uint32_t dwThemeID) { |
| 774 return 0x0000ffff & dwThemeID; | 740 return 0x0000ffff & dwThemeID; |
| 775 } | 741 } |
| OLD | NEW |