summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-02-16 09:20:49 -0500
committerChromium commit bot <commit-bot@chromium.org>2017-02-16 15:08:51 +0000
commitfa42927a727aa7f7f081b40ff75d1a849c2365c3 (patch)
tree6287f47a017a7fe6986aabf4e5ad975b3ff4b67e /core/fpdfapi/page
parenta4ad01fe03ffdd1806d31a9d7bb820f6a69a0afb (diff)
downloadpdfium-fa42927a727aa7f7f081b40ff75d1a849c2365c3.tar.xz
Convert CPDF_TextObject to CFX_PointF
This CL converts the OriginX and OriginY from CPDF_TextObjectItem to use a CFX_PointF instead of two floats. Change-Id: Id39de18d3d908a86f925bec68d0680392f70906e Reviewed-on: https://pdfium-review.googlesource.com/2715 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Nicolás Peña <npm@chromium.org>
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r--core/fpdfapi/page/cpdf_pageobject.h4
-rw-r--r--core/fpdfapi/page/cpdf_textobject.cpp37
-rw-r--r--core/fpdfapi/page/cpdf_textobject.h12
3 files changed, 27 insertions, 26 deletions
diff --git a/core/fpdfapi/page/cpdf_pageobject.h b/core/fpdfapi/page/cpdf_pageobject.h
index ffc59f4eee..d2b84a5d40 100644
--- a/core/fpdfapi/page/cpdf_pageobject.h
+++ b/core/fpdfapi/page/cpdf_pageobject.h
@@ -51,6 +51,10 @@ class CPDF_PageObject : public CPDF_GraphicStates {
void TransformClipPath(CFX_Matrix& matrix);
void TransformGeneralState(CFX_Matrix& matrix);
+
+ CFX_FloatRect GetRect() const {
+ return CFX_FloatRect(m_Left, m_Bottom, m_Right, m_Top);
+ }
FX_RECT GetBBox(const CFX_Matrix* pMatrix) const;
FX_FLOAT m_Left;
diff --git a/core/fpdfapi/page/cpdf_textobject.cpp b/core/fpdfapi/page/cpdf_textobject.cpp
index 2ca996b2d4..a84deb27c7 100644
--- a/core/fpdfapi/page/cpdf_textobject.cpp
+++ b/core/fpdfapi/page/cpdf_textobject.cpp
@@ -13,10 +13,13 @@
#include "third_party/base/ptr_util.h"
#include "third_party/base/stl_util.h"
+CPDF_TextObjectItem::CPDF_TextObjectItem() : m_CharCode(0) {}
+
+CPDF_TextObjectItem::~CPDF_TextObjectItem() = default;
+
CPDF_TextObject::CPDF_TextObject() {}
-CPDF_TextObject::~CPDF_TextObject() {
-}
+CPDF_TextObject::~CPDF_TextObject() {}
int CPDF_TextObject::CountItems() const {
return pdfium::CollectionSize<int>(m_CharCodes);
@@ -24,26 +27,26 @@ int CPDF_TextObject::CountItems() const {
void CPDF_TextObject::GetItemInfo(int index, CPDF_TextObjectItem* pInfo) const {
pInfo->m_CharCode = m_CharCodes[index];
- pInfo->m_OriginX = index ? m_CharPos[index - 1] : 0;
- pInfo->m_OriginY = 0;
+ pInfo->m_Origin = CFX_PointF(index ? m_CharPos[index - 1] : 0, 0);
if (pInfo->m_CharCode == CPDF_Font::kInvalidCharCode)
return;
CPDF_Font* pFont = m_TextState.GetFont();
- if (!pFont->IsCIDFont()) {
+ if (!pFont->IsCIDFont())
return;
- }
- if (!pFont->AsCIDFont()->IsVertWriting()) {
+ if (!pFont->AsCIDFont()->IsVertWriting())
return;
- }
+
uint16_t CID = pFont->AsCIDFont()->CIDFromCharCode(pInfo->m_CharCode);
- pInfo->m_OriginY = pInfo->m_OriginX;
- pInfo->m_OriginX = 0;
- short vx, vy;
+ pInfo->m_Origin = CFX_PointF(0, pInfo->m_Origin.x);
+
+ short vx;
+ short vy;
pFont->AsCIDFont()->GetVertOrigin(CID, vx, vy);
+
FX_FLOAT fontsize = m_TextState.GetFontSize();
- pInfo->m_OriginX -= fontsize * vx / 1000;
- pInfo->m_OriginY -= fontsize * vy / 1000;
+ pInfo->m_Origin.x -= fontsize * vx / 1000;
+ pInfo->m_Origin.y -= fontsize * vy / 1000;
}
int CPDF_TextObject::CountChars() const {
@@ -177,14 +180,6 @@ FX_FLOAT CPDF_TextObject::GetCharWidth(uint32_t charcode) const {
return pCIDFont->GetVertWidth(CID) * fontsize;
}
-FX_FLOAT CPDF_TextObject::GetPosX() const {
- return m_Pos.x;
-}
-
-FX_FLOAT CPDF_TextObject::GetPosY() const {
- return m_Pos.y;
-}
-
CPDF_Font* CPDF_TextObject::GetFont() const {
return m_TextState.GetFont();
}
diff --git a/core/fpdfapi/page/cpdf_textobject.h b/core/fpdfapi/page/cpdf_textobject.h
index 07a2aabbe2..756187046b 100644
--- a/core/fpdfapi/page/cpdf_textobject.h
+++ b/core/fpdfapi/page/cpdf_textobject.h
@@ -14,10 +14,13 @@
#include "core/fxcrt/fx_string.h"
#include "core/fxcrt/fx_system.h"
-struct CPDF_TextObjectItem {
+class CPDF_TextObjectItem {
+ public:
+ CPDF_TextObjectItem();
+ ~CPDF_TextObjectItem();
+
uint32_t m_CharCode;
- FX_FLOAT m_OriginX;
- FX_FLOAT m_OriginY;
+ CFX_PointF m_Origin;
};
class CPDF_TextObject : public CPDF_PageObject {
@@ -39,8 +42,7 @@ class CPDF_TextObject : public CPDF_PageObject {
void GetCharInfo(int index, uint32_t* charcode, FX_FLOAT* kerning) const;
void GetCharInfo(int index, CPDF_TextObjectItem* pInfo) const;
FX_FLOAT GetCharWidth(uint32_t charcode) const;
- FX_FLOAT GetPosX() const;
- FX_FLOAT GetPosY() const;
+ CFX_PointF GetPos() const { return m_Pos; }
CFX_Matrix GetTextMatrix() const;
CPDF_Font* GetFont() const;
FX_FLOAT GetFontSize() const;