| 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 "fpdfsdk/include/fsdk_baseform.h" | 7 #include "fpdfsdk/include/fsdk_baseform.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 CPDFSDK_Widget::~CPDFSDK_Widget() {} | 45 CPDFSDK_Widget::~CPDFSDK_Widget() {} |
| 46 | 46 |
| 47 #ifdef PDF_ENABLE_XFA | 47 #ifdef PDF_ENABLE_XFA |
| 48 IXFA_Widget* CPDFSDK_Widget::GetMixXFAWidget() const { | 48 IXFA_Widget* CPDFSDK_Widget::GetMixXFAWidget() const { |
| 49 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 49 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); |
| 50 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | 50 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); |
| 51 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { | 51 if (pDoc->GetDocType() == DOCTYPE_STATIC_XFA) { |
| 52 if (!m_hMixXFAWidget) { | 52 if (!m_hMixXFAWidget) { |
| 53 if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) { | 53 if (IXFA_DocView* pDocView = pDoc->GetXFADocView()) { |
| 54 CFX_WideString sName; | 54 CFX_WideString sName; |
| 55 if (this->GetFieldType() == FIELDTYPE_RADIOBUTTON) { | 55 if (GetFieldType() == FIELDTYPE_RADIOBUTTON) { |
| 56 sName = this->GetAnnotName(); | 56 sName = GetAnnotName(); |
| 57 if (sName.IsEmpty()) | 57 if (sName.IsEmpty()) |
| 58 sName = GetName(); | 58 sName = GetName(); |
| 59 } else | 59 } else |
| 60 sName = GetName(); | 60 sName = GetName(); |
| 61 | 61 |
| 62 if (!sName.IsEmpty()) | 62 if (!sName.IsEmpty()) |
| 63 m_hMixXFAWidget = pDocView->GetWidgetByName(sName); | 63 m_hMixXFAWidget = pDocView->GetWidgetByName(sName); |
| 64 } | 64 } |
| 65 } | 65 } |
| 66 return m_hMixXFAWidget; | 66 return m_hMixXFAWidget; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 case CPDF_AAction::DocumentSaved: | 167 case CPDF_AAction::DocumentSaved: |
| 168 case CPDF_AAction::PrintDocument: | 168 case CPDF_AAction::PrintDocument: |
| 169 case CPDF_AAction::DocumentPrinted: | 169 case CPDF_AAction::DocumentPrinted: |
| 170 break; | 170 break; |
| 171 } | 171 } |
| 172 | 172 |
| 173 return eEventType; | 173 return eEventType; |
| 174 } | 174 } |
| 175 | 175 |
| 176 FX_BOOL CPDFSDK_Widget::HasXFAAAction(PDFSDK_XFAAActionType eXFAAAT) { | 176 FX_BOOL CPDFSDK_Widget::HasXFAAAction(PDFSDK_XFAAActionType eXFAAAT) { |
| 177 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { | 177 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { |
| 178 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { | 178 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 179 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT); | 179 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT); |
| 180 | 180 |
| 181 if ((eEventType == XFA_EVENT_Click || eEventType == XFA_EVENT_Change) && | 181 if ((eEventType == XFA_EVENT_Click || eEventType == XFA_EVENT_Change) && |
| 182 GetFieldType() == FIELDTYPE_RADIOBUTTON) { | 182 GetFieldType() == FIELDTYPE_RADIOBUTTON) { |
| 183 if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget()) { | 183 if (IXFA_Widget* hGroupWidget = GetGroupMixXFAWidget()) { |
| 184 CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget); | 184 CXFA_WidgetAcc* pAcc = pXFAWidgetHandler->GetDataAcc(hGroupWidget); |
| 185 if (pXFAWidgetHandler->HasEvent(pAcc, eEventType)) | 185 if (pXFAWidgetHandler->HasEvent(pAcc, eEventType)) |
| 186 return TRUE; | 186 return TRUE; |
| 187 } | 187 } |
| 188 } | 188 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 199 | 199 |
| 200 FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, | 200 FX_BOOL CPDFSDK_Widget::OnXFAAAction(PDFSDK_XFAAActionType eXFAAAT, |
| 201 PDFSDK_FieldAction& data, | 201 PDFSDK_FieldAction& data, |
| 202 CPDFSDK_PageView* pPageView) { | 202 CPDFSDK_PageView* pPageView) { |
| 203 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); | 203 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); |
| 204 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); | 204 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); |
| 205 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { | 205 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { |
| 206 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT); | 206 XFA_EVENTTYPE eEventType = GetXFAEventType(eXFAAAT); |
| 207 | 207 |
| 208 if (eEventType != XFA_EVENT_Unknown) { | 208 if (eEventType != XFA_EVENT_Unknown) { |
| 209 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { | 209 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 210 CXFA_EventParam param; | 210 CXFA_EventParam param; |
| 211 param.m_eType = eEventType; | 211 param.m_eType = eEventType; |
| 212 param.m_wsChange = data.sChange; | 212 param.m_wsChange = data.sChange; |
| 213 param.m_iCommitKey = data.nCommitKey; | 213 param.m_iCommitKey = data.nCommitKey; |
| 214 param.m_bShift = data.bShift; | 214 param.m_bShift = data.bShift; |
| 215 param.m_iSelStart = data.nSelStart; | 215 param.m_iSelStart = data.nSelStart; |
| 216 param.m_iSelEnd = data.nSelEnd; | 216 param.m_iSelEnd = data.nSelEnd; |
| 217 param.m_wsFullText = data.sValue; | 217 param.m_wsFullText = data.sValue; |
| 218 param.m_bKeyDown = data.bKeyDown; | 218 param.m_bKeyDown = data.bKeyDown; |
| 219 param.m_bModifier = data.bModifier; | 219 param.m_bModifier = data.bModifier; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 250 pDocView->UpdateDocView(); | 250 pDocView->UpdateDocView(); |
| 251 } | 251 } |
| 252 } | 252 } |
| 253 } | 253 } |
| 254 } | 254 } |
| 255 | 255 |
| 256 return FALSE; | 256 return FALSE; |
| 257 } | 257 } |
| 258 | 258 |
| 259 void CPDFSDK_Widget::Synchronize(FX_BOOL bSynchronizeElse) { | 259 void CPDFSDK_Widget::Synchronize(FX_BOOL bSynchronizeElse) { |
| 260 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { | 260 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { |
| 261 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { | 261 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 262 CPDF_FormField* pFormField = GetFormField(); | 262 CPDF_FormField* pFormField = GetFormField(); |
| 263 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { | 263 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { |
| 264 switch (GetFieldType()) { | 264 switch (GetFieldType()) { |
| 265 case FIELDTYPE_CHECKBOX: | 265 case FIELDTYPE_CHECKBOX: |
| 266 case FIELDTYPE_RADIOBUTTON: { | 266 case FIELDTYPE_RADIOBUTTON: { |
| 267 CPDF_FormControl* pFormCtrl = GetFormControl(); | 267 CPDF_FormControl* pFormCtrl = GetFormControl(); |
| 268 XFA_CHECKSTATE eCheckState = | 268 XFA_CHECKSTATE eCheckState = |
| 269 pFormCtrl->IsChecked() ? XFA_CHECKSTATE_On : XFA_CHECKSTATE_Off; | 269 pFormCtrl->IsChecked() ? XFA_CHECKSTATE_On : XFA_CHECKSTATE_Off; |
| 270 pWidgetAcc->SetCheckState(eCheckState); | 270 pWidgetAcc->SetCheckState(eCheckState); |
| 271 } break; | 271 } break; |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 CPDF_DefaultAppearance pDa = pFormCtrl->GetDefaultAppearance(); | 582 CPDF_DefaultAppearance pDa = pFormCtrl->GetDefaultAppearance(); |
| 583 CFX_ByteString csFont = ""; | 583 CFX_ByteString csFont = ""; |
| 584 FX_FLOAT fFontSize = 0.0f; | 584 FX_FLOAT fFontSize = 0.0f; |
| 585 pDa.GetFont(csFont, fFontSize); | 585 pDa.GetFont(csFont, fFontSize); |
| 586 | 586 |
| 587 return fFontSize; | 587 return fFontSize; |
| 588 } | 588 } |
| 589 | 589 |
| 590 int CPDFSDK_Widget::GetSelectedIndex(int nIndex) const { | 590 int CPDFSDK_Widget::GetSelectedIndex(int nIndex) const { |
| 591 #ifdef PDF_ENABLE_XFA | 591 #ifdef PDF_ENABLE_XFA |
| 592 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { | 592 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { |
| 593 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { | 593 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 594 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { | 594 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { |
| 595 if (nIndex < pWidgetAcc->CountSelectedItems()) | 595 if (nIndex < pWidgetAcc->CountSelectedItems()) |
| 596 return pWidgetAcc->GetSelectedItem(nIndex); | 596 return pWidgetAcc->GetSelectedItem(nIndex); |
| 597 } | 597 } |
| 598 } | 598 } |
| 599 } | 599 } |
| 600 #endif // PDF_ENABLE_XFA | 600 #endif // PDF_ENABLE_XFA |
| 601 CPDF_FormField* pFormField = GetFormField(); | 601 CPDF_FormField* pFormField = GetFormField(); |
| 602 return pFormField->GetSelectedIndex(nIndex); | 602 return pFormField->GetSelectedIndex(nIndex); |
| 603 } | 603 } |
| 604 | 604 |
| 605 #ifdef PDF_ENABLE_XFA | 605 #ifdef PDF_ENABLE_XFA |
| 606 CFX_WideString CPDFSDK_Widget::GetValue(FX_BOOL bDisplay) const { | 606 CFX_WideString CPDFSDK_Widget::GetValue(FX_BOOL bDisplay) const { |
| 607 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { | 607 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { |
| 608 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { | 608 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 609 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { | 609 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { |
| 610 CFX_WideString sValue; | 610 CFX_WideString sValue; |
| 611 pWidgetAcc->GetValue(sValue, bDisplay ? XFA_VALUEPICTURE_Display | 611 pWidgetAcc->GetValue(sValue, bDisplay ? XFA_VALUEPICTURE_Display |
| 612 : XFA_VALUEPICTURE_Edit); | 612 : XFA_VALUEPICTURE_Edit); |
| 613 return sValue; | 613 return sValue; |
| 614 } | 614 } |
| 615 } | 615 } |
| 616 } | 616 } |
| 617 #else | 617 #else |
| 618 CFX_WideString CPDFSDK_Widget::GetValue() const { | 618 CFX_WideString CPDFSDK_Widget::GetValue() const { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 631 return pFormField->GetOptionLabel(nIndex); | 631 return pFormField->GetOptionLabel(nIndex); |
| 632 } | 632 } |
| 633 | 633 |
| 634 int CPDFSDK_Widget::CountOptions() const { | 634 int CPDFSDK_Widget::CountOptions() const { |
| 635 CPDF_FormField* pFormField = GetFormField(); | 635 CPDF_FormField* pFormField = GetFormField(); |
| 636 return pFormField->CountOptions(); | 636 return pFormField->CountOptions(); |
| 637 } | 637 } |
| 638 | 638 |
| 639 FX_BOOL CPDFSDK_Widget::IsOptionSelected(int nIndex) const { | 639 FX_BOOL CPDFSDK_Widget::IsOptionSelected(int nIndex) const { |
| 640 #ifdef PDF_ENABLE_XFA | 640 #ifdef PDF_ENABLE_XFA |
| 641 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { | 641 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { |
| 642 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { | 642 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 643 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { | 643 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { |
| 644 if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems()) | 644 if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems()) |
| 645 return pWidgetAcc->GetItemState(nIndex); | 645 return pWidgetAcc->GetItemState(nIndex); |
| 646 | 646 |
| 647 return FALSE; | 647 return FALSE; |
| 648 } | 648 } |
| 649 } | 649 } |
| 650 } | 650 } |
| 651 #endif // PDF_ENABLE_XFA | 651 #endif // PDF_ENABLE_XFA |
| 652 CPDF_FormField* pFormField = GetFormField(); | 652 CPDF_FormField* pFormField = GetFormField(); |
| 653 return pFormField->IsItemSelected(nIndex); | 653 return pFormField->IsItemSelected(nIndex); |
| 654 } | 654 } |
| 655 | 655 |
| 656 int CPDFSDK_Widget::GetTopVisibleIndex() const { | 656 int CPDFSDK_Widget::GetTopVisibleIndex() const { |
| 657 CPDF_FormField* pFormField = GetFormField(); | 657 CPDF_FormField* pFormField = GetFormField(); |
| 658 return pFormField->GetTopVisibleIndex(); | 658 return pFormField->GetTopVisibleIndex(); |
| 659 } | 659 } |
| 660 | 660 |
| 661 FX_BOOL CPDFSDK_Widget::IsChecked() const { | 661 FX_BOOL CPDFSDK_Widget::IsChecked() const { |
| 662 #ifdef PDF_ENABLE_XFA | 662 #ifdef PDF_ENABLE_XFA |
| 663 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { | 663 if (IXFA_WidgetHandler* pXFAWidgetHandler = GetXFAWidgetHandler()) { |
| 664 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { | 664 if (IXFA_Widget* hWidget = GetMixXFAWidget()) { |
| 665 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { | 665 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { |
| 666 FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On; | 666 FX_BOOL bChecked = pWidgetAcc->GetCheckState() == XFA_CHECKSTATE_On; |
| 667 return bChecked; | 667 return bChecked; |
| 668 } | 668 } |
| 669 } | 669 } |
| 670 } | 670 } |
| 671 #endif // PDF_ENABLE_XFA | 671 #endif // PDF_ENABLE_XFA |
| 672 CPDF_FormControl* pFormCtrl = GetFormControl(); | 672 CPDF_FormControl* pFormCtrl = GetFormControl(); |
| 673 return pFormCtrl->IsChecked(); | 673 return pFormCtrl->IsChecked(); |
| 674 } | 674 } |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 FX_BOOL CPDFSDK_Widget::IsAppModified() const { | 739 FX_BOOL CPDFSDK_Widget::IsAppModified() const { |
| 740 return m_bAppModified; | 740 return m_bAppModified; |
| 741 } | 741 } |
| 742 | 742 |
| 743 #ifdef PDF_ENABLE_XFA | 743 #ifdef PDF_ENABLE_XFA |
| 744 void CPDFSDK_Widget::ResetAppearance(FX_BOOL bValueChanged) { | 744 void CPDFSDK_Widget::ResetAppearance(FX_BOOL bValueChanged) { |
| 745 switch (GetFieldType()) { | 745 switch (GetFieldType()) { |
| 746 case FIELDTYPE_TEXTFIELD: | 746 case FIELDTYPE_TEXTFIELD: |
| 747 case FIELDTYPE_COMBOBOX: { | 747 case FIELDTYPE_COMBOBOX: { |
| 748 FX_BOOL bFormated = FALSE; | 748 FX_BOOL bFormated = FALSE; |
| 749 CFX_WideString sValue = this->OnFormat(bFormated); | 749 CFX_WideString sValue = OnFormat(bFormated); |
| 750 if (bFormated) | 750 ResetAppearance(bFormated ? sValue : nullptr, TRUE); |
| 751 this->ResetAppearance(sValue, TRUE); | |
| 752 else | |
| 753 this->ResetAppearance(NULL, TRUE); | |
| 754 } break; | 751 } break; |
| 755 default: | 752 default: |
| 756 this->ResetAppearance(NULL, FALSE); | 753 ResetAppearance(nullptr, FALSE); |
| 757 break; | 754 break; |
| 758 } | 755 } |
| 759 } | 756 } |
| 760 #endif // PDF_ENABLE_XFA | 757 #endif // PDF_ENABLE_XFA |
| 761 | 758 |
| 762 void CPDFSDK_Widget::ResetAppearance(const FX_WCHAR* sValue, | 759 void CPDFSDK_Widget::ResetAppearance(const FX_WCHAR* sValue, |
| 763 FX_BOOL bValueChanged) { | 760 FX_BOOL bValueChanged) { |
| 764 SetAppModified(); | 761 SetAppModified(); |
| 765 | 762 |
| 766 m_nAppAge++; | 763 m_nAppAge++; |
| (...skipping 801 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1568 subWord = '*'; | 1565 subWord = '*'; |
| 1569 pEdit->SetPasswordChar(subWord); | 1566 pEdit->SetPasswordChar(subWord); |
| 1570 } | 1567 } |
| 1571 | 1568 |
| 1572 int nMaxLen = pField->GetMaxLen(); | 1569 int nMaxLen = pField->GetMaxLen(); |
| 1573 FX_BOOL bCharArray = (dwFieldFlags >> 24) & 1; | 1570 FX_BOOL bCharArray = (dwFieldFlags >> 24) & 1; |
| 1574 FX_FLOAT fFontSize = GetFontSize(); | 1571 FX_FLOAT fFontSize = GetFontSize(); |
| 1575 | 1572 |
| 1576 #ifdef PDF_ENABLE_XFA | 1573 #ifdef PDF_ENABLE_XFA |
| 1577 CFX_WideString sValueTmp; | 1574 CFX_WideString sValueTmp; |
| 1578 if (!sValue && (NULL != this->GetMixXFAWidget())) { | 1575 if (!sValue && GetMixXFAWidget()) { |
| 1579 sValueTmp = GetValue(TRUE); | 1576 sValueTmp = GetValue(TRUE); |
| 1580 sValue = sValueTmp; | 1577 sValue = sValueTmp; |
| 1581 } | 1578 } |
| 1582 #endif // PDF_ENABLE_XFA | 1579 #endif // PDF_ENABLE_XFA |
| 1583 | 1580 |
| 1584 if (nMaxLen > 0) { | 1581 if (nMaxLen > 0) { |
| 1585 if (bCharArray) { | 1582 if (bCharArray) { |
| 1586 pEdit->SetCharArray(nMaxLen); | 1583 pEdit->SetCharArray(nMaxLen); |
| 1587 | 1584 |
| 1588 if (IsFloatZero(fFontSize)) { | 1585 if (IsFloatZero(fFontSize)) { |
| (...skipping 1272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2861 break; | 2858 break; |
| 2862 } | 2859 } |
| 2863 } | 2860 } |
| 2864 } | 2861 } |
| 2865 | 2862 |
| 2866 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(const CPDFSDK_Annot* pAnnot) { | 2863 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(const CPDFSDK_Annot* pAnnot) { |
| 2867 CPDF_Rect rcAnnot; | 2864 CPDF_Rect rcAnnot; |
| 2868 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); | 2865 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); |
| 2869 return rcAnnot; | 2866 return rcAnnot; |
| 2870 } | 2867 } |
| OLD | NEW |