Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Side by Side Diff: fpdfsdk/src/fsdk_baseform.cpp

Issue 1529553003: Merge to XFA: Get rid of most instance of 'foo != NULL' (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/formfiller/FFL_FormFiller.h" 7 #include "fpdfsdk/include/formfiller/FFL_FormFiller.h"
8 #include "fpdfsdk/include/fsdk_actionhandler.h" 8 #include "fpdfsdk/include/fsdk_actionhandler.h"
9 #include "fpdfsdk/include/fsdk_baseannot.h" 9 #include "fpdfsdk/include/fsdk_baseannot.h"
10 #include "fpdfsdk/include/fsdk_baseform.h" 10 #include "fpdfsdk/include/fsdk_baseform.h"
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 case FIELDTYPE_RADIOBUTTON: 486 case FIELDTYPE_RADIOBUTTON:
487 if (CPDF_Dictionary* pSubDict = psub->AsDictionary()) { 487 if (CPDF_Dictionary* pSubDict = psub->AsDictionary()) {
488 return pSubDict->GetStream(GetAppState()) != NULL; 488 return pSubDict->GetStream(GetAppState()) != NULL;
489 } 489 }
490 return FALSE; 490 return FALSE;
491 } 491 }
492 return TRUE; 492 return TRUE;
493 } 493 }
494 494
495 int CPDFSDK_Widget::GetFieldType() const { 495 int CPDFSDK_Widget::GetFieldType() const {
496 CPDF_FormField* pField = GetFormField(); 496 return GetFormField()->GetFieldType();
497 ASSERT(pField != NULL);
498
499 return pField->GetFieldType();
500 } 497 }
501 498
502 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() { 499 FX_BOOL CPDFSDK_Widget::IsAppearanceValid() {
503 #ifdef PDF_ENABLE_XFA 500 #ifdef PDF_ENABLE_XFA
504 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument(); 501 CPDFSDK_Document* pSDKDoc = m_pPageView->GetSDKDocument();
505 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument(); 502 CPDFXFA_Document* pDoc = pSDKDoc->GetXFADocument();
506 int nDocType = pDoc->GetDocType(); 503 int nDocType = pDoc->GetDocType();
507 if (nDocType != DOCTYPE_PDF && nDocType != DOCTYPE_STATIC_XFA) 504 if (nDocType != DOCTYPE_PDF && nDocType != DOCTYPE_STATIC_XFA)
508 return TRUE; 505 return TRUE;
509 #endif // PDF_ENABLE_XFA 506 #endif // PDF_ENABLE_XFA
510 return CPDFSDK_BAAnnot::IsAppearanceValid(); 507 return CPDFSDK_BAAnnot::IsAppearanceValid();
511 } 508 }
512 509
513 int CPDFSDK_Widget::GetFieldFlags() const { 510 int CPDFSDK_Widget::GetFieldFlags() const {
514 CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm(); 511 CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm();
515 ASSERT(pPDFInterForm != NULL);
516
517 CPDF_FormControl* pFormControl = 512 CPDF_FormControl* pFormControl =
518 pPDFInterForm->GetControlByDict(m_pAnnot->GetAnnotDict()); 513 pPDFInterForm->GetControlByDict(m_pAnnot->GetAnnotDict());
519 CPDF_FormField* pFormField = pFormControl->GetField(); 514 CPDF_FormField* pFormField = pFormControl->GetField();
520 return pFormField->GetFieldFlags(); 515 return pFormField->GetFieldFlags();
521 } 516 }
522 517
523 CFX_ByteString CPDFSDK_Widget::GetSubType() const { 518 CFX_ByteString CPDFSDK_Widget::GetSubType() const {
524 int nType = GetFieldType(); 519 int nType = GetFieldType();
525 520
526 if (nType == FIELDTYPE_SIGNATURE) 521 if (nType == FIELDTYPE_SIGNATURE)
527 return BFFT_SIGNATURE; 522 return BFFT_SIGNATURE;
528 return CPDFSDK_Annot::GetSubType(); 523 return CPDFSDK_Annot::GetSubType();
529 } 524 }
530 525
531 CPDF_FormField* CPDFSDK_Widget::GetFormField() const { 526 CPDF_FormField* CPDFSDK_Widget::GetFormField() const {
532 return GetFormControl()->GetField(); 527 return GetFormControl()->GetField();
533 } 528 }
534 529
535 CPDF_FormControl* CPDFSDK_Widget::GetFormControl() const { 530 CPDF_FormControl* CPDFSDK_Widget::GetFormControl() const {
536 CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm(); 531 CPDF_InterForm* pPDFInterForm = m_pInterForm->GetInterForm();
537 return pPDFInterForm->GetControlByDict(GetAnnotDict()); 532 return pPDFInterForm->GetControlByDict(GetAnnotDict());
538 } 533 }
539 534
540 CPDF_FormControl* CPDFSDK_Widget::GetFormControl( 535 CPDF_FormControl* CPDFSDK_Widget::GetFormControl(
541 CPDF_InterForm* pInterForm, 536 CPDF_InterForm* pInterForm,
542 const CPDF_Dictionary* pAnnotDict) { 537 const CPDF_Dictionary* pAnnotDict) {
543 ASSERT(pAnnotDict != NULL); 538 ASSERT(pAnnotDict);
544 return pInterForm->GetControlByDict(pAnnotDict); 539 return pInterForm->GetControlByDict(pAnnotDict);
545 } 540 }
546 541
547 int CPDFSDK_Widget::GetRotate() const { 542 int CPDFSDK_Widget::GetRotate() const {
548 CPDF_FormControl* pCtrl = GetFormControl(); 543 CPDF_FormControl* pCtrl = GetFormControl();
549 return pCtrl->GetRotation() % 360; 544 return pCtrl->GetRotation() % 360;
550 } 545 }
551 546
552 #ifdef PDF_ENABLE_XFA 547 #ifdef PDF_ENABLE_XFA
553 CFX_WideString CPDFSDK_Widget::GetName() const { 548 CFX_WideString CPDFSDK_Widget::GetName() const {
554 CPDF_FormField* pFormField = GetFormField(); 549 CPDF_FormField* pFormField = GetFormField();
555 return pFormField->GetFullName(); 550 return pFormField->GetFullName();
556 } 551 }
557 #endif // PDF_ENABLE_XFA 552 #endif // PDF_ENABLE_XFA
558 553
559 FX_BOOL CPDFSDK_Widget::GetFillColor(FX_COLORREF& color) const { 554 FX_BOOL CPDFSDK_Widget::GetFillColor(FX_COLORREF& color) const {
560 CPDF_FormControl* pFormCtrl = GetFormControl(); 555 CPDF_FormControl* pFormCtrl = GetFormControl();
561 ASSERT(pFormCtrl != NULL);
562
563 int iColorType = 0; 556 int iColorType = 0;
564 color = FX_ARGBTOCOLORREF(pFormCtrl->GetBackgroundColor(iColorType)); 557 color = FX_ARGBTOCOLORREF(pFormCtrl->GetBackgroundColor(iColorType));
565 558
566 return iColorType != COLORTYPE_TRANSPARENT; 559 return iColorType != COLORTYPE_TRANSPARENT;
567 } 560 }
568 561
569 FX_BOOL CPDFSDK_Widget::GetBorderColor(FX_COLORREF& color) const { 562 FX_BOOL CPDFSDK_Widget::GetBorderColor(FX_COLORREF& color) const {
570 CPDF_FormControl* pFormCtrl = GetFormControl(); 563 CPDF_FormControl* pFormCtrl = GetFormControl();
571 ASSERT(pFormCtrl != NULL);
572
573 int iColorType = 0; 564 int iColorType = 0;
574 color = FX_ARGBTOCOLORREF(pFormCtrl->GetBorderColor(iColorType)); 565 color = FX_ARGBTOCOLORREF(pFormCtrl->GetBorderColor(iColorType));
575 566
576 return iColorType != COLORTYPE_TRANSPARENT; 567 return iColorType != COLORTYPE_TRANSPARENT;
577 } 568 }
578 569
579 FX_BOOL CPDFSDK_Widget::GetTextColor(FX_COLORREF& color) const { 570 FX_BOOL CPDFSDK_Widget::GetTextColor(FX_COLORREF& color) const {
580 CPDF_FormControl* pFormCtrl = GetFormControl(); 571 CPDF_FormControl* pFormCtrl = GetFormControl();
581 ASSERT(pFormCtrl != NULL);
582
583 CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance(); 572 CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance();
584 if (da.HasColor()) { 573 if (da.HasColor()) {
585 FX_ARGB argb; 574 FX_ARGB argb;
586 int iColorType = COLORTYPE_TRANSPARENT; 575 int iColorType = COLORTYPE_TRANSPARENT;
587 da.GetColor(argb, iColorType); 576 da.GetColor(argb, iColorType);
588 color = FX_ARGBTOCOLORREF(argb); 577 color = FX_ARGBTOCOLORREF(argb);
589 578
590 return iColorType != COLORTYPE_TRANSPARENT; 579 return iColorType != COLORTYPE_TRANSPARENT;
591 } 580 }
592 581
593 return FALSE; 582 return FALSE;
594 } 583 }
595 584
596 FX_FLOAT CPDFSDK_Widget::GetFontSize() const { 585 FX_FLOAT CPDFSDK_Widget::GetFontSize() const {
597 CPDF_FormControl* pFormCtrl = GetFormControl(); 586 CPDF_FormControl* pFormCtrl = GetFormControl();
598 ASSERT(pFormCtrl != NULL);
599
600 CPDF_DefaultAppearance pDa = pFormCtrl->GetDefaultAppearance(); 587 CPDF_DefaultAppearance pDa = pFormCtrl->GetDefaultAppearance();
601 CFX_ByteString csFont = ""; 588 CFX_ByteString csFont = "";
602 FX_FLOAT fFontSize = 0.0f; 589 FX_FLOAT fFontSize = 0.0f;
603 pDa.GetFont(csFont, fFontSize); 590 pDa.GetFont(csFont, fFontSize);
604 591
605 return fFontSize; 592 return fFontSize;
606 } 593 }
607 594
608 int CPDFSDK_Widget::GetSelectedIndex(int nIndex) const { 595 int CPDFSDK_Widget::GetSelectedIndex(int nIndex) const {
609 #ifdef PDF_ENABLE_XFA 596 #ifdef PDF_ENABLE_XFA
(...skipping 24 matching lines...) Expand all
634 } 621 }
635 #else 622 #else
636 CFX_WideString CPDFSDK_Widget::GetValue() const { 623 CFX_WideString CPDFSDK_Widget::GetValue() const {
637 #endif // PDF_ENABLE_XFA 624 #endif // PDF_ENABLE_XFA
638 CPDF_FormField* pFormField = GetFormField(); 625 CPDF_FormField* pFormField = GetFormField();
639 return pFormField->GetValue(); 626 return pFormField->GetValue();
640 } 627 }
641 628
642 CFX_WideString CPDFSDK_Widget::GetDefaultValue() const { 629 CFX_WideString CPDFSDK_Widget::GetDefaultValue() const {
643 CPDF_FormField* pFormField = GetFormField(); 630 CPDF_FormField* pFormField = GetFormField();
644 ASSERT(pFormField != NULL);
645
646 return pFormField->GetDefaultValue(); 631 return pFormField->GetDefaultValue();
647 } 632 }
648 633
649 CFX_WideString CPDFSDK_Widget::GetOptionLabel(int nIndex) const { 634 CFX_WideString CPDFSDK_Widget::GetOptionLabel(int nIndex) const {
650 CPDF_FormField* pFormField = GetFormField(); 635 CPDF_FormField* pFormField = GetFormField();
651 ASSERT(pFormField != NULL);
652
653 return pFormField->GetOptionLabel(nIndex); 636 return pFormField->GetOptionLabel(nIndex);
654 } 637 }
655 638
656 int CPDFSDK_Widget::CountOptions() const { 639 int CPDFSDK_Widget::CountOptions() const {
657 CPDF_FormField* pFormField = GetFormField(); 640 CPDF_FormField* pFormField = GetFormField();
658 ASSERT(pFormField != NULL);
659
660 return pFormField->CountOptions(); 641 return pFormField->CountOptions();
661 } 642 }
662 643
663 FX_BOOL CPDFSDK_Widget::IsOptionSelected(int nIndex) const { 644 FX_BOOL CPDFSDK_Widget::IsOptionSelected(int nIndex) const {
664 #ifdef PDF_ENABLE_XFA 645 #ifdef PDF_ENABLE_XFA
665 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) { 646 if (IXFA_Widget* hWidget = this->GetMixXFAWidget()) {
666 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) { 647 if (IXFA_WidgetHandler* pXFAWidgetHandler = this->GetXFAWidgetHandler()) {
667 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) { 648 if (CXFA_WidgetAcc* pWidgetAcc = pXFAWidgetHandler->GetDataAcc(hWidget)) {
668 if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems()) 649 if (nIndex > -1 && nIndex < pWidgetAcc->CountChoiceListItems())
669 return pWidgetAcc->GetItemState(nIndex); 650 return pWidgetAcc->GetItemState(nIndex);
(...skipping 22 matching lines...) Expand all
692 } 673 }
693 } 674 }
694 } 675 }
695 #endif // PDF_ENABLE_XFA 676 #endif // PDF_ENABLE_XFA
696 CPDF_FormControl* pFormCtrl = GetFormControl(); 677 CPDF_FormControl* pFormCtrl = GetFormControl();
697 return pFormCtrl->IsChecked(); 678 return pFormCtrl->IsChecked();
698 } 679 }
699 680
700 int CPDFSDK_Widget::GetAlignment() const { 681 int CPDFSDK_Widget::GetAlignment() const {
701 CPDF_FormControl* pFormCtrl = GetFormControl(); 682 CPDF_FormControl* pFormCtrl = GetFormControl();
702 ASSERT(pFormCtrl != NULL);
703
704 return pFormCtrl->GetControlAlignment(); 683 return pFormCtrl->GetControlAlignment();
705 } 684 }
706 685
707 int CPDFSDK_Widget::GetMaxLen() const { 686 int CPDFSDK_Widget::GetMaxLen() const {
708 CPDF_FormField* pFormField = GetFormField(); 687 CPDF_FormField* pFormField = GetFormField();
709 ASSERT(pFormField != NULL);
710
711 return pFormField->GetMaxLen(); 688 return pFormField->GetMaxLen();
712 } 689 }
713 690
714 void CPDFSDK_Widget::SetCheck(FX_BOOL bChecked, FX_BOOL bNotify) { 691 void CPDFSDK_Widget::SetCheck(FX_BOOL bChecked, FX_BOOL bNotify) {
715 CPDF_FormControl* pFormCtrl = GetFormControl(); 692 CPDF_FormControl* pFormCtrl = GetFormControl();
716 CPDF_FormField* pFormField = pFormCtrl->GetField(); 693 CPDF_FormField* pFormField = pFormCtrl->GetField();
717 pFormField->CheckControl(pFormField->GetControlIndex(pFormCtrl), bChecked, 694 pFormField->CheckControl(pFormField->GetControlIndex(pFormCtrl), bChecked,
718 bNotify); 695 bNotify);
719 #ifdef PDF_ENABLE_XFA 696 #ifdef PDF_ENABLE_XFA
720 if (!IsWidgetAppearanceValid(CPDF_Annot::Normal)) 697 if (!IsWidgetAppearanceValid(CPDF_Annot::Normal))
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 ResetAppearance_ComboBox(sValue); 790 ResetAppearance_ComboBox(sValue);
814 break; 791 break;
815 case FIELDTYPE_LISTBOX: 792 case FIELDTYPE_LISTBOX:
816 ResetAppearance_ListBox(); 793 ResetAppearance_ListBox();
817 break; 794 break;
818 case FIELDTYPE_TEXTFIELD: 795 case FIELDTYPE_TEXTFIELD:
819 ResetAppearance_TextField(sValue); 796 ResetAppearance_TextField(sValue);
820 break; 797 break;
821 } 798 }
822 799
823 ASSERT(m_pAnnot != NULL);
824 m_pAnnot->ClearCachedAP(); 800 m_pAnnot->ClearCachedAP();
825 } 801 }
826 802
827 CFX_WideString CPDFSDK_Widget::OnFormat(FX_BOOL& bFormated) { 803 CFX_WideString CPDFSDK_Widget::OnFormat(FX_BOOL& bFormated) {
828 CPDF_FormField* pFormField = GetFormField(); 804 CPDF_FormField* pFormField = GetFormField();
829 ASSERT(pFormField != NULL); 805 ASSERT(pFormField);
830 return m_pInterForm->OnFormat(pFormField, bFormated); 806 return m_pInterForm->OnFormat(pFormField, bFormated);
831 } 807 }
832 808
833 void CPDFSDK_Widget::ResetFieldAppearance(FX_BOOL bValueChanged) { 809 void CPDFSDK_Widget::ResetFieldAppearance(FX_BOOL bValueChanged) {
834 CPDF_FormField* pFormField = GetFormField(); 810 CPDF_FormField* pFormField = GetFormField();
835 ASSERT(pFormField != NULL); 811 ASSERT(pFormField);
836
837 ASSERT(m_pInterForm != NULL);
838
839 m_pInterForm->ResetFieldAppearance(pFormField, NULL, bValueChanged); 812 m_pInterForm->ResetFieldAppearance(pFormField, NULL, bValueChanged);
840 } 813 }
841 814
842 void CPDFSDK_Widget::DrawAppearance(CFX_RenderDevice* pDevice, 815 void CPDFSDK_Widget::DrawAppearance(CFX_RenderDevice* pDevice,
843 const CFX_Matrix* pUser2Device, 816 const CFX_Matrix* pUser2Device,
844 CPDF_Annot::AppearanceMode mode, 817 CPDF_Annot::AppearanceMode mode,
845 const CPDF_RenderOptions* pOptions) { 818 const CPDF_RenderOptions* pOptions) {
846 int nFieldType = GetFieldType(); 819 int nFieldType = GetFieldType();
847 820
848 if ((nFieldType == FIELDTYPE_CHECKBOX || 821 if ((nFieldType == FIELDTYPE_CHECKBOX ||
(...skipping 12 matching lines...) Expand all
861 834
862 pDevice->DrawPath(&pathData, pUser2Device, &gsd, 0, 0xFFAAAAAA, 835 pDevice->DrawPath(&pathData, pUser2Device, &gsd, 0, 0xFFAAAAAA,
863 FXFILL_ALTERNATE); 836 FXFILL_ALTERNATE);
864 } else { 837 } else {
865 CPDFSDK_BAAnnot::DrawAppearance(pDevice, pUser2Device, mode, pOptions); 838 CPDFSDK_BAAnnot::DrawAppearance(pDevice, pUser2Device, mode, pOptions);
866 } 839 }
867 } 840 }
868 841
869 void CPDFSDK_Widget::UpdateField() { 842 void CPDFSDK_Widget::UpdateField() {
870 CPDF_FormField* pFormField = GetFormField(); 843 CPDF_FormField* pFormField = GetFormField();
871 ASSERT(pFormField != NULL); 844 ASSERT(pFormField);
872
873 ASSERT(m_pInterForm != NULL);
874 m_pInterForm->UpdateField(pFormField); 845 m_pInterForm->UpdateField(pFormField);
875 } 846 }
876 847
877 void CPDFSDK_Widget::DrawShadow(CFX_RenderDevice* pDevice, 848 void CPDFSDK_Widget::DrawShadow(CFX_RenderDevice* pDevice,
878 CPDFSDK_PageView* pPageView) { 849 CPDFSDK_PageView* pPageView) {
879 ASSERT(m_pInterForm != NULL);
880
881 int nFieldType = GetFieldType(); 850 int nFieldType = GetFieldType();
882 if (m_pInterForm->IsNeedHighLight(nFieldType)) { 851 if (m_pInterForm->IsNeedHighLight(nFieldType)) {
883 CPDF_Rect rc = GetRect(); 852 CPDF_Rect rc = GetRect();
884 FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType); 853 FX_COLORREF color = m_pInterForm->GetHighlightColor(nFieldType);
885 uint8_t alpha = m_pInterForm->GetHighlightAlpha(); 854 uint8_t alpha = m_pInterForm->GetHighlightAlpha();
886 855
887 CFX_FloatRect rcDevice; 856 CFX_FloatRect rcDevice;
888 ASSERT(m_pInterForm->GetDocument()); 857 ASSERT(m_pInterForm->GetDocument());
889 CPDFDoc_Environment* pEnv = m_pInterForm->GetDocument()->GetEnv(); 858 CPDFDoc_Environment* pEnv = m_pInterForm->GetDocument()->GetEnv();
890 if (!pEnv) 859 if (!pEnv)
891 return; 860 return;
892 CFX_Matrix page2device; 861 CFX_Matrix page2device;
893 pPageView->GetCurrentMatrix(page2device); 862 pPageView->GetCurrentMatrix(page2device);
894 page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom), 863 page2device.Transform(((FX_FLOAT)rc.left), ((FX_FLOAT)rc.bottom),
895 rcDevice.left, rcDevice.bottom); 864 rcDevice.left, rcDevice.bottom);
896 page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top), 865 page2device.Transform(((FX_FLOAT)rc.right), ((FX_FLOAT)rc.top),
897 rcDevice.right, rcDevice.top); 866 rcDevice.right, rcDevice.top);
898 867
899 rcDevice.Normalize(); 868 rcDevice.Normalize();
900 869
901 FX_ARGB argb = ArgbEncode((int)alpha, color); 870 FX_ARGB argb = ArgbEncode((int)alpha, color);
902 FX_RECT rcDev((int)rcDevice.left, (int)rcDevice.top, (int)rcDevice.right, 871 FX_RECT rcDev((int)rcDevice.left, (int)rcDevice.top, (int)rcDevice.right,
903 (int)rcDevice.bottom); 872 (int)rcDevice.bottom);
904 pDevice->FillRect(&rcDev, argb); 873 pDevice->FillRect(&rcDev, argb);
905 } 874 }
906 } 875 }
907 876
908 void CPDFSDK_Widget::ResetAppearance_PushButton() { 877 void CPDFSDK_Widget::ResetAppearance_PushButton() {
909 CPDF_FormControl* pControl = GetFormControl(); 878 CPDF_FormControl* pControl = GetFormControl();
910 ASSERT(pControl != NULL);
911
912 CPDF_Rect rcWindow = GetRotatedRect(); 879 CPDF_Rect rcWindow = GetRotatedRect();
913
914 int32_t nLayout = 0; 880 int32_t nLayout = 0;
915
916 switch (pControl->GetTextPosition()) { 881 switch (pControl->GetTextPosition()) {
917 case TEXTPOS_ICON: 882 case TEXTPOS_ICON:
918 nLayout = PPBL_ICON; 883 nLayout = PPBL_ICON;
919 break; 884 break;
920 case TEXTPOS_BELOW: 885 case TEXTPOS_BELOW:
921 nLayout = PPBL_ICONTOPLABELBOTTOM; 886 nLayout = PPBL_ICONTOPLABELBOTTOM;
922 break; 887 break;
923 case TEXTPOS_ABOVE: 888 case TEXTPOS_ABOVE:
924 nLayout = PPBL_LABELTOPICONBOTTOM; 889 nLayout = PPBL_LABELTOPICONBOTTOM;
925 break; 890 break;
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 if (pDownIcon) { 1005 if (pDownIcon) {
1041 if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict()) { 1006 if (CPDF_Dictionary* pImageDict = pDownIcon->GetDict()) {
1042 if (pImageDict->GetString("Name").IsEmpty()) 1007 if (pImageDict->GetString("Name").IsEmpty())
1043 pImageDict->SetAtString("Name", "ImgC"); 1008 pImageDict->SetAtString("Name", "ImgC");
1044 } 1009 }
1045 } 1010 }
1046 1011
1047 CPDF_IconFit iconFit = pControl->GetIconFit(); 1012 CPDF_IconFit iconFit = pControl->GetIconFit();
1048 1013
1049 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); 1014 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
1050 ASSERT(pDoc != NULL);
1051 CPDFDoc_Environment* pEnv = pDoc->GetEnv(); 1015 CPDFDoc_Environment* pEnv = pDoc->GetEnv();
1052 1016
1053 CBA_FontMap FontMap(this, pEnv->GetSysHandler()); 1017 CBA_FontMap FontMap(this, pEnv->GetSysHandler());
1054 FontMap.Initial(); 1018 FontMap.Initial();
1055 1019
1056 FontMap.SetAPType("N"); 1020 FontMap.SetAPType("N");
1057 1021
1058 CFX_ByteString csAP = 1022 CFX_ByteString csAP =
1059 CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) + 1023 CPWL_Utils::GetRectFillAppStream(rcWindow, crBackground) +
1060 CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, 1024 CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1122 if (pDownIcon) 1086 if (pDownIcon)
1123 AddImageToAppearance("D", pDownIcon); 1087 AddImageToAppearance("D", pDownIcon);
1124 } else { 1088 } else {
1125 RemoveAppearance("D"); 1089 RemoveAppearance("D");
1126 RemoveAppearance("R"); 1090 RemoveAppearance("R");
1127 } 1091 }
1128 } 1092 }
1129 1093
1130 void CPDFSDK_Widget::ResetAppearance_CheckBox() { 1094 void CPDFSDK_Widget::ResetAppearance_CheckBox() {
1131 CPDF_FormControl* pControl = GetFormControl(); 1095 CPDF_FormControl* pControl = GetFormControl();
1132 ASSERT(pControl != NULL);
1133
1134 CPWL_Color crBackground, crBorder, crText; 1096 CPWL_Color crBackground, crBorder, crText;
1135
1136 int iColorType; 1097 int iColorType;
1137 FX_FLOAT fc[4]; 1098 FX_FLOAT fc[4];
1138 1099
1139 pControl->GetOriginalBackgroundColor(iColorType, fc); 1100 pControl->GetOriginalBackgroundColor(iColorType, fc);
1140 if (iColorType > 0) 1101 if (iColorType > 0)
1141 crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]); 1102 crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
1142 1103
1143 pControl->GetOriginalBorderColor(iColorType, fc); 1104 pControl->GetOriginalBorderColor(iColorType, fc);
1144 if (iColorType > 0) 1105 if (iColorType > 0)
1145 crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]); 1106 crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1251 pControl->GetCheckedAPState()); 1212 pControl->GetCheckedAPState());
1252 WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off"); 1213 WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off");
1253 1214
1254 CFX_ByteString csAS = GetAppState(); 1215 CFX_ByteString csAS = GetAppState();
1255 if (csAS.IsEmpty()) 1216 if (csAS.IsEmpty())
1256 SetAppState("Off"); 1217 SetAppState("Off");
1257 } 1218 }
1258 1219
1259 void CPDFSDK_Widget::ResetAppearance_RadioButton() { 1220 void CPDFSDK_Widget::ResetAppearance_RadioButton() {
1260 CPDF_FormControl* pControl = GetFormControl(); 1221 CPDF_FormControl* pControl = GetFormControl();
1261 ASSERT(pControl != NULL);
1262
1263 CPWL_Color crBackground, crBorder, crText; 1222 CPWL_Color crBackground, crBorder, crText;
1264
1265 int iColorType; 1223 int iColorType;
1266 FX_FLOAT fc[4]; 1224 FX_FLOAT fc[4];
1267 1225
1268 pControl->GetOriginalBackgroundColor(iColorType, fc); 1226 pControl->GetOriginalBackgroundColor(iColorType, fc);
1269 if (iColorType > 0) 1227 if (iColorType > 0)
1270 crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]); 1228 crBackground = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
1271 1229
1272 pControl->GetOriginalBorderColor(iColorType, fc); 1230 pControl->GetOriginalBorderColor(iColorType, fc);
1273 if (iColorType > 0) 1231 if (iColorType > 0)
1274 crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]); 1232 crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1417 pControl->GetCheckedAPState()); 1375 pControl->GetCheckedAPState());
1418 WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off"); 1376 WriteAppearance("D", GetRotatedRect(), GetMatrix(), csAP_D_OFF, "Off");
1419 1377
1420 CFX_ByteString csAS = GetAppState(); 1378 CFX_ByteString csAS = GetAppState();
1421 if (csAS.IsEmpty()) 1379 if (csAS.IsEmpty())
1422 SetAppState("Off"); 1380 SetAppState("Off");
1423 } 1381 }
1424 1382
1425 void CPDFSDK_Widget::ResetAppearance_ComboBox(const FX_WCHAR* sValue) { 1383 void CPDFSDK_Widget::ResetAppearance_ComboBox(const FX_WCHAR* sValue) {
1426 CPDF_FormControl* pControl = GetFormControl(); 1384 CPDF_FormControl* pControl = GetFormControl();
1427 ASSERT(pControl != NULL);
1428 CPDF_FormField* pField = pControl->GetField(); 1385 CPDF_FormField* pField = pControl->GetField();
1429 ASSERT(pField != NULL);
1430
1431 CFX_ByteTextBuf sBody, sLines; 1386 CFX_ByteTextBuf sBody, sLines;
1432 1387
1433 CPDF_Rect rcClient = GetClientRect(); 1388 CPDF_Rect rcClient = GetClientRect();
1434 CPDF_Rect rcButton = rcClient; 1389 CPDF_Rect rcButton = rcClient;
1435 rcButton.left = rcButton.right - 13; 1390 rcButton.left = rcButton.right - 13;
1436 rcButton.Normalize(); 1391 rcButton.Normalize();
1437 1392
1438 if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) { 1393 if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
1439 pEdit->EnableRefresh(FALSE); 1394 pEdit->EnableRefresh(FALSE);
1440 1395
1441 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); 1396 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
1442 ASSERT(pDoc != NULL);
1443 CPDFDoc_Environment* pEnv = pDoc->GetEnv(); 1397 CPDFDoc_Environment* pEnv = pDoc->GetEnv();
1444 CBA_FontMap FontMap(this, pEnv->GetSysHandler()); 1398 CBA_FontMap FontMap(this, pEnv->GetSysHandler());
1445 FontMap.Initial(); 1399 FontMap.Initial();
1446 pEdit->SetFontMap(&FontMap); 1400 pEdit->SetFontMap(&FontMap);
1447 1401
1448 CPDF_Rect rcEdit = rcClient; 1402 CPDF_Rect rcEdit = rcClient;
1449 rcEdit.right = rcButton.left; 1403 rcEdit.right = rcButton.left;
1450 rcEdit.Normalize(); 1404 rcEdit.Normalize();
1451 1405
1452 pEdit->SetPlateRect(rcEdit); 1406 pEdit->SetPlateRect(rcEdit);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1496 sBody << CPWL_Utils::GetDropButtonAppStream(rcButton); 1450 sBody << CPWL_Utils::GetDropButtonAppStream(rcButton);
1497 1451
1498 CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() + 1452 CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() +
1499 sLines.GetByteString() + sBody.GetByteString(); 1453 sLines.GetByteString() + sBody.GetByteString();
1500 1454
1501 WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP); 1455 WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
1502 } 1456 }
1503 1457
1504 void CPDFSDK_Widget::ResetAppearance_ListBox() { 1458 void CPDFSDK_Widget::ResetAppearance_ListBox() {
1505 CPDF_FormControl* pControl = GetFormControl(); 1459 CPDF_FormControl* pControl = GetFormControl();
1506 ASSERT(pControl != NULL);
1507 CPDF_FormField* pField = pControl->GetField(); 1460 CPDF_FormField* pField = pControl->GetField();
1508 ASSERT(pField != NULL);
1509
1510 CPDF_Rect rcClient = GetClientRect(); 1461 CPDF_Rect rcClient = GetClientRect();
1511
1512 CFX_ByteTextBuf sBody, sLines; 1462 CFX_ByteTextBuf sBody, sLines;
1513 1463
1514 if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) { 1464 if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
1515 pEdit->EnableRefresh(FALSE); 1465 pEdit->EnableRefresh(FALSE);
1516 1466
1517 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); 1467 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
1518 ASSERT(pDoc != NULL);
1519 CPDFDoc_Environment* pEnv = pDoc->GetEnv(); 1468 CPDFDoc_Environment* pEnv = pDoc->GetEnv();
1520 1469
1521 CBA_FontMap FontMap(this, pEnv->GetSysHandler()); 1470 CBA_FontMap FontMap(this, pEnv->GetSysHandler());
1522 FontMap.Initial(); 1471 FontMap.Initial();
1523 pEdit->SetFontMap(&FontMap); 1472 pEdit->SetFontMap(&FontMap);
1524 1473
1525 pEdit->SetPlateRect(CPDF_Rect(rcClient.left, 0.0f, rcClient.right, 0.0f)); 1474 pEdit->SetPlateRect(CPDF_Rect(rcClient.left, 0.0f, rcClient.right, 0.0f));
1526 1475
1527 FX_FLOAT fFontSize = GetFontSize(); 1476 FX_FLOAT fFontSize = GetFontSize();
1528 1477
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1590 } 1539 }
1591 1540
1592 CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() + 1541 CFX_ByteString sAP = GetBackgroundAppStream() + GetBorderAppStream() +
1593 sLines.GetByteString() + sBody.GetByteString(); 1542 sLines.GetByteString() + sBody.GetByteString();
1594 1543
1595 WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP); 1544 WriteAppearance("N", GetRotatedRect(), GetMatrix(), sAP);
1596 } 1545 }
1597 1546
1598 void CPDFSDK_Widget::ResetAppearance_TextField(const FX_WCHAR* sValue) { 1547 void CPDFSDK_Widget::ResetAppearance_TextField(const FX_WCHAR* sValue) {
1599 CPDF_FormControl* pControl = GetFormControl(); 1548 CPDF_FormControl* pControl = GetFormControl();
1600 ASSERT(pControl != NULL);
1601 CPDF_FormField* pField = pControl->GetField(); 1549 CPDF_FormField* pField = pControl->GetField();
1602 ASSERT(pField != NULL);
1603
1604 CFX_ByteTextBuf sBody, sLines; 1550 CFX_ByteTextBuf sBody, sLines;
1605 1551
1606 if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) { 1552 if (IFX_Edit* pEdit = IFX_Edit::NewEdit()) {
1607 pEdit->EnableRefresh(FALSE); 1553 pEdit->EnableRefresh(FALSE);
1608 1554
1609 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument(); 1555 CPDFSDK_Document* pDoc = m_pInterForm->GetDocument();
1610 ASSERT(pDoc != NULL);
1611 CPDFDoc_Environment* pEnv = pDoc->GetEnv(); 1556 CPDFDoc_Environment* pEnv = pDoc->GetEnv();
1612 1557
1613 CBA_FontMap FontMap(this, pEnv->GetSysHandler()); 1558 CBA_FontMap FontMap(this, pEnv->GetSysHandler());
1614 FontMap.Initial(); 1559 FontMap.Initial();
1615 pEdit->SetFontMap(&FontMap); 1560 pEdit->SetFontMap(&FontMap);
1616 1561
1617 CPDF_Rect rcClient = GetClientRect(); 1562 CPDF_Rect rcClient = GetClientRect();
1618 pEdit->SetPlateRect(rcClient); 1563 pEdit->SetPlateRect(rcClient);
1619 pEdit->SetAlignmentH(pControl->GetControlAlignment()); 1564 pEdit->SetAlignmentH(pControl->GetControlAlignment());
1620 1565
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 } 1772 }
1828 1773
1829 return CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder, 1774 return CPWL_Utils::GetBorderAppStream(rcWindow, fBorderWidth, crBorder,
1830 crLeftTop, crRightBottom, nBorderStyle, 1775 crLeftTop, crRightBottom, nBorderStyle,
1831 dsBorder); 1776 dsBorder);
1832 } 1777 }
1833 1778
1834 CFX_Matrix CPDFSDK_Widget::GetMatrix() const { 1779 CFX_Matrix CPDFSDK_Widget::GetMatrix() const {
1835 CFX_Matrix mt; 1780 CFX_Matrix mt;
1836 CPDF_FormControl* pControl = GetFormControl(); 1781 CPDF_FormControl* pControl = GetFormControl();
1837 ASSERT(pControl != NULL);
1838
1839 CPDF_Rect rcAnnot = GetRect(); 1782 CPDF_Rect rcAnnot = GetRect();
1840 FX_FLOAT fWidth = rcAnnot.right - rcAnnot.left; 1783 FX_FLOAT fWidth = rcAnnot.right - rcAnnot.left;
1841 FX_FLOAT fHeight = rcAnnot.top - rcAnnot.bottom; 1784 FX_FLOAT fHeight = rcAnnot.top - rcAnnot.bottom;
1842 1785
1843 switch (abs(pControl->GetRotation() % 360)) { 1786 switch (abs(pControl->GetRotation() % 360)) {
1844 case 0: 1787 case 0:
1845 default: 1788 default:
1846 mt = CFX_Matrix(1, 0, 0, 1, 0, 0); 1789 mt = CFX_Matrix(1, 0, 0, 1, 0, 0);
1847 break; 1790 break;
1848 case 90: 1791 case 90:
1849 mt = CFX_Matrix(0, 1, -1, 0, fWidth, 0); 1792 mt = CFX_Matrix(0, 1, -1, 0, fWidth, 0);
1850 break; 1793 break;
1851 case 180: 1794 case 180:
1852 mt = CFX_Matrix(-1, 0, 0, -1, fWidth, fHeight); 1795 mt = CFX_Matrix(-1, 0, 0, -1, fWidth, fHeight);
1853 break; 1796 break;
1854 case 270: 1797 case 270:
1855 mt = CFX_Matrix(0, -1, 1, 0, 0, fHeight); 1798 mt = CFX_Matrix(0, -1, 1, 0, 0, fHeight);
1856 break; 1799 break;
1857 } 1800 }
1858 1801
1859 return mt; 1802 return mt;
1860 } 1803 }
1861 1804
1862 CPWL_Color CPDFSDK_Widget::GetTextPWLColor() const { 1805 CPWL_Color CPDFSDK_Widget::GetTextPWLColor() const {
1863 CPWL_Color crText = CPWL_Color(COLORTYPE_GRAY, 0); 1806 CPWL_Color crText = CPWL_Color(COLORTYPE_GRAY, 0);
1864 1807
1865 CPDF_FormControl* pFormCtrl = GetFormControl(); 1808 CPDF_FormControl* pFormCtrl = GetFormControl();
1866 ASSERT(pFormCtrl != NULL);
1867
1868 CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance(); 1809 CPDF_DefaultAppearance da = pFormCtrl->GetDefaultAppearance();
1869 if (da.HasColor()) { 1810 if (da.HasColor()) {
1870 int32_t iColorType; 1811 int32_t iColorType;
1871 FX_FLOAT fc[4]; 1812 FX_FLOAT fc[4];
1872 da.GetColor(iColorType, fc); 1813 da.GetColor(iColorType, fc);
1873 crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]); 1814 crText = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
1874 } 1815 }
1875 1816
1876 return crText; 1817 return crText;
1877 } 1818 }
1878 1819
1879 CPWL_Color CPDFSDK_Widget::GetBorderPWLColor() const { 1820 CPWL_Color CPDFSDK_Widget::GetBorderPWLColor() const {
1880 CPWL_Color crBorder; 1821 CPWL_Color crBorder;
1881 1822
1882 CPDF_FormControl* pFormCtrl = GetFormControl(); 1823 CPDF_FormControl* pFormCtrl = GetFormControl();
1883 ASSERT(pFormCtrl != NULL);
1884
1885 int32_t iColorType; 1824 int32_t iColorType;
1886 FX_FLOAT fc[4]; 1825 FX_FLOAT fc[4];
1887 pFormCtrl->GetOriginalBorderColor(iColorType, fc); 1826 pFormCtrl->GetOriginalBorderColor(iColorType, fc);
1888 if (iColorType > 0) 1827 if (iColorType > 0)
1889 crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]); 1828 crBorder = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
1890 1829
1891 return crBorder; 1830 return crBorder;
1892 } 1831 }
1893 1832
1894 CPWL_Color CPDFSDK_Widget::GetFillPWLColor() const { 1833 CPWL_Color CPDFSDK_Widget::GetFillPWLColor() const {
1895 CPWL_Color crFill; 1834 CPWL_Color crFill;
1896 1835
1897 CPDF_FormControl* pFormCtrl = GetFormControl(); 1836 CPDF_FormControl* pFormCtrl = GetFormControl();
1898 ASSERT(pFormCtrl != NULL);
1899
1900 int32_t iColorType; 1837 int32_t iColorType;
1901 FX_FLOAT fc[4]; 1838 FX_FLOAT fc[4];
1902 pFormCtrl->GetOriginalBackgroundColor(iColorType, fc); 1839 pFormCtrl->GetOriginalBackgroundColor(iColorType, fc);
1903 if (iColorType > 0) 1840 if (iColorType > 0)
1904 crFill = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]); 1841 crFill = CPWL_Color(iColorType, fc[0], fc[1], fc[2], fc[3]);
1905 1842
1906 return crFill; 1843 return crFill;
1907 } 1844 }
1908 1845
1909 void CPDFSDK_Widget::AddImageToAppearance(const CFX_ByteString& sAPType, 1846 void CPDFSDK_Widget::AddImageToAppearance(const CFX_ByteString& sAPType,
1910 CPDF_Stream* pImage) { 1847 CPDF_Stream* pImage) {
1911 ASSERT(pImage != NULL);
1912
1913 CPDF_Document* pDoc = m_pPageView->GetPDFDocument(); 1848 CPDF_Document* pDoc = m_pPageView->GetPDFDocument();
1914 ASSERT(pDoc != NULL); 1849 ASSERT(pDoc);
1915 1850
1916 CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP"); 1851 CPDF_Dictionary* pAPDict = m_pAnnot->GetAnnotDict()->GetDict("AP");
1917 ASSERT(pAPDict != NULL);
1918
1919 CPDF_Stream* pStream = pAPDict->GetStream(sAPType); 1852 CPDF_Stream* pStream = pAPDict->GetStream(sAPType);
1920 ASSERT(pStream != NULL);
1921
1922 CPDF_Dictionary* pStreamDict = pStream->GetDict(); 1853 CPDF_Dictionary* pStreamDict = pStream->GetDict();
1923 ASSERT(pStreamDict != NULL);
1924
1925 CFX_ByteString sImageAlias = "IMG"; 1854 CFX_ByteString sImageAlias = "IMG";
1926 1855
1927 if (CPDF_Dictionary* pImageDict = pImage->GetDict()) { 1856 if (CPDF_Dictionary* pImageDict = pImage->GetDict()) {
1928 sImageAlias = pImageDict->GetString("Name"); 1857 sImageAlias = pImageDict->GetString("Name");
1929 if (sImageAlias.IsEmpty()) 1858 if (sImageAlias.IsEmpty())
1930 sImageAlias = "IMG"; 1859 sImageAlias = "IMG";
1931 } 1860 }
1932 1861
1933 CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources"); 1862 CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources");
1934 if (!pStreamResList) { 1863 if (!pStreamResList) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
2029 } 1958 }
2030 default: 1959 default:
2031 break; 1960 break;
2032 } 1961 }
2033 1962
2034 return CPDF_Action(); 1963 return CPDF_Action();
2035 } 1964 }
2036 1965
2037 CFX_WideString CPDFSDK_Widget::GetAlternateName() const { 1966 CFX_WideString CPDFSDK_Widget::GetAlternateName() const {
2038 CPDF_FormField* pFormField = GetFormField(); 1967 CPDF_FormField* pFormField = GetFormField();
2039 ASSERT(pFormField != NULL);
2040
2041 return pFormField->GetAlternateName(); 1968 return pFormField->GetAlternateName();
2042 } 1969 }
2043 1970
2044 int32_t CPDFSDK_Widget::GetAppearanceAge() const { 1971 int32_t CPDFSDK_Widget::GetAppearanceAge() const {
2045 return m_nAppAge; 1972 return m_nAppAge;
2046 } 1973 }
2047 1974
2048 int32_t CPDFSDK_Widget::GetValueAge() const { 1975 int32_t CPDFSDK_Widget::GetValueAge() const {
2049 return m_nValueAge; 1976 return m_nValueAge;
2050 } 1977 }
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
2190 ASSERT(pFormCtrl); 2117 ASSERT(pFormCtrl);
2191 CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl); 2118 CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl);
2192 if (pWidget) 2119 if (pWidget)
2193 widgets->push_back(pWidget); 2120 widgets->push_back(pWidget);
2194 } 2121 }
2195 } 2122 }
2196 2123
2197 int CPDFSDK_InterForm::GetPageIndexByAnnotDict( 2124 int CPDFSDK_InterForm::GetPageIndexByAnnotDict(
2198 CPDF_Document* pDocument, 2125 CPDF_Document* pDocument,
2199 CPDF_Dictionary* pAnnotDict) const { 2126 CPDF_Dictionary* pAnnotDict) const {
2200 ASSERT(pDocument != NULL); 2127 ASSERT(pAnnotDict);
2201 ASSERT(pAnnotDict != NULL);
2202 2128
2203 for (int i = 0, sz = pDocument->GetPageCount(); i < sz; i++) { 2129 for (int i = 0, sz = pDocument->GetPageCount(); i < sz; i++) {
2204 if (CPDF_Dictionary* pPageDict = pDocument->GetPage(i)) { 2130 if (CPDF_Dictionary* pPageDict = pDocument->GetPage(i)) {
2205 if (CPDF_Array* pAnnots = pPageDict->GetArray("Annots")) { 2131 if (CPDF_Array* pAnnots = pPageDict->GetArray("Annots")) {
2206 for (int j = 0, jsz = pAnnots->GetCount(); j < jsz; j++) { 2132 for (int j = 0, jsz = pAnnots->GetCount(); j < jsz; j++) {
2207 CPDF_Object* pDict = pAnnots->GetElementValue(j); 2133 CPDF_Object* pDict = pAnnots->GetElementValue(j);
2208 if (pAnnotDict == pDict) { 2134 if (pAnnotDict == pDict) {
2209 return i; 2135 return i;
2210 } 2136 }
2211 } 2137 }
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
2319 } 2245 }
2320 2246
2321 delete pBmp; 2247 delete pBmp;
2322 } 2248 }
2323 2249
2324 return pRetStream; 2250 return pRetStream;
2325 } 2251 }
2326 #endif // _WIN32 2252 #endif // _WIN32
2327 2253
2328 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) { 2254 void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) {
2329 ASSERT(m_pDocument != NULL);
2330 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); 2255 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
2331 ASSERT(pEnv); 2256 ASSERT(pEnv);
2332 if (!pEnv->IsJSInitiated()) 2257 if (!pEnv->IsJSInitiated())
2333 return; 2258 return;
2334 2259
2335 if (m_bBusy) 2260 if (m_bBusy)
2336 return; 2261 return;
2337 2262
2338 m_bBusy = TRUE; 2263 m_bBusy = TRUE;
2339 2264
2340 if (IsCalculateEnabled()) { 2265 if (IsCalculateEnabled()) {
2341 IJS_Runtime* pRuntime = m_pDocument->GetJsRuntime(); 2266 IJS_Runtime* pRuntime = m_pDocument->GetJsRuntime();
2342 ASSERT(pRuntime != NULL);
2343
2344 pRuntime->SetReaderDocument(m_pDocument); 2267 pRuntime->SetReaderDocument(m_pDocument);
2345 2268
2346 int nSize = m_pInterForm->CountFieldsInCalculationOrder(); 2269 int nSize = m_pInterForm->CountFieldsInCalculationOrder();
2347 for (int i = 0; i < nSize; i++) { 2270 for (int i = 0; i < nSize; i++) {
2348 if (CPDF_FormField* pField = 2271 if (CPDF_FormField* pField =
2349 m_pInterForm->GetFieldInCalculationOrder(i)) { 2272 m_pInterForm->GetFieldInCalculationOrder(i)) {
2350 int nType = pField->GetFieldType(); 2273 int nType = pField->GetFieldType();
2351 if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) { 2274 if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) {
2352 CPDF_AAction aAction = pField->GetAdditionalAction(); 2275 CPDF_AAction aAction = pField->GetAdditionalAction();
2353 if (aAction && aAction.ActionExist(CPDF_AAction::Calculate)) { 2276 if (aAction && aAction.ActionExist(CPDF_AAction::Calculate)) {
2354 CPDF_Action action = aAction.GetAction(CPDF_AAction::Calculate); 2277 CPDF_Action action = aAction.GetAction(CPDF_AAction::Calculate);
2355 if (action) { 2278 if (action) {
2356 CFX_WideString csJS = action.GetJavaScript(); 2279 CFX_WideString csJS = action.GetJavaScript();
2357 if (!csJS.IsEmpty()) { 2280 if (!csJS.IsEmpty()) {
2358 IJS_Context* pContext = pRuntime->NewContext(); 2281 IJS_Context* pContext = pRuntime->NewContext();
2359 ASSERT(pContext != NULL);
2360
2361 CFX_WideString sOldValue = pField->GetValue(); 2282 CFX_WideString sOldValue = pField->GetValue();
2362 CFX_WideString sValue = sOldValue; 2283 CFX_WideString sValue = sOldValue;
2363 FX_BOOL bRC = TRUE; 2284 FX_BOOL bRC = TRUE;
2364 pContext->OnField_Calculate(pFormField, pField, sValue, bRC); 2285 pContext->OnField_Calculate(pFormField, pField, sValue, bRC);
2365 2286
2366 CFX_WideString sInfo; 2287 CFX_WideString sInfo;
2367 FX_BOOL bRet = pContext->RunScript(csJS, &sInfo); 2288 FX_BOOL bRet = pContext->RunScript(csJS, &sInfo);
2368 pRuntime->ReleaseContext(pContext); 2289 pRuntime->ReleaseContext(pContext);
2369 2290
2370 if (bRet) { 2291 if (bRet) {
2371 if (bRC) { 2292 if (bRC) {
2372 if (sValue.Compare(sOldValue) != 0) 2293 if (sValue.Compare(sOldValue) != 0)
2373 pField->SetValue(sValue, TRUE); 2294 pField->SetValue(sValue, TRUE);
2374 } 2295 }
2375 } 2296 }
2376 } 2297 }
2377 } 2298 }
2378 } 2299 }
2379 } 2300 }
2380 } 2301 }
2381 } 2302 }
2382 } 2303 }
2383 2304
2384 m_bBusy = FALSE; 2305 m_bBusy = FALSE;
2385 } 2306 }
2386 2307
2387 CFX_WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField, 2308 CFX_WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField,
2388 FX_BOOL& bFormated) { 2309 FX_BOOL& bFormated) {
2389 ASSERT(m_pDocument != NULL);
2390 ASSERT(pFormField != NULL);
2391
2392 CFX_WideString sValue = pFormField->GetValue(); 2310 CFX_WideString sValue = pFormField->GetValue();
2393 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); 2311 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
2394 ASSERT(pEnv); 2312 ASSERT(pEnv);
2395 if (!pEnv->IsJSInitiated()) { 2313 if (!pEnv->IsJSInitiated()) {
2396 bFormated = FALSE; 2314 bFormated = FALSE;
2397 return sValue; 2315 return sValue;
2398 } 2316 }
2399 2317
2400 IJS_Runtime* pRuntime = m_pDocument->GetJsRuntime(); 2318 IJS_Runtime* pRuntime = m_pDocument->GetJsRuntime();
2401 ASSERT(pRuntime != NULL);
2402
2403 pRuntime->SetReaderDocument(m_pDocument); 2319 pRuntime->SetReaderDocument(m_pDocument);
2404 2320
2405 if (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX) { 2321 if (pFormField->GetFieldType() == FIELDTYPE_COMBOBOX) {
2406 if (pFormField->CountSelectedItems() > 0) { 2322 if (pFormField->CountSelectedItems() > 0) {
2407 int index = pFormField->GetSelectedIndex(0); 2323 int index = pFormField->GetSelectedIndex(0);
2408 if (index >= 0) 2324 if (index >= 0)
2409 sValue = pFormField->GetOptionLabel(index); 2325 sValue = pFormField->GetOptionLabel(index);
2410 } 2326 }
2411 } 2327 }
2412 2328
2413 bFormated = FALSE; 2329 bFormated = FALSE;
2414 2330
2415 CPDF_AAction aAction = pFormField->GetAdditionalAction(); 2331 CPDF_AAction aAction = pFormField->GetAdditionalAction();
2416 if (aAction && aAction.ActionExist(CPDF_AAction::Format)) { 2332 if (aAction && aAction.ActionExist(CPDF_AAction::Format)) {
2417 CPDF_Action action = aAction.GetAction(CPDF_AAction::Format); 2333 CPDF_Action action = aAction.GetAction(CPDF_AAction::Format);
2418 if (action) { 2334 if (action) {
2419 CFX_WideString script = action.GetJavaScript(); 2335 CFX_WideString script = action.GetJavaScript();
2420 if (!script.IsEmpty()) { 2336 if (!script.IsEmpty()) {
2421 CFX_WideString Value = sValue; 2337 CFX_WideString Value = sValue;
2422 2338
2423 IJS_Context* pContext = pRuntime->NewContext(); 2339 IJS_Context* pContext = pRuntime->NewContext();
2424 ASSERT(pContext != NULL);
2425
2426 pContext->OnField_Format(pFormField, Value, TRUE); 2340 pContext->OnField_Format(pFormField, Value, TRUE);
2427 2341
2428 CFX_WideString sInfo; 2342 CFX_WideString sInfo;
2429 FX_BOOL bRet = pContext->RunScript(script, &sInfo); 2343 FX_BOOL bRet = pContext->RunScript(script, &sInfo);
2430 pRuntime->ReleaseContext(pContext); 2344 pRuntime->ReleaseContext(pContext);
2431 2345
2432 if (bRet) { 2346 if (bRet) {
2433 sValue = Value; 2347 sValue = Value;
2434 bFormated = TRUE; 2348 bFormated = TRUE;
2435 } 2349 }
2436 } 2350 }
2437 } 2351 }
2438 } 2352 }
2439 2353
2440 return sValue; 2354 return sValue;
2441 } 2355 }
2442 2356
2443 void CPDFSDK_InterForm::ResetFieldAppearance(CPDF_FormField* pFormField, 2357 void CPDFSDK_InterForm::ResetFieldAppearance(CPDF_FormField* pFormField,
2444 const FX_WCHAR* sValue, 2358 const FX_WCHAR* sValue,
2445 FX_BOOL bValueChanged) { 2359 FX_BOOL bValueChanged) {
2446 ASSERT(pFormField != NULL);
2447
2448 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) { 2360 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
2449 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); 2361 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
2450 ASSERT(pFormCtrl != NULL); 2362 ASSERT(pFormCtrl);
2451
2452 ASSERT(m_pInterForm != NULL);
2453 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) 2363 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl))
2454 pWidget->ResetAppearance(sValue, bValueChanged); 2364 pWidget->ResetAppearance(sValue, bValueChanged);
2455 } 2365 }
2456 } 2366 }
2457 2367
2458 void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) { 2368 void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) {
2459 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) { 2369 for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
2460 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); 2370 CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
2461 ASSERT(pFormCtrl != NULL); 2371 ASSERT(pFormCtrl);
2462 2372
2463 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) { 2373 if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) {
2464 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); 2374 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
2465 CFFL_IFormFiller* pIFormFiller = pEnv->GetIFormFiller(); 2375 CFFL_IFormFiller* pIFormFiller = pEnv->GetIFormFiller();
2466 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage(); 2376 UnderlyingPageType* pPage = pWidget->GetUnderlyingPage();
2467 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage, FALSE); 2377 CPDFSDK_PageView* pPageView = m_pDocument->GetPageView(pPage, FALSE);
2468 FX_RECT rcBBox = pIFormFiller->GetViewBBox(pPageView, pWidget); 2378 FX_RECT rcBBox = pIFormFiller->GetViewBBox(pPageView, pWidget);
2469 2379
2470 pEnv->FFI_Invalidate(pPage, rcBBox.left, rcBBox.top, rcBBox.right, 2380 pEnv->FFI_Invalidate(pPage, rcBBox.left, rcBBox.top, rcBBox.right,
2471 rcBBox.bottom); 2381 rcBBox.bottom);
2472 } 2382 }
2473 } 2383 }
2474 } 2384 }
2475 2385
2476 void CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField, 2386 void CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField,
2477 CFX_WideString& csValue, 2387 CFX_WideString& csValue,
2478 FX_BOOL& bRC) { 2388 FX_BOOL& bRC) {
2479 ASSERT(pFormField != NULL);
2480
2481 CPDF_AAction aAction = pFormField->GetAdditionalAction(); 2389 CPDF_AAction aAction = pFormField->GetAdditionalAction();
2482 if (aAction && aAction.ActionExist(CPDF_AAction::KeyStroke)) { 2390 if (aAction && aAction.ActionExist(CPDF_AAction::KeyStroke)) {
2483 CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke); 2391 CPDF_Action action = aAction.GetAction(CPDF_AAction::KeyStroke);
2484 if (action) { 2392 if (action) {
2485 ASSERT(m_pDocument != NULL);
2486 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); 2393 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
2487 ASSERT(pEnv != NULL);
2488
2489 CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); 2394 CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
2490 ASSERT(pActionHandler != NULL);
2491
2492 PDFSDK_FieldAction fa; 2395 PDFSDK_FieldAction fa;
2493 fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0); 2396 fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0);
2494 fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0); 2397 fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0);
2495 fa.sValue = csValue; 2398 fa.sValue = csValue;
2496 2399
2497 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke, 2400 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::KeyStroke,
2498 m_pDocument, pFormField, fa); 2401 m_pDocument, pFormField, fa);
2499 bRC = fa.bRC; 2402 bRC = fa.bRC;
2500 } 2403 }
2501 } 2404 }
2502 } 2405 }
2503 2406
2504 void CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField, 2407 void CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField,
2505 CFX_WideString& csValue, 2408 CFX_WideString& csValue,
2506 FX_BOOL& bRC) { 2409 FX_BOOL& bRC) {
2507 ASSERT(pFormField != NULL);
2508
2509 CPDF_AAction aAction = pFormField->GetAdditionalAction(); 2410 CPDF_AAction aAction = pFormField->GetAdditionalAction();
2510 if (aAction && aAction.ActionExist(CPDF_AAction::Validate)) { 2411 if (aAction && aAction.ActionExist(CPDF_AAction::Validate)) {
2511 CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate); 2412 CPDF_Action action = aAction.GetAction(CPDF_AAction::Validate);
2512 if (action) { 2413 if (action) {
2513 ASSERT(m_pDocument != NULL);
2514 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); 2414 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
2515 ASSERT(pEnv != NULL);
2516
2517 CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander(); 2415 CPDFSDK_ActionHandler* pActionHandler = pEnv->GetActionHander();
2518 ASSERT(pActionHandler != NULL);
2519
2520 PDFSDK_FieldAction fa; 2416 PDFSDK_FieldAction fa;
2521 fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0); 2417 fa.bModifier = pEnv->FFI_IsCTRLKeyDown(0);
2522 fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0); 2418 fa.bShift = pEnv->FFI_IsSHIFTKeyDown(0);
2523 fa.sValue = csValue; 2419 fa.sValue = csValue;
2524 2420
2525 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate, 2421 pActionHandler->DoAction_FieldJavaScript(action, CPDF_AAction::Validate,
2526 m_pDocument, pFormField, fa); 2422 m_pDocument, pFormField, fa);
2527 bRC = fa.bRC; 2423 bRC = fa.bRC;
2528 } 2424 }
2529 } 2425 }
2530 } 2426 }
2531 2427
2532 /* ----------------------------- action ----------------------------- */
2533
2534 FX_BOOL CPDFSDK_InterForm::DoAction_Hide(const CPDF_Action& action) { 2428 FX_BOOL CPDFSDK_InterForm::DoAction_Hide(const CPDF_Action& action) {
2535 ASSERT(action); 2429 ASSERT(action);
2536 2430
2537 CPDF_ActionFields af = action.GetWidgets(); 2431 CPDF_ActionFields af = action.GetWidgets();
2538 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields(); 2432 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields();
2539 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects); 2433 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects);
2540 2434
2541 FX_BOOL bHide = action.GetHideStatus(); 2435 FX_BOOL bHide = action.GetHideStatus();
2542 FX_BOOL bChanged = FALSE; 2436 FX_BOOL bChanged = FALSE;
2543 2437
(...skipping 14 matching lines...) Expand all
2558 pWidget->GetPageView()->UpdateView(pWidget); 2452 pWidget->GetPageView()->UpdateView(pWidget);
2559 bChanged = TRUE; 2453 bChanged = TRUE;
2560 } 2454 }
2561 } 2455 }
2562 } 2456 }
2563 2457
2564 return bChanged; 2458 return bChanged;
2565 } 2459 }
2566 2460
2567 FX_BOOL CPDFSDK_InterForm::DoAction_SubmitForm(const CPDF_Action& action) { 2461 FX_BOOL CPDFSDK_InterForm::DoAction_SubmitForm(const CPDF_Action& action) {
2568 ASSERT(m_pInterForm != NULL);
2569 CFX_WideString sDestination = action.GetFilePath(); 2462 CFX_WideString sDestination = action.GetFilePath();
2570 if (sDestination.IsEmpty()) 2463 if (sDestination.IsEmpty())
2571 return FALSE; 2464 return FALSE;
2572 2465
2573 CPDF_Dictionary* pActionDict = action.GetDict(); 2466 CPDF_Dictionary* pActionDict = action.GetDict();
2574 if (pActionDict->KeyExist("Fields")) { 2467 if (pActionDict->KeyExist("Fields")) {
2575 CPDF_ActionFields af = action.GetWidgets(); 2468 CPDF_ActionFields af = action.GetWidgets();
2576 FX_DWORD dwFlags = action.GetFlags(); 2469 FX_DWORD dwFlags = action.GetFlags();
2577 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields(); 2470 std::vector<CPDF_Object*> fieldObjects = af.GetAllFields();
2578 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects); 2471 std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
2692 const CFX_WideString& sFileExt) { 2585 const CFX_WideString& sFileExt) {
2693 CFX_WideString sFileName; 2586 CFX_WideString sFileName;
2694 return L""; 2587 return L"";
2695 } 2588 }
2696 2589
2697 FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination, 2590 FX_BOOL CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination,
2698 FX_BOOL bUrlEncoded) { 2591 FX_BOOL bUrlEncoded) {
2699 if (sDestination.IsEmpty()) 2592 if (sDestination.IsEmpty())
2700 return FALSE; 2593 return FALSE;
2701 2594
2595 if (!m_pDocument || !m_pInterForm)
2596 return FALSE;
2597
2702 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv(); 2598 CPDFDoc_Environment* pEnv = m_pDocument->GetEnv();
2703 ASSERT(pEnv != NULL);
2704
2705 if (!m_pDocument)
2706 return FALSE;
2707 CFX_WideString wsPDFFilePath = m_pDocument->GetPath(); 2599 CFX_WideString wsPDFFilePath = m_pDocument->GetPath();
2708
2709 if (!m_pInterForm)
2710 return FALSE;
2711 CFDF_Document* pFDFDoc = m_pInterForm->ExportToFDF(wsPDFFilePath); 2600 CFDF_Document* pFDFDoc = m_pInterForm->ExportToFDF(wsPDFFilePath);
2712 if (!pFDFDoc) 2601 if (!pFDFDoc)
2713 return FALSE; 2602 return FALSE;
2714 2603
2715 CFX_ByteTextBuf FdfBuffer; 2604 CFX_ByteTextBuf FdfBuffer;
2716 FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer); 2605 FX_BOOL bRet = pFDFDoc->WriteBuf(FdfBuffer);
2717 delete pFDFDoc; 2606 delete pFDFDoc;
2718 if (!bRet) 2607 if (!bRet)
2719 return FALSE; 2608 return FALSE;
2720 2609
2721 uint8_t* pBuffer = FdfBuffer.GetBuffer(); 2610 uint8_t* pBuffer = FdfBuffer.GetBuffer();
2722 FX_STRSIZE nBufSize = FdfBuffer.GetLength(); 2611 FX_STRSIZE nBufSize = FdfBuffer.GetLength();
2723 2612
2724 if (bUrlEncoded) { 2613 if (bUrlEncoded) {
2725 if (!FDFToURLEncodedData(pBuffer, nBufSize)) 2614 if (!FDFToURLEncodedData(pBuffer, nBufSize))
2726 return FALSE; 2615 return FALSE;
2727 } 2616 }
2728 2617
2729 pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str()); 2618 pEnv->JS_docSubmitForm(pBuffer, nBufSize, sDestination.c_str());
2730 2619
2731 if (bUrlEncoded) { 2620 if (bUrlEncoded) {
2732 FX_Free(pBuffer); 2621 FX_Free(pBuffer);
2733 pBuffer = NULL; 2622 pBuffer = NULL;
2734 } 2623 }
2735 2624
2736 return TRUE; 2625 return TRUE;
2737 } 2626 }
2738 2627
2739 FX_BOOL CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf) { 2628 FX_BOOL CPDFSDK_InterForm::ExportFormToFDFTextBuf(CFX_ByteTextBuf& textBuf) {
2740 ASSERT(m_pInterForm != NULL);
2741 ASSERT(m_pDocument != NULL);
2742
2743 CFDF_Document* pFDF = m_pInterForm->ExportToFDF(m_pDocument->GetPath()); 2629 CFDF_Document* pFDF = m_pInterForm->ExportToFDF(m_pDocument->GetPath());
2744 if (!pFDF) 2630 if (!pFDF)
2745 return FALSE; 2631 return FALSE;
2746 2632
2747 FX_BOOL bRet = pFDF->WriteBuf(textBuf); 2633 FX_BOOL bRet = pFDF->WriteBuf(textBuf);
2748 delete pFDF; 2634 delete pFDF;
2749 2635
2750 return bRet; 2636 return bRet;
2751 } 2637 }
2752 2638
(...skipping 23 matching lines...) Expand all
2776 if (pObject && pObject->IsString()) { 2662 if (pObject && pObject->IsString()) {
2777 CFX_WideString csName = pObject->GetUnicodeText(); 2663 CFX_WideString csName = pObject->GetUnicodeText();
2778 CPDF_FormField* pField = m_pInterForm->GetField(0, csName); 2664 CPDF_FormField* pField = m_pInterForm->GetField(0, csName);
2779 if (pField) 2665 if (pField)
2780 fields.push_back(pField); 2666 fields.push_back(pField);
2781 } 2667 }
2782 } 2668 }
2783 return fields; 2669 return fields;
2784 } 2670 }
2785 2671
2786 /* ----------------------------- CPDF_FormNotify -----------------------------
2787 */
2788
2789 int CPDFSDK_InterForm::BeforeValueChange(const CPDF_FormField* pField, 2672 int CPDFSDK_InterForm::BeforeValueChange(const CPDF_FormField* pField,
2790 CFX_WideString& csValue) { 2673 CFX_WideString& csValue) {
2791 CPDF_FormField* pFormField = (CPDF_FormField*)pField; 2674 CPDF_FormField* pFormField = (CPDF_FormField*)pField;
2792 int nType = pFormField->GetFieldType(); 2675 int nType = pFormField->GetFieldType();
2793 if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) { 2676 if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) {
2794 FX_BOOL bRC = TRUE; 2677 FX_BOOL bRC = TRUE;
2795 OnKeyStrokeCommit(pFormField, csValue, bRC); 2678 OnKeyStrokeCommit(pFormField, csValue, bRC);
2796 if (bRC) { 2679 if (bRC) {
2797 OnValidate(pFormField, csValue, bRC); 2680 OnValidate(pFormField, csValue, bRC);
2798 return bRC ? 1 : -1; 2681 return bRC ? 1 : -1;
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
2919 2802
2920 /* ------------------------- CBA_AnnotIterator ------------------------- */ 2803 /* ------------------------- CBA_AnnotIterator ------------------------- */
2921 2804
2922 CBA_AnnotIterator::CBA_AnnotIterator(CPDFSDK_PageView* pPageView, 2805 CBA_AnnotIterator::CBA_AnnotIterator(CPDFSDK_PageView* pPageView,
2923 const CFX_ByteString& sType, 2806 const CFX_ByteString& sType,
2924 const CFX_ByteString& sSubType) 2807 const CFX_ByteString& sSubType)
2925 : m_pPageView(pPageView), 2808 : m_pPageView(pPageView),
2926 m_sType(sType), 2809 m_sType(sType),
2927 m_sSubType(sSubType), 2810 m_sSubType(sSubType),
2928 m_nTabs(BAI_STRUCTURE) { 2811 m_nTabs(BAI_STRUCTURE) {
2929 ASSERT(m_pPageView != NULL);
2930
2931 CPDF_Page* pPDFPage = m_pPageView->GetPDFPage(); 2812 CPDF_Page* pPDFPage = m_pPageView->GetPDFPage();
2932 ASSERT(pPDFPage != NULL);
2933 ASSERT(pPDFPage->m_pFormDict != NULL);
2934
2935 CFX_ByteString sTabs = pPDFPage->m_pFormDict->GetString("Tabs"); 2813 CFX_ByteString sTabs = pPDFPage->m_pFormDict->GetString("Tabs");
2936 2814
2937 if (sTabs == "R") { 2815 if (sTabs == "R") {
2938 m_nTabs = BAI_ROW; 2816 m_nTabs = BAI_ROW;
2939 } else if (sTabs == "C") { 2817 } else if (sTabs == "C") {
2940 m_nTabs = BAI_COLUMN; 2818 m_nTabs = BAI_COLUMN;
2941 } else { 2819 } else {
2942 m_nTabs = BAI_STRUCTURE; 2820 m_nTabs = BAI_STRUCTURE;
2943 } 2821 }
2944 2822
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2987 CPDF_Rect rcAnnot2 = GetAnnotRect(p2); 2865 CPDF_Rect rcAnnot2 = GetAnnotRect(p2);
2988 2866
2989 if (rcAnnot1.left < rcAnnot2.left) 2867 if (rcAnnot1.left < rcAnnot2.left)
2990 return -1; 2868 return -1;
2991 if (rcAnnot1.left > rcAnnot2.left) 2869 if (rcAnnot1.left > rcAnnot2.left)
2992 return 1; 2870 return 1;
2993 return 0; 2871 return 0;
2994 } 2872 }
2995 2873
2996 int CBA_AnnotIterator::CompareByTop(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2) { 2874 int CBA_AnnotIterator::CompareByTop(CPDFSDK_Annot* p1, CPDFSDK_Annot* p2) {
2997 ASSERT(p1 != NULL); 2875 ASSERT(p1);
2998 ASSERT(p2 != NULL); 2876 ASSERT(p2);
2999 2877
3000 CPDF_Rect rcAnnot1 = GetAnnotRect(p1); 2878 CPDF_Rect rcAnnot1 = GetAnnotRect(p1);
3001 CPDF_Rect rcAnnot2 = GetAnnotRect(p2); 2879 CPDF_Rect rcAnnot2 = GetAnnotRect(p2);
3002 2880
3003 if (rcAnnot1.top < rcAnnot2.top) 2881 if (rcAnnot1.top < rcAnnot2.top)
3004 return -1; 2882 return -1;
3005 if (rcAnnot1.top > rcAnnot2.top) 2883 if (rcAnnot1.top > rcAnnot2.top)
3006 return 1; 2884 return 1;
3007 return 0; 2885 return 0;
3008 } 2886 }
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
3140 break; 3018 break;
3141 } 3019 }
3142 } 3020 }
3143 } 3021 }
3144 3022
3145 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) { 3023 CPDF_Rect CBA_AnnotIterator::GetAnnotRect(CPDFSDK_Annot* pAnnot) {
3146 CPDF_Rect rcAnnot; 3024 CPDF_Rect rcAnnot;
3147 pAnnot->GetPDFAnnot()->GetRect(rcAnnot); 3025 pAnnot->GetPDFAnnot()->GetRect(rcAnnot);
3148 return rcAnnot; 3026 return rcAnnot;
3149 } 3027 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698