diff options
Diffstat (limited to 'core/src/fpdfdoc')
-rw-r--r-- | core/src/fpdfdoc/doc_formcontrol.cpp | 8 | ||||
-rw-r--r-- | core/src/fpdfdoc/doc_utils.cpp | 8 | ||||
-rw-r--r-- | core/src/fpdfdoc/doc_vt.cpp | 44 | ||||
-rw-r--r-- | core/src/fpdfdoc/pdf_vt.h | 33 |
4 files changed, 46 insertions, 47 deletions
diff --git a/core/src/fpdfdoc/doc_formcontrol.cpp b/core/src/fpdfdoc/doc_formcontrol.cpp index bd339e375c..6c3d1ec9c4 100644 --- a/core/src/fpdfdoc/doc_formcontrol.cpp +++ b/core/src/fpdfdoc/doc_formcontrol.cpp @@ -4,6 +4,8 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include <algorithm> + #include "core/include/fpdfdoc/fpdf_doc.h" CPDF_FormControl::CPDF_FormControl(CPDF_FormField* pField, @@ -353,9 +355,9 @@ FX_ARGB CPDF_ApSettings::GetColor(int& iColorType, FX_FLOAT m = pEntry->GetNumber(1); FX_FLOAT y = pEntry->GetNumber(2); FX_FLOAT k = pEntry->GetNumber(3); - FX_FLOAT r = 1.0f - FX_MIN(1.0f, c + k); - FX_FLOAT g = 1.0f - FX_MIN(1.0f, m + k); - FX_FLOAT b = 1.0f - FX_MIN(1.0f, y + k); + FX_FLOAT r = 1.0f - std::min(1.0f, c + k); + FX_FLOAT g = 1.0f - std::min(1.0f, m + k); + FX_FLOAT b = 1.0f - std::min(1.0f, y + k); color = ArgbEncode(255, (int)(r * 255), (int)(g * 255), (int)(b * 255)); } return color; diff --git a/core/src/fpdfdoc/doc_utils.cpp b/core/src/fpdfdoc/doc_utils.cpp index 89836739b3..4856cb51e5 100644 --- a/core/src/fpdfdoc/doc_utils.cpp +++ b/core/src/fpdfdoc/doc_utils.cpp @@ -4,6 +4,8 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include <algorithm> + #include "core/include/fpdfdoc/fpdf_doc.h" #include "doc_utils.h" @@ -179,9 +181,9 @@ void CPDF_DefaultAppearance::GetColor(FX_ARGB& color, FX_FLOAT m = FX_atof((CFX_ByteString)syntax.GetWord()); FX_FLOAT y = FX_atof((CFX_ByteString)syntax.GetWord()); FX_FLOAT k = FX_atof((CFX_ByteString)syntax.GetWord()); - FX_FLOAT r = 1.0f - FX_MIN(1.0f, c + k); - FX_FLOAT g = 1.0f - FX_MIN(1.0f, m + k); - FX_FLOAT b = 1.0f - FX_MIN(1.0f, y + k); + FX_FLOAT r = 1.0f - std::min(1.0f, c + k); + FX_FLOAT g = 1.0f - std::min(1.0f, m + k); + FX_FLOAT b = 1.0f - std::min(1.0f, y + k); color = ArgbEncode(255, (int)(r * 255 + 0.5f), (int)(g * 255 + 0.5f), (int)(b * 255 + 0.5f)); } diff --git a/core/src/fpdfdoc/doc_vt.cpp b/core/src/fpdfdoc/doc_vt.cpp index 8df687ed59..e5c9ad8eba 100644 --- a/core/src/fpdfdoc/doc_vt.cpp +++ b/core/src/fpdfdoc/doc_vt.cpp @@ -4,6 +4,8 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com +#include <algorithm> + #include "core/include/fpdfdoc/fpdf_doc.h" #include "core/include/fpdfdoc/fpdf_vt.h" #include "pdf_vt.h" @@ -72,7 +74,7 @@ CPVT_WordPlace CSection::AddWord(const CPVT_WordPlace& place, const CPVT_WordInfo& wordinfo) { CPVT_WordInfo* pWord = new CPVT_WordInfo(wordinfo); int32_t nWordIndex = - FPDF_MAX(FPDF_MIN(place.nWordIndex, m_WordArray.GetSize()), 0); + std::max(std::min(place.nWordIndex, m_WordArray.GetSize()), 0); if (nWordIndex == m_WordArray.GetSize()) { m_WordArray.Add(pWord); } else { @@ -356,17 +358,17 @@ CPVT_FloatRect CTypeset::CharArray() { if (w == 0) { pLine->m_LineInfo.fLineX = x; } - if (w != m_pSection->m_WordArray.GetSize() - 1) + if (w != m_pSection->m_WordArray.GetSize() - 1) { pWord->fWordTail = (fNodeWidth - (fWordWidth + fNextWidth) * PVT_HALF > 0 ? fNodeWidth - (fWordWidth + fNextWidth) * PVT_HALF : 0); - else { + } else { pWord->fWordTail = 0; } x += fWordWidth; - fLineAscent = FPDF_MAX(fLineAscent, fWordAscent); - fLineDescent = FPDF_MIN(fLineDescent, fWordDescent); + fLineAscent = std::max(fLineAscent, fWordAscent); + fLineDescent = std::min(fLineDescent, fWordDescent); } } pLine->m_LineInfo.nBeginWordIndex = 0; @@ -582,7 +584,7 @@ void CTypeset::SplitLines(FX_BOOL bTypeset, FX_FLOAT fFontSize) { int32_t nCharIndex = 0; CPVT_LineInfo line; FX_FLOAT fWordWidth = 0; - FX_FLOAT fTypesetWidth = FPDF_MAX( + FX_FLOAT fTypesetWidth = std::max( m_pVT->GetPlateWidth() - m_pVT->GetLineIndent(m_pSection->m_SecInfo), 0.0f); int32_t nTotalWords = m_pSection->m_WordArray.GetSize(); @@ -598,15 +600,15 @@ void CTypeset::SplitLines(FX_BOOL bTypeset, FX_FLOAT fFontSize) { if (pWord) { if (bTypeset) { fLineAscent = - FPDF_MAX(fLineAscent, m_pVT->GetWordAscent(*pWord, TRUE)); + std::max(fLineAscent, m_pVT->GetWordAscent(*pWord, TRUE)); fLineDescent = - FPDF_MIN(fLineDescent, m_pVT->GetWordDescent(*pWord, TRUE)); + std::min(fLineDescent, m_pVT->GetWordDescent(*pWord, TRUE)); fWordWidth = m_pVT->GetWordWidth(*pWord); } else { fLineAscent = - FPDF_MAX(fLineAscent, m_pVT->GetWordAscent(*pWord, fFontSize)); + std::max(fLineAscent, m_pVT->GetWordAscent(*pWord, fFontSize)); fLineDescent = - FPDF_MIN(fLineDescent, m_pVT->GetWordDescent(*pWord, fFontSize)); + std::min(fLineDescent, m_pVT->GetWordDescent(*pWord, fFontSize)); fWordWidth = m_pVT->GetWordWidth( pWord->nFontIndex, pWord->Word, m_pVT->m_wSubWord, m_pVT->m_fCharSpace, m_pVT->m_nHorzScale, fFontSize, @@ -662,7 +664,7 @@ void CTypeset::SplitLines(FX_BOOL bTypeset, FX_FLOAT fFontSize) { } fMaxY += (fLineAscent + m_pVT->GetLineLeading(m_pSection->m_SecInfo)); fMaxY += (-fLineDescent); - fMaxX = FPDF_MAX(fLineWidth, fMaxX); + fMaxX = std::max(fLineWidth, fMaxX); nLineHead = i; fLineWidth = 0.0f; fLineAscent = 0.0f; @@ -688,7 +690,7 @@ void CTypeset::SplitLines(FX_BOOL bTypeset, FX_FLOAT fFontSize) { } fMaxY += (fLineAscent + m_pVT->GetLineLeading(m_pSection->m_SecInfo)); fMaxY += (-fLineDescent); - fMaxX = FPDF_MAX(fLineWidth, fMaxX); + fMaxX = std::max(fLineWidth, fMaxX); } } else { if (bTypeset) { @@ -720,7 +722,7 @@ void CTypeset::OutputLines() { FX_FLOAT fMinX = 0.0f, fMinY = 0.0f, fMaxX = 0.0f, fMaxY = 0.0f; FX_FLOAT fPosX = 0.0f, fPosY = 0.0f; FX_FLOAT fLineIndent = m_pVT->GetLineIndent(m_pSection->m_SecInfo); - FX_FLOAT fTypesetWidth = FPDF_MAX(m_pVT->GetPlateWidth() - fLineIndent, 0.0f); + FX_FLOAT fTypesetWidth = std::max(m_pVT->GetPlateWidth() - fLineIndent, 0.0f); switch (m_pVT->GetAlignment(m_pSection->m_SecInfo)) { default: case 0: @@ -1259,7 +1261,7 @@ CPVT_WordPlace CPDF_VariableText::AddSection(const CPVT_WordPlace& place, return place; } int32_t nSecIndex = - FPDF_MAX(FPDF_MIN(place.nSecIndex, m_SectionArray.GetSize()), 0); + std::max(std::min(place.nSecIndex, m_SectionArray.GetSize()), 0); CSection* pSection = new CSection(this); pSection->m_SecInfo = secinfo; pSection->SecPlace.nSecIndex = nSecIndex; @@ -1287,7 +1289,7 @@ CPVT_WordPlace CPDF_VariableText::AddWord(const CPVT_WordPlace& place, } CPVT_WordPlace newplace = place; newplace.nSecIndex = - FPDF_MAX(FPDF_MIN(newplace.nSecIndex, m_SectionArray.GetSize() - 1), 0); + std::max(std::min(newplace.nSecIndex, m_SectionArray.GetSize() - 1), 0); if (CSection* pSection = m_SectionArray.GetAt(newplace.nSecIndex)) { return pSection->AddWord(newplace, wordinfo); } @@ -1332,7 +1334,7 @@ FX_BOOL CPDF_VariableText::GetSectionInfo(const CPVT_WordPlace& place, return FALSE; } CPDF_Rect CPDF_VariableText::GetContentRect() const { - return InToOut(CPDF_EditContainer::GetContentRect()); + return InToOut(CPVT_FloatRect(CPDF_EditContainer::GetContentRect())); } FX_FLOAT CPDF_VariableText::GetWordFontSize(const CPVT_WordInfo& WordInfo, FX_BOOL bFactFontSize) { @@ -1576,7 +1578,7 @@ FX_BOOL CPDF_VariableText::IsBigger(FX_FLOAT fFontSize) { for (int32_t s = 0, sz = m_SectionArray.GetSize(); s < sz; s++) { if (CSection* pSection = m_SectionArray.GetAt(s)) { CPVT_Size size = pSection->GetSectionSize(fFontSize); - szTotal.x = FPDF_MAX(size.x, szTotal.x); + szTotal.x = std::max(size.x, szTotal.x); szTotal.y += size.y; if (IsFloatBigger(szTotal.x, GetPlateWidth()) || IsFloatBigger(szTotal.y, GetPlateHeight())) { @@ -1617,10 +1619,10 @@ CPVT_FloatRect CPDF_VariableText::RearrangeSections( if (s == 0) { rcRet = rcSec; } else { - rcRet.left = FPDF_MIN(rcSec.left, rcRet.left); - rcRet.top = FPDF_MIN(rcSec.top, rcRet.top); - rcRet.right = FPDF_MAX(rcSec.right, rcRet.right); - rcRet.bottom = FPDF_MAX(rcSec.bottom, rcRet.bottom); + rcRet.left = std::min(rcSec.left, rcRet.left); + rcRet.top = std::min(rcSec.top, rcRet.top); + rcRet.right = std::max(rcSec.right, rcRet.right); + rcRet.bottom = std::max(rcSec.bottom, rcRet.bottom); } fPosY += rcSec.Height(); } diff --git a/core/src/fpdfdoc/pdf_vt.h b/core/src/fpdfdoc/pdf_vt.h index 2cd673fbe5..286fad5772 100644 --- a/core/src/fpdfdoc/pdf_vt.h +++ b/core/src/fpdfdoc/pdf_vt.h @@ -22,14 +22,7 @@ class CPDF_VariableText_Iterator; #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001) #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb))) #define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb))) -template <class T> -T FPDF_MIN(const T& i, const T& j) { - return ((i < j) ? i : j); -} -template <class T> -T FPDF_MAX(const T& i, const T& j) { - return ((i > j) ? i : j); -} + class CPVT_Size { public: CPVT_Size() : x(0.0f), y(0.0f) {} @@ -51,7 +44,7 @@ class CPVT_FloatRect : public CFX_FloatRect { right = other_right; bottom = other_bottom; } - CPVT_FloatRect(const CPDF_Rect& rect) { + explicit CPVT_FloatRect(const CPDF_Rect& rect) { left = rect.left; top = rect.top; right = rect.right; @@ -246,7 +239,7 @@ class CSection { friend class CTypeset; public: - CSection(CPDF_VariableText* pVT); + explicit CSection(CPDF_VariableText* pVT); virtual ~CSection(); void ResetAll(); void ResetLineArray(); @@ -285,7 +278,7 @@ class CSection { }; class CTypeset { public: - CTypeset(CSection* pSection); + explicit CTypeset(CSection* pSection); virtual ~CTypeset(); CPVT_Size GetEditSize(FX_FLOAT fFontSize); CPVT_FloatRect Typeset(); @@ -307,37 +300,37 @@ class CPDF_EditContainer { virtual const CPDF_Rect& GetPlateRect() const { return m_rcPlate; } virtual void SetContentRect(const CPVT_FloatRect& rect) { m_rcContent = rect; - }; + } virtual CPDF_Rect GetContentRect() const { return m_rcContent; } FX_FLOAT GetPlateWidth() const { return m_rcPlate.right - m_rcPlate.left; } FX_FLOAT GetPlateHeight() const { return m_rcPlate.top - m_rcPlate.bottom; } CPVT_Size GetPlateSize() const { return CPVT_Size(GetPlateWidth(), GetPlateHeight()); - }; + } CPDF_Point GetBTPoint() const { return CPDF_Point(m_rcPlate.left, m_rcPlate.top); - }; + } CPDF_Point GetETPoint() const { return CPDF_Point(m_rcPlate.right, m_rcPlate.bottom); - }; + } inline CPDF_Point InToOut(const CPDF_Point& point) const { return CPDF_Point(point.x + GetBTPoint().x, GetBTPoint().y - point.y); - }; + } inline CPDF_Point OutToIn(const CPDF_Point& point) const { return CPDF_Point(point.x - GetBTPoint().x, GetBTPoint().y - point.y); - }; + } inline CPDF_Rect InToOut(const CPVT_FloatRect& rect) const { CPDF_Point ptLeftTop = InToOut(CPDF_Point(rect.left, rect.top)); CPDF_Point ptRightBottom = InToOut(CPDF_Point(rect.right, rect.bottom)); return CPDF_Rect(ptLeftTop.x, ptRightBottom.y, ptRightBottom.x, ptLeftTop.y); - }; + } inline CPVT_FloatRect OutToIn(const CPDF_Rect& rect) const { CPDF_Point ptLeftTop = OutToIn(CPDF_Point(rect.left, rect.top)); CPDF_Point ptRightBottom = OutToIn(CPDF_Point(rect.right, rect.bottom)); return CPVT_FloatRect(ptLeftTop.x, ptLeftTop.y, ptRightBottom.x, ptRightBottom.y); - }; + } private: CPDF_Rect m_rcPlate; @@ -539,7 +532,7 @@ class CPDF_VariableText : public IPDF_VariableText, private CPDF_EditContainer { class CPDF_VariableText_Iterator : public IPDF_VariableText_Iterator { public: - CPDF_VariableText_Iterator(CPDF_VariableText* pVT); + explicit CPDF_VariableText_Iterator(CPDF_VariableText* pVT); ~CPDF_VariableText_Iterator() override; // IPDF_VariableText_Iterator |