diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/include/fpdfdoc/fpdf_doc.h | 85 | ||||
-rw-r--r-- | core/src/fpdfdoc/doc_form.cpp | 3 | ||||
-rw-r--r-- | core/src/fpdfdoc/doc_formcontrol.cpp | 141 |
3 files changed, 103 insertions, 126 deletions
diff --git a/core/include/fpdfdoc/fpdf_doc.h b/core/include/fpdfdoc/fpdf_doc.h index ac7b0cf774..76264c93f9 100644 --- a/core/include/fpdfdoc/fpdf_doc.h +++ b/core/include/fpdfdoc/fpdf_doc.h @@ -943,7 +943,7 @@ class CPDF_FormControl { HighlightingMode GetHighlightingMode(); - FX_BOOL HasMKEntry(CFX_ByteString csEntry); + bool HasMKEntry(CFX_ByteString csEntry) const; int GetRotation(); @@ -951,37 +951,37 @@ class CPDF_FormControl { return GetColor(iColorType, "BC"); } - inline FX_FLOAT GetOriginalBorderColor(int index) { + FX_FLOAT GetOriginalBorderColor(int index) { return GetOriginalColor(index, "BC"); } - inline void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) { + void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) { GetOriginalColor(iColorType, fc, "BC"); } - inline FX_ARGB GetBackgroundColor(int& iColorType) { + FX_ARGB GetBackgroundColor(int& iColorType) { return GetColor(iColorType, "BG"); } - inline FX_FLOAT GetOriginalBackgroundColor(int index) { + FX_FLOAT GetOriginalBackgroundColor(int index) { return GetOriginalColor(index, "BG"); } - inline void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) { + void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) { GetOriginalColor(iColorType, fc, "BG"); } - inline CFX_WideString GetNormalCaption() { return GetCaption("CA"); } + CFX_WideString GetNormalCaption() { return GetCaption("CA"); } - inline CFX_WideString GetRolloverCaption() { return GetCaption("RC"); } + CFX_WideString GetRolloverCaption() { return GetCaption("RC"); } - inline CFX_WideString GetDownCaption() { return GetCaption("AC"); } + CFX_WideString GetDownCaption() { return GetCaption("AC"); } - inline CPDF_Stream* GetNormalIcon() { return GetIcon("I"); } + CPDF_Stream* GetNormalIcon() { return GetIcon("I"); } - inline CPDF_Stream* GetRolloverIcon() { return GetIcon("RI"); } + CPDF_Stream* GetRolloverIcon() { return GetIcon("RI"); } - inline CPDF_Stream* GetDownIcon() { return GetIcon("IX"); } + CPDF_Stream* GetDownIcon() { return GetIcon("IX"); } CPDF_IconFit GetIconFit(); @@ -1018,7 +1018,7 @@ class CPDF_FormControl { CPDF_Stream* GetIcon(CFX_ByteString csEntry); - CPDF_ApSettings GetMK(FX_BOOL bCreate); + CPDF_ApSettings GetMK() const; CPDF_InterForm* m_pForm; @@ -1107,74 +1107,71 @@ class CPDF_ViewerPreferences { class CPDF_ApSettings { public: - // TODO(thestig): Examine why this cannot be explicit. - CPDF_ApSettings(CPDF_Dictionary* pDict = NULL) { m_pDict = pDict; } - - operator CPDF_Dictionary*() const { return m_pDict; } - - FX_BOOL HasMKEntry(const CFX_ByteStringC& csEntry); + explicit CPDF_ApSettings(CPDF_Dictionary* pDict); - int GetRotation(); + bool HasMKEntry(const CFX_ByteStringC& csEntry) const; + int GetRotation() const; - inline FX_ARGB GetBorderColor(int& iColorType) { + FX_ARGB GetBorderColor(int& iColorType) const { return GetColor(iColorType, FX_BSTRC("BC")); } - inline FX_FLOAT GetOriginalBorderColor(int index) { + FX_FLOAT GetOriginalBorderColor(int index) const { return GetOriginalColor(index, FX_BSTRC("BC")); } - inline void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) { + void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) const { GetOriginalColor(iColorType, fc, FX_BSTRC("BC")); } - inline FX_ARGB GetBackgroundColor(int& iColorType) { + FX_ARGB GetBackgroundColor(int& iColorType) const { return GetColor(iColorType, FX_BSTRC("BG")); } - inline FX_FLOAT GetOriginalBackgroundColor(int index) { + FX_FLOAT GetOriginalBackgroundColor(int index) const { return GetOriginalColor(index, FX_BSTRC("BG")); } - inline void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) { + void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) const { GetOriginalColor(iColorType, fc, FX_BSTRC("BG")); } - inline CFX_WideString GetNormalCaption() { - return GetCaption(FX_BSTRC("CA")); - } + CFX_WideString GetNormalCaption() const { return GetCaption(FX_BSTRC("CA")); } - inline CFX_WideString GetRolloverCaption() { + CFX_WideString GetRolloverCaption() const { return GetCaption(FX_BSTRC("RC")); } - inline CFX_WideString GetDownCaption() { return GetCaption(FX_BSTRC("AC")); } - - inline CPDF_Stream* GetNormalIcon() { return GetIcon(FX_BSTRC("I")); } + CFX_WideString GetDownCaption() const { return GetCaption(FX_BSTRC("AC")); } - inline CPDF_Stream* GetRolloverIcon() { return GetIcon(FX_BSTRC("RI")); } + CPDF_Stream* GetNormalIcon() const { return GetIcon(FX_BSTRC("I")); } - inline CPDF_Stream* GetDownIcon() { return GetIcon(FX_BSTRC("IX")); } + CPDF_Stream* GetRolloverIcon() const { return GetIcon(FX_BSTRC("RI")); } - CPDF_IconFit GetIconFit(); + CPDF_Stream* GetDownIcon() const { return GetIcon(FX_BSTRC("IX")); } - int GetTextPosition(); + CPDF_IconFit GetIconFit() const; - CPDF_Dictionary* m_pDict; + int GetTextPosition() const; protected: - FX_ARGB GetColor(int& iColorType, const CFX_ByteStringC& csEntry); + friend class CPDF_FormControl; - FX_FLOAT GetOriginalColor(int index, const CFX_ByteStringC& csEntry); + FX_ARGB GetColor(int& iColorType, const CFX_ByteStringC& csEntry) const; + + FX_FLOAT GetOriginalColor(int index, const CFX_ByteStringC& csEntry) const; void GetOriginalColor(int& iColorType, FX_FLOAT fc[4], - const CFX_ByteStringC& csEntry); + const CFX_ByteStringC& csEntry) const; - CFX_WideString GetCaption(const CFX_ByteStringC& csEntry); + CFX_WideString GetCaption(const CFX_ByteStringC& csEntry) const; - CPDF_Stream* GetIcon(const CFX_ByteStringC& csEntry); - friend class CPDF_FormControl; + CPDF_Stream* GetIcon(const CFX_ByteStringC& csEntry) const; + + CPDF_Dictionary* const m_pDict; }; +CFX_WideString FILESPEC_EncodeFileName(const CFX_WideStringC& filepath); + #endif // CORE_INCLUDE_FPDFDOC_FPDF_DOC_H_ diff --git a/core/src/fpdfdoc/doc_form.cpp b/core/src/fpdfdoc/doc_form.cpp index 776f19fdca..857bf5acea 100644 --- a/core/src/fpdfdoc/doc_form.cpp +++ b/core/src/fpdfdoc/doc_form.cpp @@ -1145,9 +1145,6 @@ CFDF_Document* CPDF_InterForm::ExportToFDF(const CFX_WideStringC& pdf_path, return ExportToFDF(pdf_path, fields, true, bSimpleFileSpec); } -// TODO(thestig): Fix this. -CFX_WideString FILESPEC_EncodeFileName(const CFX_WideStringC& filepath); - CFDF_Document* CPDF_InterForm::ExportToFDF( const CFX_WideStringC& pdf_path, const std::vector<CPDF_FormField*>& fields, diff --git a/core/src/fpdfdoc/doc_formcontrol.cpp b/core/src/fpdfdoc/doc_formcontrol.cpp index 0796b6b434..88b68bc7f7 100644 --- a/core/src/fpdfdoc/doc_formcontrol.cpp +++ b/core/src/fpdfdoc/doc_formcontrol.cpp @@ -189,58 +189,49 @@ CPDF_FormControl::HighlightingMode CPDF_FormControl::GetHighlightingMode() { } return Invert; } -CPDF_ApSettings CPDF_FormControl::GetMK(FX_BOOL bCreate) { - if (!m_pWidgetDict) { - return NULL; - } - CPDF_ApSettings mk = m_pWidgetDict->GetDict(FX_BSTRC("MK")); - if (!mk && bCreate) { - mk = CPDF_Dictionary::Create(); - if (mk == NULL) { - return NULL; - } - m_pWidgetDict->SetAt(FX_BSTRC("MK"), mk); - } - return mk; + +CPDF_ApSettings CPDF_FormControl::GetMK() const { + return CPDF_ApSettings(m_pWidgetDict ? m_pWidgetDict->GetDict(FX_BSTRC("MK")) + : nullptr); } -FX_BOOL CPDF_FormControl::HasMKEntry(CFX_ByteString csEntry) { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.HasMKEntry(csEntry); + +bool CPDF_FormControl::HasMKEntry(CFX_ByteString csEntry) const { + return GetMK().HasMKEntry(csEntry); } + int CPDF_FormControl::GetRotation() { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.GetRotation(); + return GetMK().GetRotation(); } + FX_ARGB CPDF_FormControl::GetColor(int& iColorType, CFX_ByteString csEntry) { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.GetColor(iColorType, csEntry); + return GetMK().GetColor(iColorType, csEntry); } + FX_FLOAT CPDF_FormControl::GetOriginalColor(int index, CFX_ByteString csEntry) { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.GetOriginalColor(index, csEntry); + return GetMK().GetOriginalColor(index, csEntry); } + void CPDF_FormControl::GetOriginalColor(int& iColorType, FX_FLOAT fc[4], CFX_ByteString csEntry) { - CPDF_ApSettings mk = GetMK(FALSE); - mk.GetOriginalColor(iColorType, fc, csEntry); + GetMK().GetOriginalColor(iColorType, fc, csEntry); } CFX_WideString CPDF_FormControl::GetCaption(CFX_ByteString csEntry) { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.GetCaption(csEntry); + return GetMK().GetCaption(csEntry); } + CPDF_Stream* CPDF_FormControl::GetIcon(CFX_ByteString csEntry) { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.GetIcon(csEntry); + return GetMK().GetIcon(csEntry); } + CPDF_IconFit CPDF_FormControl::GetIconFit() { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.GetIconFit(); + return GetMK().GetIconFit(); } + int CPDF_FormControl::GetTextPosition() { - CPDF_ApSettings mk = GetMK(FALSE); - return mk.GetTextPosition(); + return GetMK().GetTextPosition(); } + CPDF_Action CPDF_FormControl::GetAction() { if (!m_pWidgetDict) { return CPDF_Action(); @@ -331,29 +322,28 @@ int CPDF_FormControl::GetControlAlignment() { } return pObj->GetInteger(); } -FX_BOOL CPDF_ApSettings::HasMKEntry(const CFX_ByteStringC& csEntry) { - if (m_pDict == NULL) { - return FALSE; - } - return m_pDict->KeyExist(csEntry); + +CPDF_ApSettings::CPDF_ApSettings(CPDF_Dictionary* pDict) : m_pDict(pDict) {} + +bool CPDF_ApSettings::HasMKEntry(const CFX_ByteStringC& csEntry) const { + return m_pDict && m_pDict->KeyExist(csEntry); } -int CPDF_ApSettings::GetRotation() { - if (m_pDict == NULL) { - return 0; - } - return m_pDict->GetInteger(FX_BSTRC("R")); + +int CPDF_ApSettings::GetRotation() const { + return m_pDict ? m_pDict->GetInteger(FX_BSTRC("R")) : 0; } + FX_ARGB CPDF_ApSettings::GetColor(int& iColorType, - const CFX_ByteStringC& csEntry) { + const CFX_ByteStringC& csEntry) const { iColorType = COLORTYPE_TRANSPARENT; - if (m_pDict == NULL) { + if (!m_pDict) return 0; - } - FX_ARGB color = 0; + CPDF_Array* pEntry = m_pDict->GetArray(csEntry); - if (pEntry == NULL) { - return color; - } + if (!pEntry) + return 0; + + FX_ARGB color = 0; FX_DWORD dwCount = pEntry->GetCount(); if (dwCount == 1) { iColorType = COLORTYPE_GRAY; @@ -378,20 +368,20 @@ FX_ARGB CPDF_ApSettings::GetColor(int& iColorType, } return color; } -FX_FLOAT CPDF_ApSettings::GetOriginalColor(int index, - const CFX_ByteStringC& csEntry) { - if (m_pDict == NULL) { + +FX_FLOAT CPDF_ApSettings::GetOriginalColor( + int index, + const CFX_ByteStringC& csEntry) const { + if (!m_pDict) return 0; - } + CPDF_Array* pEntry = m_pDict->GetArray(csEntry); - if (pEntry != NULL) { - return pEntry->GetNumber(index); - } - return 0; + return pEntry ? pEntry->GetNumber(index) : 0; } + void CPDF_ApSettings::GetOriginalColor(int& iColorType, FX_FLOAT fc[4], - const CFX_ByteStringC& csEntry) { + const CFX_ByteStringC& csEntry) const { iColorType = COLORTYPE_TRANSPARENT; for (int i = 0; i < 4; i++) { fc[i] = 0; @@ -420,28 +410,21 @@ void CPDF_ApSettings::GetOriginalColor(int& iColorType, fc[3] = pEntry->GetNumber(3); } } -CFX_WideString CPDF_ApSettings::GetCaption(const CFX_ByteStringC& csEntry) { - CFX_WideString csCaption; - if (m_pDict == NULL) { - return csCaption; - } - return m_pDict->GetUnicodeText(csEntry); + +CFX_WideString CPDF_ApSettings::GetCaption( + const CFX_ByteStringC& csEntry) const { + return m_pDict ? m_pDict->GetUnicodeText(csEntry) : CFX_WideString(); } -CPDF_Stream* CPDF_ApSettings::GetIcon(const CFX_ByteStringC& csEntry) { - if (m_pDict == NULL) { - return NULL; - } - return m_pDict->GetStream(csEntry); + +CPDF_Stream* CPDF_ApSettings::GetIcon(const CFX_ByteStringC& csEntry) const { + return m_pDict ? m_pDict->GetStream(csEntry) : nullptr; } -CPDF_IconFit CPDF_ApSettings::GetIconFit() { - if (m_pDict == NULL) { - return NULL; - } - return m_pDict->GetDict(FX_BSTRC("IF")); + +CPDF_IconFit CPDF_ApSettings::GetIconFit() const { + return m_pDict ? m_pDict->GetDict(FX_BSTRC("IF")) : nullptr; } -int CPDF_ApSettings::GetTextPosition() { - if (m_pDict == NULL) { - return TEXTPOS_CAPTION; - } - return m_pDict->GetInteger(FX_BSTRC("TP"), TEXTPOS_CAPTION); + +int CPDF_ApSettings::GetTextPosition() const { + return m_pDict ? m_pDict->GetInteger(FX_BSTRC("TP"), TEXTPOS_CAPTION) + : TEXTPOS_CAPTION; } |