| 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/fxfa/app/xfa_fwltheme.h" | 7 #include "xfa/fxfa/app/xfa_fwltheme.h" |
| 8 | 8 |
| 9 #include "xfa/fde/tto/fde_textout.h" | 9 #include "xfa/fde/tto/fde_textout.h" |
| 10 #include "xfa/fgas/crt/fgas_codepage.h" | 10 #include "xfa/fgas/crt/fgas_codepage.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 | 36 |
| 37 CXFA_FFWidget* XFA_ThemeGetOuterWidget(IFWL_Widget* pWidget) { | 37 CXFA_FFWidget* XFA_ThemeGetOuterWidget(IFWL_Widget* pWidget) { |
| 38 IFWL_Widget* pOuter = pWidget; | 38 IFWL_Widget* pOuter = pWidget; |
| 39 while (pOuter && pOuter->GetOuter()) | 39 while (pOuter && pOuter->GetOuter()) |
| 40 pOuter = pOuter->GetOuter(); | 40 pOuter = pOuter->GetOuter(); |
| 41 | 41 |
| 42 return pOuter ? static_cast<CXFA_FFWidget*>(pOuter->GetLayoutItem()) | 42 return pOuter ? static_cast<CXFA_FFWidget*>(pOuter->GetLayoutItem()) |
| 43 : nullptr; | 43 : nullptr; |
| 44 } | 44 } |
| 45 | 45 |
| 46 CXFA_FWLTheme::CXFA_FWLTheme(CXFA_FFApp* pApp) : m_pApp(pApp) { | 46 CXFA_FWLTheme::CXFA_FWLTheme(CXFA_FFApp* pApp) |
| 47 m_dwCapacity = 0; | 47 : m_pCheckBoxTP(new CXFA_FWLCheckBoxTP), |
| 48 m_fCapacity = 0; | 48 m_pListBoxTP(new CFWL_ListBoxTP), |
| 49 m_pCalendarFont = nullptr; | 49 m_pPictureBoxTP(new CFWL_PictureBoxTP), |
| 50 m_Rect.Set(0, 0, 0, 0); | 50 m_pSrollBarTP(new CFWL_ScrollBarTP), |
| 51 m_pCheckBoxTP = new CXFA_FWLCheckBoxTP; | 51 m_pEditTP(new CXFA_FWLEditTP), |
| 52 m_pListBoxTP = new CFWL_ListBoxTP; | 52 m_pComboBoxTP(new CFWL_ComboBoxTP), |
| 53 m_pPictureBoxTP = new CFWL_PictureBoxTP; | 53 m_pMonthCalendarTP(new CFWL_MonthCalendarTP), |
| 54 m_pSrollBarTP = new CFWL_ScrollBarTP; | 54 m_pDateTimePickerTP(new CFWL_DateTimePickerTP), |
| 55 m_pEditTP = new CXFA_FWLEditTP; | 55 m_pPushButtonTP(new CFWL_PushButtonTP), |
| 56 m_pComboBoxTP = new CFWL_ComboBoxTP; | 56 m_pCaretTP(new CFWL_CaretTP), |
| 57 m_pMonthCalendarTP = new CFWL_MonthCalendarTP; | 57 m_pBarcodeTP(new CFWL_BarcodeTP), |
| 58 m_pDateTimePickerTP = new CFWL_DateTimePickerTP; | 58 m_fCapacity(0.0f), |
| 59 m_pPushButtonTP = new CFWL_PushButtonTP; | 59 m_dwCapacity(0), |
| 60 m_pCaretTP = new CFWL_CaretTP; | 60 m_pCalendarFont(nullptr), |
| 61 m_pBarcodeTP = new CFWL_BarcodeTP; | 61 m_pApp(pApp) { |
| 62 m_Rect.Reset(); |
| 62 Initialize(); | 63 Initialize(); |
| 63 } | 64 } |
| 65 |
| 64 CXFA_FWLTheme::~CXFA_FWLTheme() { | 66 CXFA_FWLTheme::~CXFA_FWLTheme() { |
| 65 Finalize(); | 67 Finalize(); |
| 66 delete m_pCheckBoxTP; | |
| 67 delete m_pListBoxTP; | |
| 68 delete m_pPictureBoxTP; | |
| 69 delete m_pSrollBarTP; | |
| 70 delete m_pEditTP; | |
| 71 delete m_pComboBoxTP; | |
| 72 delete m_pMonthCalendarTP; | |
| 73 delete m_pDateTimePickerTP; | |
| 74 delete m_pPushButtonTP; | |
| 75 delete m_pCaretTP; | |
| 76 delete m_pBarcodeTP; | |
| 77 } | 68 } |
| 69 |
| 78 FWL_Error CXFA_FWLTheme::Initialize() { | 70 FWL_Error CXFA_FWLTheme::Initialize() { |
| 79 m_pTextOut.reset(new CFDE_TextOut); | 71 m_pTextOut.reset(new CFDE_TextOut); |
| 80 for (size_t i = 0; !m_pCalendarFont && i < FX_ArraySize(g_FWLTheme_CalFonts); | 72 for (size_t i = 0; !m_pCalendarFont && i < FX_ArraySize(g_FWLTheme_CalFonts); |
| 81 ++i) { | 73 ++i) { |
| 82 m_pCalendarFont = CFGAS_GEFont::LoadFont(g_FWLTheme_CalFonts[i], 0, 0, | 74 m_pCalendarFont = CFGAS_GEFont::LoadFont(g_FWLTheme_CalFonts[i], 0, 0, |
| 83 m_pApp->GetFDEFontMgr()); | 75 m_pApp->GetFDEFontMgr()); |
| 84 } | 76 } |
| 85 if (!m_pCalendarFont) { | 77 if (!m_pCalendarFont) { |
| 86 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ | 78 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ |
| 87 m_pCalendarFont = m_pApp->GetFDEFontMgr()->GetDefFontByCodePage( | 79 m_pCalendarFont = m_pApp->GetFDEFontMgr()->GetDefFontByCodePage( |
| 88 FX_CODEPAGE_MSWin_WesternEuropean, 0, nullptr); | 80 FX_CODEPAGE_MSWin_WesternEuropean, 0, nullptr); |
| 89 #else | 81 #else |
| 90 m_pCalendarFont = m_pApp->GetFDEFontMgr()->GetFontByCodePage( | 82 m_pCalendarFont = m_pApp->GetFDEFontMgr()->GetFontByCodePage( |
| 91 FX_CODEPAGE_MSWin_WesternEuropean, 0, nullptr); | 83 FX_CODEPAGE_MSWin_WesternEuropean, 0, nullptr); |
| 92 #endif | 84 #endif |
| 93 } | 85 } |
| 94 | 86 |
| 95 ASSERT(m_pCalendarFont); | 87 ASSERT(m_pCalendarFont); |
| 96 FWLTHEME_Init(); | 88 FWLTHEME_Init(); |
| 97 return FWL_Error::Succeeded; | 89 return FWL_Error::Succeeded; |
| 98 } | 90 } |
| 91 |
| 99 FWL_Error CXFA_FWLTheme::Finalize() { | 92 FWL_Error CXFA_FWLTheme::Finalize() { |
| 100 m_pTextOut.reset(); | 93 m_pTextOut.reset(); |
| 101 if (m_pCalendarFont) { | 94 if (m_pCalendarFont) { |
| 102 m_pCalendarFont->Release(); | 95 m_pCalendarFont->Release(); |
| 103 m_pCalendarFont = nullptr; | 96 m_pCalendarFont = nullptr; |
| 104 } | 97 } |
| 105 FWLTHEME_Release(); | 98 FWLTHEME_Release(); |
| 106 return FWL_Error::Succeeded; | 99 return FWL_Error::Succeeded; |
| 107 } | 100 } |
| 108 | 101 |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 return FALSE; | 392 return FALSE; |
| 400 m_pTextOut->SetAlignment(pParams->m_iTTOAlign); | 393 m_pTextOut->SetAlignment(pParams->m_iTTOAlign); |
| 401 m_pTextOut->SetStyles(pParams->m_dwTTOStyles); | 394 m_pTextOut->SetStyles(pParams->m_dwTTOStyles); |
| 402 m_pTextOut->CalcLogicSize(pParams->m_wsText.c_str(), | 395 m_pTextOut->CalcLogicSize(pParams->m_wsText.c_str(), |
| 403 pParams->m_wsText.GetLength(), rect); | 396 pParams->m_wsText.GetLength(), rect); |
| 404 return TRUE; | 397 return TRUE; |
| 405 } | 398 } |
| 406 CFWL_WidgetTP* CXFA_FWLTheme::GetTheme(IFWL_Widget* pWidget) { | 399 CFWL_WidgetTP* CXFA_FWLTheme::GetTheme(IFWL_Widget* pWidget) { |
| 407 switch (pWidget->GetClassID()) { | 400 switch (pWidget->GetClassID()) { |
| 408 case FWL_Type::CheckBox: | 401 case FWL_Type::CheckBox: |
| 409 return m_pCheckBoxTP; | 402 return m_pCheckBoxTP.get(); |
| 410 case FWL_Type::ListBox: | 403 case FWL_Type::ListBox: |
| 411 return m_pListBoxTP; | 404 return m_pListBoxTP.get(); |
| 412 case FWL_Type::PictureBox: | 405 case FWL_Type::PictureBox: |
| 413 return m_pPictureBoxTP; | 406 return m_pPictureBoxTP.get(); |
| 414 case FWL_Type::ScrollBar: | 407 case FWL_Type::ScrollBar: |
| 415 return m_pSrollBarTP; | 408 return m_pSrollBarTP.get(); |
| 416 case FWL_Type::Edit: | 409 case FWL_Type::Edit: |
| 417 return m_pEditTP; | 410 return m_pEditTP.get(); |
| 418 case FWL_Type::ComboBox: | 411 case FWL_Type::ComboBox: |
| 419 return m_pComboBoxTP; | 412 return m_pComboBoxTP.get(); |
| 420 case FWL_Type::MonthCalendar: | 413 case FWL_Type::MonthCalendar: |
| 421 return m_pMonthCalendarTP; | 414 return m_pMonthCalendarTP.get(); |
| 422 case FWL_Type::DateTimePicker: | 415 case FWL_Type::DateTimePicker: |
| 423 return m_pDateTimePickerTP; | 416 return m_pDateTimePickerTP.get(); |
| 424 case FWL_Type::PushButton: | 417 case FWL_Type::PushButton: |
| 425 return m_pPushButtonTP; | 418 return m_pPushButtonTP.get(); |
| 426 case FWL_Type::Caret: | 419 case FWL_Type::Caret: |
| 427 return m_pCaretTP; | 420 return m_pCaretTP.get(); |
| 428 case FWL_Type::Barcode: | 421 case FWL_Type::Barcode: |
| 429 return m_pBarcodeTP; | 422 return m_pBarcodeTP.get(); |
| 430 default: | 423 default: |
| 431 return nullptr; | 424 return nullptr; |
| 432 } | 425 } |
| 433 } | 426 } |
| 434 CXFA_FWLCheckBoxTP::CXFA_FWLCheckBoxTP() {} | 427 CXFA_FWLCheckBoxTP::CXFA_FWLCheckBoxTP() {} |
| 435 FX_BOOL CXFA_FWLCheckBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) { | 428 FX_BOOL CXFA_FWLCheckBoxTP::DrawBackground(CFWL_ThemeBackground* pParams) { |
| 436 if (pParams->m_iPart != CFWL_Part::CheckBox) { | 429 if (pParams->m_iPart != CFWL_Part::CheckBox) { |
| 437 return TRUE; | 430 return TRUE; |
| 438 } | 431 } |
| 439 if ((pParams->m_dwStates & CFWL_PartState_Checked) || | 432 if ((pParams->m_dwStates & CFWL_PartState_Checked) || |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 } | 488 } |
| 496 } | 489 } |
| 497 CFX_Color crLine(cr); | 490 CFX_Color crLine(cr); |
| 498 pParams->m_pGraphics->SetStrokeColor(&crLine); | 491 pParams->m_pGraphics->SetStrokeColor(&crLine); |
| 499 pParams->m_pGraphics->SetLineWidth(fWidth); | 492 pParams->m_pGraphics->SetLineWidth(fWidth); |
| 500 pParams->m_pGraphics->StrokePath(pParams->m_pPath, &pParams->m_matrix); | 493 pParams->m_pGraphics->StrokePath(pParams->m_pPath, &pParams->m_matrix); |
| 501 return TRUE; | 494 return TRUE; |
| 502 } | 495 } |
| 503 return CFWL_EditTP::DrawBackground(pParams); | 496 return CFWL_EditTP::DrawBackground(pParams); |
| 504 } | 497 } |
| OLD | NEW |