summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2017-02-14 14:58:49 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-02-14 14:59:09 +0000
commit92a32db931c1303388158f8a9e045e922d0b8dfa (patch)
tree5c6c05ffb40c1bb2653b415842537f7043bd6407 /core
parent4797c4240cb9e2d8cd36c583d46cd52ff94af95d (diff)
downloadpdfium-92a32db931c1303388158f8a9e045e922d0b8dfa.tar.xz
Revert "Convert CFX_FloatPoint to CFX_PointF"
This reverts commit 4797c4240cb9e2d8cd36c583d46cd52ff94af95d. Reason for revert: Reverting chain to see if fixes Chrome roll. Original change's description: > Convert CFX_FloatPoint to CFX_PointF > > The two classes store the same information, remove the CFX_FloatPoint variant. > > Change-Id: Ie598c2ba5af04fb2bb3347dd48c30fd5e4845e62 > Reviewed-on: https://pdfium-review.googlesource.com/2612 > Commit-Queue: dsinclair <dsinclair@chromium.org> > Reviewed-by: Tom Sepez <tsepez@chromium.org> > TBR=tsepez@chromium.org,dsinclair@chromium.org,pdfium-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ia42074e706983c62d2e57497c3079b3c338343a3 Reviewed-on: https://pdfium-review.googlesource.com/2694 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core')
-rw-r--r--core/fpdfdoc/cpdf_variabletext.cpp48
-rw-r--r--core/fpdfdoc/cpdf_variabletext.h18
-rw-r--r--core/fpdfdoc/cpvt_generateap.cpp37
-rw-r--r--core/fpdfdoc/cpvt_generateap.h2
-rw-r--r--core/fpdfdoc/cpvt_line.h10
-rw-r--r--core/fpdfdoc/cpvt_lineinfo.h23
-rw-r--r--core/fpdfdoc/cpvt_word.h5
-rw-r--r--core/fpdfdoc/csection.cpp2
-rw-r--r--core/fpdfdoc/csection.h5
-rw-r--r--core/fpdftext/cpdf_textpage.cpp4
-rw-r--r--core/fpdftext/cpdf_textpage.h2
-rw-r--r--core/fxcrt/fx_basic_coords.cpp4
-rw-r--r--core/fxcrt/fx_coordinates.h16
13 files changed, 96 insertions, 80 deletions
diff --git a/core/fpdfdoc/cpdf_variabletext.cpp b/core/fpdfdoc/cpdf_variabletext.cpp
index 94b3425a09..546bd9f740 100644
--- a/core/fpdfdoc/cpdf_variabletext.cpp
+++ b/core/fpdfdoc/cpdf_variabletext.cpp
@@ -172,8 +172,8 @@ bool CPDF_VariableText::Iterator::GetWord(CPVT_Word& word) const {
word.nCharset = pWord->nCharset;
word.fWidth = m_pVT->GetWordWidth(*pWord);
word.ptWord = m_pVT->InToOut(
- CFX_PointF(pWord->fWordX + pSection->m_SecInfo.rcSection.left,
- pWord->fWordY + pSection->m_SecInfo.rcSection.top));
+ CFX_FloatPoint(pWord->fWordX + pSection->m_SecInfo.rcSection.left,
+ pWord->fWordY + pSection->m_SecInfo.rcSection.top));
word.fAscent = m_pVT->GetWordAscent(*pWord);
word.fDescent = m_pVT->GetWordDescent(*pWord);
if (pWord->pWordProps)
@@ -205,7 +205,7 @@ bool CPDF_VariableText::Iterator::GetLine(CPVT_Line& line) const {
line.lineplace = CPVT_WordPlace(m_CurPos.nSecIndex, m_CurPos.nLineIndex, -1);
if (CSection* pSection = m_pVT->m_SectionArray.GetAt(m_CurPos.nSecIndex)) {
if (CLine* pLine = pSection->m_LineArray.GetAt(m_CurPos.nLineIndex)) {
- line.ptLine = m_pVT->InToOut(CFX_PointF(
+ line.ptLine = m_pVT->InToOut(CFX_FloatPoint(
pLine->m_LineInfo.fLineX + pSection->m_SecInfo.rcSection.left,
pLine->m_LineInfo.fLineY + pSection->m_SecInfo.rcSection.top));
line.fLineWidth = pLine->m_LineInfo.fLineWidth;
@@ -548,8 +548,8 @@ CPVT_WordPlace CPDF_VariableText::GetNextWordPlace(
}
CPVT_WordPlace CPDF_VariableText::SearchWordPlace(
- const CFX_PointF& point) const {
- CFX_PointF pt = OutToIn(point);
+ const CFX_FloatPoint& point) const {
+ CFX_FloatPoint pt = OutToIn(point);
CPVT_WordPlace place = GetBeginWordPlace();
int32_t nLeft = 0;
int32_t nRight = m_SectionArray.GetSize() - 1;
@@ -574,8 +574,8 @@ CPVT_WordPlace CPDF_VariableText::SearchWordPlace(
continue;
} else {
place = pSection->SearchWordPlace(
- CFX_PointF(pt.x - pSection->m_SecInfo.rcSection.left,
- pt.y - pSection->m_SecInfo.rcSection.top));
+ CFX_FloatPoint(pt.x - pSection->m_SecInfo.rcSection.left,
+ pt.y - pSection->m_SecInfo.rcSection.top));
place.nSecIndex = nMid;
return place;
}
@@ -592,10 +592,10 @@ CPVT_WordPlace CPDF_VariableText::SearchWordPlace(
CPVT_WordPlace CPDF_VariableText::GetUpWordPlace(
const CPVT_WordPlace& place,
- const CFX_PointF& point) const {
+ const CFX_FloatPoint& point) const {
if (CSection* pSection = m_SectionArray.GetAt(place.nSecIndex)) {
CPVT_WordPlace temp = place;
- CFX_PointF pt = OutToIn(point);
+ CFX_FloatPoint pt = OutToIn(point);
if (temp.nLineIndex-- > 0) {
return pSection->SearchWordPlace(
pt.x - pSection->m_SecInfo.rcSection.left, temp);
@@ -613,10 +613,10 @@ CPVT_WordPlace CPDF_VariableText::GetUpWordPlace(
CPVT_WordPlace CPDF_VariableText::GetDownWordPlace(
const CPVT_WordPlace& place,
- const CFX_PointF& point) const {
+ const CFX_FloatPoint& point) const {
if (CSection* pSection = m_SectionArray.GetAt(place.nSecIndex)) {
CPVT_WordPlace temp = place;
- CFX_PointF pt = OutToIn(point);
+ CFX_FloatPoint pt = OutToIn(point);
if (temp.nLineIndex++ < pSection->m_LineArray.GetSize() - 1) {
return pSection->SearchWordPlace(
pt.x - pSection->m_SecInfo.rcSection.left, temp);
@@ -1109,32 +1109,34 @@ CFX_SizeF CPDF_VariableText::GetPlateSize() const {
return CFX_SizeF(GetPlateWidth(), GetPlateHeight());
}
-CFX_PointF CPDF_VariableText::GetBTPoint() const {
- return CFX_PointF(m_rcPlate.left, m_rcPlate.top);
+CFX_FloatPoint CPDF_VariableText::GetBTPoint() const {
+ return CFX_FloatPoint(m_rcPlate.left, m_rcPlate.top);
}
-CFX_PointF CPDF_VariableText::GetETPoint() const {
- return CFX_PointF(m_rcPlate.right, m_rcPlate.bottom);
+CFX_FloatPoint CPDF_VariableText::GetETPoint() const {
+ return CFX_FloatPoint(m_rcPlate.right, m_rcPlate.bottom);
}
-CFX_PointF CPDF_VariableText::InToOut(const CFX_PointF& point) const {
- return CFX_PointF(point.x + GetBTPoint().x, GetBTPoint().y - point.y);
+CFX_FloatPoint CPDF_VariableText::InToOut(const CFX_FloatPoint& point) const {
+ return CFX_FloatPoint(point.x + GetBTPoint().x, GetBTPoint().y - point.y);
}
-CFX_PointF CPDF_VariableText::OutToIn(const CFX_PointF& point) const {
- return CFX_PointF(point.x - GetBTPoint().x, GetBTPoint().y - point.y);
+CFX_FloatPoint CPDF_VariableText::OutToIn(const CFX_FloatPoint& point) const {
+ return CFX_FloatPoint(point.x - GetBTPoint().x, GetBTPoint().y - point.y);
}
CFX_FloatRect CPDF_VariableText::InToOut(const CPVT_FloatRect& rect) const {
- CFX_PointF ptLeftTop = InToOut(CFX_PointF(rect.left, rect.top));
- CFX_PointF ptRightBottom = InToOut(CFX_PointF(rect.right, rect.bottom));
+ CFX_FloatPoint ptLeftTop = InToOut(CFX_FloatPoint(rect.left, rect.top));
+ CFX_FloatPoint ptRightBottom =
+ InToOut(CFX_FloatPoint(rect.right, rect.bottom));
return CFX_FloatRect(ptLeftTop.x, ptRightBottom.y, ptRightBottom.x,
ptLeftTop.y);
}
CPVT_FloatRect CPDF_VariableText::OutToIn(const CFX_FloatRect& rect) const {
- CFX_PointF ptLeftTop = OutToIn(CFX_PointF(rect.left, rect.top));
- CFX_PointF ptRightBottom = OutToIn(CFX_PointF(rect.right, rect.bottom));
+ CFX_FloatPoint ptLeftTop = OutToIn(CFX_FloatPoint(rect.left, rect.top));
+ CFX_FloatPoint ptRightBottom =
+ OutToIn(CFX_FloatPoint(rect.right, rect.bottom));
return CPVT_FloatRect(ptLeftTop.x, ptLeftTop.y, ptRightBottom.x,
ptRightBottom.y);
}
diff --git a/core/fpdfdoc/cpdf_variabletext.h b/core/fpdfdoc/cpdf_variabletext.h
index 8e7c0c964a..5983a2978b 100644
--- a/core/fpdfdoc/cpdf_variabletext.h
+++ b/core/fpdfdoc/cpdf_variabletext.h
@@ -20,13 +20,13 @@
#include "core/fxcrt/fx_system.h"
#include "core/fxge/fx_font.h"
-class CPVT_Word;
class CSection;
class IPVT_FontMap;
+
struct CPVT_SecProps;
struct CPVT_Section;
struct CPVT_SectionInfo;
-
+struct CPVT_Word;
struct CPVT_WordInfo;
struct CPVT_WordProps;
@@ -132,11 +132,11 @@ class CPDF_VariableText {
CPVT_WordPlace GetEndWordPlace() const;
CPVT_WordPlace GetPrevWordPlace(const CPVT_WordPlace& place) const;
CPVT_WordPlace GetNextWordPlace(const CPVT_WordPlace& place) const;
- CPVT_WordPlace SearchWordPlace(const CFX_PointF& point) const;
+ CPVT_WordPlace SearchWordPlace(const CFX_FloatPoint& point) const;
CPVT_WordPlace GetUpWordPlace(const CPVT_WordPlace& place,
- const CFX_PointF& point) const;
+ const CFX_FloatPoint& point) const;
CPVT_WordPlace GetDownWordPlace(const CPVT_WordPlace& place,
- const CFX_PointF& point) const;
+ const CFX_FloatPoint& point) const;
CPVT_WordPlace GetLineBeginPlace(const CPVT_WordPlace& place) const;
CPVT_WordPlace GetLineEndPlace(const CPVT_WordPlace& place) const;
CPVT_WordPlace GetSectionBeginPlace(const CPVT_WordPlace& place) const;
@@ -152,11 +152,11 @@ class CPDF_VariableText {
FX_FLOAT GetPlateWidth() const { return m_rcPlate.right - m_rcPlate.left; }
FX_FLOAT GetPlateHeight() const { return m_rcPlate.top - m_rcPlate.bottom; }
CFX_SizeF GetPlateSize() const;
- CFX_PointF GetBTPoint() const;
- CFX_PointF GetETPoint() const;
+ CFX_FloatPoint GetBTPoint() const;
+ CFX_FloatPoint GetETPoint() const;
- CFX_PointF InToOut(const CFX_PointF& point) const;
- CFX_PointF OutToIn(const CFX_PointF& point) const;
+ CFX_FloatPoint InToOut(const CFX_FloatPoint& point) const;
+ CFX_FloatPoint OutToIn(const CFX_FloatPoint& point) const;
CFX_FloatRect InToOut(const CPVT_FloatRect& rect) const;
CPVT_FloatRect OutToIn(const CFX_FloatRect& rect) const;
diff --git a/core/fpdfdoc/cpvt_generateap.cpp b/core/fpdfdoc/cpvt_generateap.cpp
index 15515151bc..4bb244f29e 100644
--- a/core/fpdfdoc/cpvt_generateap.cpp
+++ b/core/fpdfdoc/cpvt_generateap.cpp
@@ -246,10 +246,10 @@ bool GenerateWidgetAP(CPDF_Document* pDoc,
vt.SetText(swValue);
vt.RearrangeAll();
CFX_FloatRect rcContent = vt.GetContentRect();
- CFX_PointF ptOffset;
+ CFX_FloatPoint ptOffset;
if (!bMultiLine) {
ptOffset =
- CFX_PointF(0.0f, (rcContent.Height() - rcBody.Height()) / 2.0f);
+ CFX_FloatPoint(0.0f, (rcContent.Height() - rcBody.Height()) / 2.0f);
}
CFX_ByteString sBody = CPVT_GenerateAP::GenerateEditAP(
&map, vt.GetIterator(), ptOffset, !bCharArray, subWord);
@@ -296,8 +296,8 @@ bool GenerateWidgetAP(CPDF_Document* pDoc,
vt.SetText(swValue);
vt.RearrangeAll();
CFX_FloatRect rcContent = vt.GetContentRect();
- CFX_PointF ptOffset =
- CFX_PointF(0.0f, (rcContent.Height() - rcEdit.Height()) / 2.0f);
+ CFX_FloatPoint ptOffset =
+ CFX_FloatPoint(0.0f, (rcContent.Height() - rcEdit.Height()) / 2.0f);
CFX_ByteString sEdit = CPVT_GenerateAP::GenerateEditAP(
&map, vt.GetIterator(), ptOffset, true, 0);
if (sEdit.GetLength() > 0) {
@@ -328,8 +328,9 @@ bool GenerateWidgetAP(CPDF_Document* pDoc,
if (sButtonBorder.GetLength() > 0)
sAppStream << "q\n" << sButtonBorder << "Q\n";
- CFX_PointF ptCenter = CFX_PointF((rcButton.left + rcButton.right) / 2,
- (rcButton.top + rcButton.bottom) / 2);
+ CFX_FloatPoint ptCenter =
+ CFX_FloatPoint((rcButton.left + rcButton.right) / 2,
+ (rcButton.top + rcButton.bottom) / 2);
if (IsFloatBigger(rcButton.Width(), 6) &&
IsFloatBigger(rcButton.Height(), 6)) {
sAppStream << "q\n"
@@ -401,7 +402,7 @@ bool GenerateWidgetAP(CPDF_Document* pDoc,
CPVT_Color(CPVT_Color::kGray, 1),
PaintOperation::FILL)
<< CPVT_GenerateAP::GenerateEditAP(&map, vt.GetIterator(),
- CFX_PointF(0.0f, fy),
+ CFX_FloatPoint(0.0f, fy),
true, 0)
<< "ET\n";
} else {
@@ -409,7 +410,7 @@ bool GenerateWidgetAP(CPDF_Document* pDoc,
<< CPVT_GenerateAP::GenerateColorAP(crText,
PaintOperation::FILL)
<< CPVT_GenerateAP::GenerateEditAP(&map, vt.GetIterator(),
- CFX_PointF(0.0f, fy),
+ CFX_FloatPoint(0.0f, fy),
true, 0)
<< "ET\n";
}
@@ -528,7 +529,7 @@ CFX_ByteString GetPopupContentsString(CPDF_Document* pDoc,
vt.Initialize();
vt.SetText(swValue);
vt.RearrangeAll();
- CFX_PointF ptOffset(3.0f, -3.0f);
+ CFX_FloatPoint ptOffset(3.0f, -3.0f);
CFX_ByteString sContent = CPVT_GenerateAP::GenerateEditAP(
&map, vt.GetIterator(), ptOffset, false, 0);
@@ -1101,14 +1102,14 @@ bool CPVT_GenerateAP::GenerateStrikeOutAP(CPDF_Document* pDoc,
CFX_ByteString CPVT_GenerateAP::GenerateEditAP(
IPVT_FontMap* pFontMap,
CPDF_VariableText::Iterator* pIterator,
- const CFX_PointF& ptOffset,
+ const CFX_FloatPoint& ptOffset,
bool bContinuous,
uint16_t SubWord) {
CFX_ByteTextBuf sEditStream;
CFX_ByteTextBuf sLineStream;
CFX_ByteTextBuf sWords;
- CFX_PointF ptOld;
- CFX_PointF ptNew;
+ CFX_FloatPoint ptOld;
+ CFX_FloatPoint ptNew;
int32_t nCurFontIndex = -1;
CPVT_WordPlace oldplace;
@@ -1125,13 +1126,13 @@ CFX_ByteString CPVT_GenerateAP::GenerateEditAP(
}
CPVT_Word word;
if (pIterator->GetWord(word)) {
- ptNew = CFX_PointF(word.ptWord.x + ptOffset.x,
- word.ptWord.y + ptOffset.y);
+ ptNew = CFX_FloatPoint(word.ptWord.x + ptOffset.x,
+ word.ptWord.y + ptOffset.y);
} else {
CPVT_Line line;
pIterator->GetLine(line);
- ptNew = CFX_PointF(line.ptLine.x + ptOffset.x,
- line.ptLine.y + ptOffset.y);
+ ptNew = CFX_FloatPoint(line.ptLine.x + ptOffset.x,
+ line.ptLine.y + ptOffset.y);
}
if (ptNew != ptOld) {
sLineStream << ptNew.x - ptOld.x << " " << ptNew.y - ptOld.y
@@ -1156,8 +1157,8 @@ CFX_ByteString CPVT_GenerateAP::GenerateEditAP(
} else {
CPVT_Word word;
if (pIterator->GetWord(word)) {
- ptNew =
- CFX_PointF(word.ptWord.x + ptOffset.x, word.ptWord.y + ptOffset.y);
+ ptNew = CFX_FloatPoint(word.ptWord.x + ptOffset.x,
+ word.ptWord.y + ptOffset.y);
if (ptNew != ptOld) {
sEditStream << ptNew.x - ptOld.x << " " << ptNew.y - ptOld.y
<< " Td\n";
diff --git a/core/fpdfdoc/cpvt_generateap.h b/core/fpdfdoc/cpvt_generateap.h
index 62a84531ee..16c939fe92 100644
--- a/core/fpdfdoc/cpvt_generateap.h
+++ b/core/fpdfdoc/cpvt_generateap.h
@@ -48,7 +48,7 @@ class CPVT_GenerateAP {
CPDF_Dictionary* pAnnotDict);
static CFX_ByteString GenerateEditAP(IPVT_FontMap* pFontMap,
CPDF_VariableText::Iterator* pIterator,
- const CFX_PointF& ptOffset,
+ const CFX_FloatPoint& ptOffset,
bool bContinuous,
uint16_t SubWord);
static CFX_ByteString GenerateBorderAP(const CFX_FloatRect& rect,
diff --git a/core/fpdfdoc/cpvt_line.h b/core/fpdfdoc/cpvt_line.h
index 47c3e84d6a..25ae34af16 100644
--- a/core/fpdfdoc/cpvt_line.h
+++ b/core/fpdfdoc/cpvt_line.h
@@ -11,19 +11,15 @@
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
-class CPVT_Line {
- public:
- CPVT_Line();
+struct CPVT_Line {
+ CPVT_Line() : fLineWidth(0.0f), fLineAscent(0.0f), fLineDescent(0.0f) {}
CPVT_WordPlace lineplace;
CPVT_WordPlace lineEnd;
- CFX_PointF ptLine;
+ CFX_FloatPoint ptLine;
FX_FLOAT fLineWidth;
FX_FLOAT fLineAscent;
FX_FLOAT fLineDescent;
};
-inline CPVT_Line::CPVT_Line()
- : fLineWidth(0.0f), fLineAscent(0.0f), fLineDescent(0.0f) {}
-
#endif // CORE_FPDFDOC_CPVT_LINE_H_
diff --git a/core/fpdfdoc/cpvt_lineinfo.h b/core/fpdfdoc/cpvt_lineinfo.h
index 8fb10de250..2ebc51cb8e 100644
--- a/core/fpdfdoc/cpvt_lineinfo.h
+++ b/core/fpdfdoc/cpvt_lineinfo.h
@@ -9,9 +9,16 @@
#include "core/fxcrt/fx_system.h"
-class CPVT_LineInfo {
- public:
- CPVT_LineInfo();
+struct CPVT_LineInfo {
+ CPVT_LineInfo()
+ : nTotalWord(0),
+ nBeginWordIndex(-1),
+ nEndWordIndex(-1),
+ fLineX(0.0f),
+ fLineY(0.0f),
+ fLineWidth(0.0f),
+ fLineAscent(0.0f),
+ fLineDescent(0.0f) {}
int32_t nTotalWord;
int32_t nBeginWordIndex;
@@ -23,14 +30,4 @@ class CPVT_LineInfo {
FX_FLOAT fLineDescent;
};
-inline CPVT_LineInfo::CPVT_LineInfo()
- : nTotalWord(0),
- nBeginWordIndex(-1),
- nEndWordIndex(-1),
- fLineX(0.0f),
- fLineY(0.0f),
- fLineWidth(0.0f),
- fLineAscent(0.0f),
- fLineDescent(0.0f) {}
-
#endif // CORE_FPDFDOC_CPVT_LINEINFO_H_
diff --git a/core/fpdfdoc/cpvt_word.h b/core/fpdfdoc/cpvt_word.h
index 540f0416ad..92a4ce1e94 100644
--- a/core/fpdfdoc/cpvt_word.h
+++ b/core/fpdfdoc/cpvt_word.h
@@ -11,14 +11,13 @@
#include "core/fpdfdoc/cpvt_wordprops.h"
#include "core/fxcrt/fx_system.h"
-class CPVT_Word {
- public:
+struct CPVT_Word {
CPVT_Word();
uint16_t Word;
int32_t nCharset;
CPVT_WordPlace WordPlace;
- CFX_PointF ptWord;
+ CFX_FloatPoint ptWord;
FX_FLOAT fAscent;
FX_FLOAT fDescent;
FX_FLOAT fWidth;
diff --git a/core/fpdfdoc/csection.cpp b/core/fpdfdoc/csection.cpp
index 490ef1b230..4964504175 100644
--- a/core/fpdfdoc/csection.cpp
+++ b/core/fpdfdoc/csection.cpp
@@ -146,7 +146,7 @@ void CSection::UpdateWordPlace(CPVT_WordPlace& place) const {
}
}
-CPVT_WordPlace CSection::SearchWordPlace(const CFX_PointF& point) const {
+CPVT_WordPlace CSection::SearchWordPlace(const CFX_FloatPoint& point) const {
ASSERT(m_pVT);
CPVT_WordPlace place = GetBeginWordPlace();
bool bUp = true;
diff --git a/core/fpdfdoc/csection.h b/core/fpdfdoc/csection.h
index a2ac43b102..706f5b67bb 100644
--- a/core/fpdfdoc/csection.h
+++ b/core/fpdfdoc/csection.h
@@ -14,7 +14,8 @@
#include "core/fxcrt/fx_system.h"
class CPDF_VariableText;
-class CPVT_LineInfo;
+
+struct CPVT_LineInfo;
struct CPVT_WordLine;
struct CPVT_WordPlace;
@@ -39,7 +40,7 @@ class CSection final {
CPVT_WordPlace GetPrevWordPlace(const CPVT_WordPlace& place) const;
CPVT_WordPlace GetNextWordPlace(const CPVT_WordPlace& place) const;
void UpdateWordPlace(CPVT_WordPlace& place) const;
- CPVT_WordPlace SearchWordPlace(const CFX_PointF& point) const;
+ CPVT_WordPlace SearchWordPlace(const CFX_FloatPoint& point) const;
CPVT_WordPlace SearchWordPlace(FX_FLOAT fx,
const CPVT_WordPlace& lineplace) const;
CPVT_WordPlace SearchWordPlace(FX_FLOAT fx,
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 17bab02a7c..bd068a596b 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -300,7 +300,7 @@ std::vector<CFX_FloatRect> CPDF_TextPage::GetRectArray(int start,
return rectArray;
}
-int CPDF_TextPage::GetIndexAtPos(const CFX_PointF& point,
+int CPDF_TextPage::GetIndexAtPos(CFX_FloatPoint point,
FX_FLOAT xTolerance,
FX_FLOAT yTolerance) const {
if (!m_bIsParsed)
@@ -382,7 +382,7 @@ int CPDF_TextPage::GetIndexAtPos(FX_FLOAT x,
FX_FLOAT y,
FX_FLOAT xTolerance,
FX_FLOAT yTolerance) const {
- CFX_PointF point(x, y);
+ CFX_FloatPoint point(x, y);
return GetIndexAtPos(point, xTolerance, yTolerance);
}
diff --git a/core/fpdftext/cpdf_textpage.h b/core/fpdftext/cpdf_textpage.h
index 946a2d658d..d22cba3e40 100644
--- a/core/fpdftext/cpdf_textpage.h
+++ b/core/fpdftext/cpdf_textpage.h
@@ -98,7 +98,7 @@ class CPDF_TextPage {
int CountChars() const;
void GetCharInfo(int index, FPDF_CHAR_INFO* info) const;
std::vector<CFX_FloatRect> GetRectArray(int start, int nCount) const;
- int GetIndexAtPos(const CFX_PointF& point,
+ int GetIndexAtPos(CFX_FloatPoint point,
FX_FLOAT xTolerance,
FX_FLOAT yTolerance) const;
int GetIndexAtPos(FX_FLOAT x,
diff --git a/core/fxcrt/fx_basic_coords.cpp b/core/fxcrt/fx_basic_coords.cpp
index 35364e8030..c5ee4048a2 100644
--- a/core/fxcrt/fx_basic_coords.cpp
+++ b/core/fxcrt/fx_basic_coords.cpp
@@ -197,6 +197,10 @@ FX_RECT CFX_FloatRect::GetClosestRect() const {
return rect;
}
+bool CFX_FloatRect::Contains(const CFX_FloatPoint& point) const {
+ return Contains(point.x, point.y);
+}
+
bool CFX_FloatRect::Contains(const CFX_PointF& point) const {
return Contains(point.x, point.y);
}
diff --git a/core/fxcrt/fx_coordinates.h b/core/fxcrt/fx_coordinates.h
index 3a5b1feabe..172d794e97 100644
--- a/core/fxcrt/fx_coordinates.h
+++ b/core/fxcrt/fx_coordinates.h
@@ -245,6 +245,21 @@ struct FX_RECT {
int32_t bottom;
};
+// LBRT rectangles (y-axis runs upwards).
+class CFX_FloatPoint {
+ public:
+ CFX_FloatPoint() : x(0.0f), y(0.0f) {}
+ CFX_FloatPoint(FX_FLOAT xx, FX_FLOAT yy) : x(xx), y(yy) {}
+
+ bool operator==(const CFX_FloatPoint& that) const {
+ return x == that.x && y == that.y;
+ }
+ bool operator!=(const CFX_FloatPoint& that) const { return !(*this == that); }
+
+ FX_FLOAT x;
+ FX_FLOAT y;
+};
+
// LTWH rectangles (y-axis runs downwards).
template <class BaseType>
class CFX_RTemplate {
@@ -480,6 +495,7 @@ class CFX_FloatRect {
}
bool IsEmpty() const { return left >= right || bottom >= top; }
+ bool Contains(const CFX_FloatPoint& point) const;
bool Contains(const CFX_PointF& point) const;
bool Contains(const CFX_FloatRect& other_rect) const;
bool Contains(FX_FLOAT x, FX_FLOAT y) const;