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

Side by Side Diff: fpdfsdk/fsdk_baseannot.cpp

Issue 1980973002: Convert border style defines to an enum class. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 months 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 <algorithm> 7 #include <algorithm>
8 8
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h"
10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
11 #include "core/fpdfapi/fpdf_parser/include/cpdf_number.h" 11 #include "core/fpdfapi/fpdf_parser/include/cpdf_number.h"
12 #include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h" 12 #include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h"
13 #include "core/fxcrt/include/fx_ext.h" 13 #include "core/fxcrt/include/fx_ext.h"
14 #include "fpdfsdk/include/fsdk_baseannot.h" 14 #include "fpdfsdk/include/fsdk_baseannot.h"
15 #include "fpdfsdk/include/fsdk_define.h" 15 #include "fpdfsdk/include/fsdk_define.h"
16 #include "fpdfsdk/include/fsdk_mgr.h" 16 #include "fpdfsdk/include/fsdk_mgr.h"
17 17
18 #ifdef PDF_ENABLE_XFA 18 #ifdef PDF_ENABLE_XFA
19 #include "fpdfsdk/fpdfxfa/include/fpdfxfa_doc.h" 19 #include "fpdfsdk/fpdfxfa/include/fpdfxfa_doc.h"
20 #endif // PDF_ENABLE_XFA 20 #endif // PDF_ENABLE_XFA
21 21
22 namespace {
23
24 const float kMinWidth = 1.0f;
25 const float kMinHeight = 1.0f;
26
22 int gAfxGetTimeZoneInSeconds(int8_t tzhour, uint8_t tzminute) { 27 int gAfxGetTimeZoneInSeconds(int8_t tzhour, uint8_t tzminute) {
23 return (int)tzhour * 3600 + (int)tzminute * (tzhour >= 0 ? 60 : -60); 28 return (int)tzhour * 3600 + (int)tzminute * (tzhour >= 0 ? 60 : -60);
24 } 29 }
25 30
26 FX_BOOL _gAfxIsLeapYear(int16_t year) { 31 bool gAfxIsLeapYear(int16_t year) {
27 return ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))); 32 return ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)));
28 } 33 }
29 34
30 uint16_t _gAfxGetYearDays(int16_t year) { 35 uint16_t gAfxGetYearDays(int16_t year) {
31 return (_gAfxIsLeapYear(year) == TRUE ? 366 : 365); 36 return (gAfxIsLeapYear(year) ? 366 : 365);
32 } 37 }
33 38
34 uint8_t _gAfxGetMonthDays(int16_t year, uint8_t month) { 39 uint8_t gAfxGetMonthDays(int16_t year, uint8_t month) {
35 uint8_t mDays; 40 uint8_t mDays;
36 switch (month) { 41 switch (month) {
37 case 1: 42 case 1:
38 case 3: 43 case 3:
39 case 5: 44 case 5:
40 case 7: 45 case 7:
41 case 8: 46 case 8:
42 case 10: 47 case 10:
43 case 12: 48 case 12:
44 mDays = 31; 49 mDays = 31;
45 break; 50 break;
46 51
47 case 4: 52 case 4:
48 case 6: 53 case 6:
49 case 9: 54 case 9:
50 case 11: 55 case 11:
51 mDays = 30; 56 mDays = 30;
52 break; 57 break;
53 58
54 case 2: 59 case 2:
55 if (_gAfxIsLeapYear(year) == TRUE) 60 if (gAfxIsLeapYear(year))
56 mDays = 29; 61 mDays = 29;
57 else 62 else
58 mDays = 28; 63 mDays = 28;
59 break; 64 break;
60 65
61 default: 66 default:
62 mDays = 0; 67 mDays = 0;
63 break; 68 break;
64 } 69 }
65 70
66 return mDays; 71 return mDays;
67 } 72 }
68 73
74 } // namespace
75
69 CPDFSDK_DateTime::CPDFSDK_DateTime() { 76 CPDFSDK_DateTime::CPDFSDK_DateTime() {
70 ResetDateTime(); 77 ResetDateTime();
71 } 78 }
72 79
73 CPDFSDK_DateTime::CPDFSDK_DateTime(const CFX_ByteString& dtStr) { 80 CPDFSDK_DateTime::CPDFSDK_DateTime(const CFX_ByteString& dtStr) {
74 ResetDateTime(); 81 ResetDateTime();
75 82
76 FromPDFDateTimeString(dtStr); 83 FromPDFDateTimeString(dtStr);
77 } 84 }
78 85
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 int16_t y = dt.year, yy; 406 int16_t y = dt.year, yy;
400 uint8_t m = dt.month; 407 uint8_t m = dt.month;
401 uint8_t d = dt.day; 408 uint8_t d = dt.day;
402 int mdays, ydays, ldays; 409 int mdays, ydays, ldays;
403 410
404 ldays = days; 411 ldays = days;
405 if (ldays > 0) { 412 if (ldays > 0) {
406 yy = y; 413 yy = y;
407 if (((uint16_t)m * 100 + d) > 300) 414 if (((uint16_t)m * 100 + d) > 300)
408 yy++; 415 yy++;
409 ydays = _gAfxGetYearDays(yy); 416 ydays = gAfxGetYearDays(yy);
410 while (ldays >= ydays) { 417 while (ldays >= ydays) {
411 y++; 418 y++;
412 ldays -= ydays; 419 ldays -= ydays;
413 yy++; 420 yy++;
414 mdays = _gAfxGetMonthDays(y, m); 421 mdays = gAfxGetMonthDays(y, m);
415 if (d > mdays) { 422 if (d > mdays) {
416 m++; 423 m++;
417 d -= mdays; 424 d -= mdays;
418 } 425 }
419 ydays = _gAfxGetYearDays(yy); 426 ydays = gAfxGetYearDays(yy);
420 } 427 }
421 mdays = _gAfxGetMonthDays(y, m) - d + 1; 428 mdays = gAfxGetMonthDays(y, m) - d + 1;
422 while (ldays >= mdays) { 429 while (ldays >= mdays) {
423 ldays -= mdays; 430 ldays -= mdays;
424 m++; 431 m++;
425 d = 1; 432 d = 1;
426 mdays = _gAfxGetMonthDays(y, m); 433 mdays = gAfxGetMonthDays(y, m);
427 } 434 }
428 d += ldays; 435 d += ldays;
429 } else { 436 } else {
430 ldays *= -1; 437 ldays *= -1;
431 yy = y; 438 yy = y;
432 if (((uint16_t)m * 100 + d) < 300) 439 if (((uint16_t)m * 100 + d) < 300)
433 yy--; 440 yy--;
434 ydays = _gAfxGetYearDays(yy); 441 ydays = gAfxGetYearDays(yy);
435 while (ldays >= ydays) { 442 while (ldays >= ydays) {
436 y--; 443 y--;
437 ldays -= ydays; 444 ldays -= ydays;
438 yy--; 445 yy--;
439 mdays = _gAfxGetMonthDays(y, m); 446 mdays = gAfxGetMonthDays(y, m);
440 if (d > mdays) { 447 if (d > mdays) {
441 m++; 448 m++;
442 d -= mdays; 449 d -= mdays;
443 } 450 }
444 ydays = _gAfxGetYearDays(yy); 451 ydays = gAfxGetYearDays(yy);
445 } 452 }
446 while (ldays >= d) { 453 while (ldays >= d) {
447 ldays -= d; 454 ldays -= d;
448 m--; 455 m--;
449 mdays = _gAfxGetMonthDays(y, m); 456 mdays = gAfxGetMonthDays(y, m);
450 d = mdays; 457 d = mdays;
451 } 458 }
452 d -= ldays; 459 d -= ldays;
453 } 460 }
454 461
455 dt.year = y; 462 dt.year = y;
456 dt.month = m; 463 dt.month = m;
457 dt.day = d; 464 dt.day = d;
458 465
459 return *this; 466 return *this;
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 int CPDFSDK_BAAnnot::GetBorderWidth() const { 677 int CPDFSDK_BAAnnot::GetBorderWidth() const {
671 if (CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArrayBy("Border")) { 678 if (CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArrayBy("Border")) {
672 return pBorder->GetIntegerAt(2); 679 return pBorder->GetIntegerAt(2);
673 } 680 }
674 if (CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS")) { 681 if (CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS")) {
675 return pBSDict->GetIntegerBy("W", 1); 682 return pBSDict->GetIntegerBy("W", 1);
676 } 683 }
677 return 1; 684 return 1;
678 } 685 }
679 686
680 void CPDFSDK_BAAnnot::SetBorderStyle(int nStyle) { 687 void CPDFSDK_BAAnnot::SetBorderStyle(BorderStyle nStyle) {
681 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS"); 688 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS");
682 if (!pBSDict) { 689 if (!pBSDict) {
683 pBSDict = new CPDF_Dictionary; 690 pBSDict = new CPDF_Dictionary;
684 m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict); 691 m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
685 } 692 }
686 693
687 switch (nStyle) { 694 switch (nStyle) {
688 case BBS_SOLID: 695 case BorderStyle::SOLID:
689 pBSDict->SetAtName("S", "S"); 696 pBSDict->SetAtName("S", "S");
690 break; 697 break;
691 case BBS_DASH: 698 case BorderStyle::DASH:
692 pBSDict->SetAtName("S", "D"); 699 pBSDict->SetAtName("S", "D");
693 break; 700 break;
694 case BBS_BEVELED: 701 case BorderStyle::BEVELED:
695 pBSDict->SetAtName("S", "B"); 702 pBSDict->SetAtName("S", "B");
696 break; 703 break;
697 case BBS_INSET: 704 case BorderStyle::INSET:
698 pBSDict->SetAtName("S", "I"); 705 pBSDict->SetAtName("S", "I");
699 break; 706 break;
700 case BBS_UNDERLINE: 707 case BorderStyle::UNDERLINE:
701 pBSDict->SetAtName("S", "U"); 708 pBSDict->SetAtName("S", "U");
702 break; 709 break;
710 default:
711 break;
703 } 712 }
704 } 713 }
705 714
706 int CPDFSDK_BAAnnot::GetBorderStyle() const { 715 BorderStyle CPDFSDK_BAAnnot::GetBorderStyle() const {
707 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS"); 716 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS");
708 if (pBSDict) { 717 if (pBSDict) {
709 CFX_ByteString sBorderStyle = pBSDict->GetStringBy("S", "S"); 718 CFX_ByteString sBorderStyle = pBSDict->GetStringBy("S", "S");
710 if (sBorderStyle == "S") 719 if (sBorderStyle == "S")
711 return BBS_SOLID; 720 return BorderStyle::SOLID;
712 if (sBorderStyle == "D") 721 if (sBorderStyle == "D")
713 return BBS_DASH; 722 return BorderStyle::DASH;
714 if (sBorderStyle == "B") 723 if (sBorderStyle == "B")
715 return BBS_BEVELED; 724 return BorderStyle::BEVELED;
716 if (sBorderStyle == "I") 725 if (sBorderStyle == "I")
717 return BBS_INSET; 726 return BorderStyle::INSET;
718 if (sBorderStyle == "U") 727 if (sBorderStyle == "U")
719 return BBS_UNDERLINE; 728 return BorderStyle::UNDERLINE;
720 } 729 }
721 730
722 CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArrayBy("Border"); 731 CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArrayBy("Border");
723 if (pBorder) { 732 if (pBorder) {
724 if (pBorder->GetCount() >= 4) { 733 if (pBorder->GetCount() >= 4) {
725 CPDF_Array* pDP = pBorder->GetArrayAt(3); 734 CPDF_Array* pDP = pBorder->GetArrayAt(3);
726 if (pDP && pDP->GetCount() > 0) 735 if (pDP && pDP->GetCount() > 0)
727 return BBS_DASH; 736 return BorderStyle::DASH;
728 } 737 }
729 } 738 }
730 739
731 return BBS_SOLID; 740 return BorderStyle::SOLID;
732 } 741 }
733 742
734 void CPDFSDK_BAAnnot::SetColor(FX_COLORREF color) { 743 void CPDFSDK_BAAnnot::SetColor(FX_COLORREF color) {
735 CPDF_Array* pArray = new CPDF_Array; 744 CPDF_Array* pArray = new CPDF_Array;
736 pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f); 745 pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f);
737 pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f); 746 pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f);
738 pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f); 747 pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f);
739 m_pAnnot->GetAnnotDict()->SetAt("C", pArray); 748 m_pAnnot->GetAnnotDict()->SetAt("C", pArray);
740 } 749 }
741 750
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 834
826 if (pStreamDict) { 835 if (pStreamDict) {
827 pStreamDict->SetAtMatrix("Matrix", matrix); 836 pStreamDict->SetAtMatrix("Matrix", matrix);
828 pStreamDict->SetAtRect("BBox", rcBBox); 837 pStreamDict->SetAtRect("BBox", rcBBox);
829 } 838 }
830 839
831 pStream->SetData((uint8_t*)sContents.c_str(), sContents.GetLength(), FALSE, 840 pStream->SetData((uint8_t*)sContents.c_str(), sContents.GetLength(), FALSE,
832 FALSE); 841 FALSE);
833 } 842 }
834 843
835 #define BA_ANNOT_MINWIDTH 1
836 #define BA_ANNOT_MINHEIGHT 1
837
838 FX_FLOAT CPDFSDK_Annot::GetMinWidth() const { 844 FX_FLOAT CPDFSDK_Annot::GetMinWidth() const {
839 return BA_ANNOT_MINWIDTH; 845 return kMinWidth;
840 } 846 }
841 847
842 FX_FLOAT CPDFSDK_Annot::GetMinHeight() const { 848 FX_FLOAT CPDFSDK_Annot::GetMinHeight() const {
843 return BA_ANNOT_MINHEIGHT; 849 return kMinHeight;
844 } 850 }
845 851
846 FX_BOOL CPDFSDK_BAAnnot::CreateFormFiller() { 852 FX_BOOL CPDFSDK_BAAnnot::CreateFormFiller() {
847 return TRUE; 853 return TRUE;
848 } 854 }
849 FX_BOOL CPDFSDK_BAAnnot::IsVisible() const { 855 FX_BOOL CPDFSDK_BAAnnot::IsVisible() const {
850 uint32_t nFlags = GetFlags(); 856 uint32_t nFlags = GetFlags();
851 return !((nFlags & ANNOTFLAG_INVISIBLE) || (nFlags & ANNOTFLAG_HIDDEN) || 857 return !((nFlags & ANNOTFLAG_INVISIBLE) || (nFlags & ANNOTFLAG_HIDDEN) ||
852 (nFlags & ANNOTFLAG_NOVIEW)); 858 (nFlags & ANNOTFLAG_NOVIEW));
853 } 859 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
921 927
922 CPDF_Page* CPDFSDK_Annot::GetPDFPage() { 928 CPDF_Page* CPDFSDK_Annot::GetPDFPage() {
923 return m_pPageView ? m_pPageView->GetPDFPage() : nullptr; 929 return m_pPageView ? m_pPageView->GetPDFPage() : nullptr;
924 } 930 }
925 931
926 #ifdef PDF_ENABLE_XFA 932 #ifdef PDF_ENABLE_XFA
927 CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage() { 933 CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage() {
928 return m_pPageView ? m_pPageView->GetPDFXFAPage() : nullptr; 934 return m_pPageView ? m_pPageView->GetPDFXFAPage() : nullptr;
929 } 935 }
930 #endif // PDF_ENABLE_XFA 936 #endif // PDF_ENABLE_XFA
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698