Index: fpdfsdk/fxedit/fxet_pageobjs.cpp |
diff --git a/fpdfsdk/fxedit/fxet_pageobjs.cpp b/fpdfsdk/fxedit/fxet_pageobjs.cpp |
index 91039f49deb39eb70a459b395bfec6d5cfcef98c..f12fffb373199e07014b1b9314047b919c96b7c9 100644 |
--- a/fpdfsdk/fxedit/fxet_pageobjs.cpp |
+++ b/fpdfsdk/fxedit/fxet_pageobjs.cpp |
@@ -17,6 +17,8 @@ |
#include "fpdfsdk/fxedit/include/fx_edit.h" |
#include "fpdfsdk/fxedit/include/fxet_edit.h" |
+namespace { |
+ |
CFX_FloatRect GetUnderLineRect(const CPVT_Word& word) { |
return CFX_FloatRect(word.ptWord.x, word.ptWord.y + word.fDescent * 0.5f, |
word.ptWord.x + word.fWidth, |
@@ -31,15 +33,15 @@ CFX_FloatRect GetCrossoutRect(const CPVT_Word& word) { |
word.ptWord.y + (word.fAscent + word.fDescent) * 0.5f); |
} |
-static void DrawTextString(CFX_RenderDevice* pDevice, |
- const CFX_FloatPoint& pt, |
- CPDF_Font* pFont, |
- FX_FLOAT fFontSize, |
- CFX_Matrix* pUser2Device, |
- const CFX_ByteString& str, |
- FX_ARGB crTextFill, |
- FX_ARGB crTextStroke, |
- int32_t nHorzScale) { |
+void DrawTextString(CFX_RenderDevice* pDevice, |
+ const CFX_FloatPoint& pt, |
+ CPDF_Font* pFont, |
+ FX_FLOAT fFontSize, |
+ CFX_Matrix* pUser2Device, |
+ const CFX_ByteString& str, |
+ FX_ARGB crTextFill, |
+ FX_ARGB crTextStroke, |
+ int32_t nHorzScale) { |
FX_FLOAT x = pt.x, y = pt.y; |
pUser2Device->Transform(x, y); |
@@ -65,7 +67,7 @@ static void DrawTextString(CFX_RenderDevice* pDevice, |
&ro); |
} else { |
CPDF_TextRenderer::DrawTextString(pDevice, x, y, pFont, fFontSize, &mt, |
- str, crTextFill, 0, NULL, &ro); |
+ str, crTextFill, 0, nullptr, &ro); |
} |
} else { |
CPDF_RenderOptions ro; |
@@ -86,12 +88,70 @@ static void DrawTextString(CFX_RenderDevice* pDevice, |
} else { |
CPDF_TextRenderer::DrawTextString(pDevice, x, y, pFont, fFontSize, |
pUser2Device, str, crTextFill, 0, |
- NULL, &ro); |
+ nullptr, &ro); |
} |
} |
} |
} |
+void AddRectToPageObjects(CPDF_PageObjectHolder* pObjectHolder, |
Lei Zhang
2016/05/26 18:00:51
Just moved code over, no changes.
|
+ FX_COLORREF crFill, |
+ const CFX_FloatRect& rcFill) { |
+ std::unique_ptr<CPDF_PathObject> pPathObj(new CPDF_PathObject); |
+ CFX_PathData* pPathData = pPathObj->m_Path.GetModify(); |
+ pPathData->AppendRect(rcFill.left, rcFill.bottom, rcFill.right, rcFill.top); |
+ |
+ FX_FLOAT rgb[3]; |
+ rgb[0] = FXARGB_R(crFill) / 255.0f; |
+ rgb[1] = FXARGB_G(crFill) / 255.0f; |
+ rgb[2] = FXARGB_B(crFill) / 255.0f; |
+ pPathObj->m_ColorState.SetFillColor( |
+ CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3); |
+ |
+ pPathObj->m_FillType = FXFILL_ALTERNATE; |
+ pPathObj->m_bStroke = FALSE; |
+ pObjectHolder->GetPageObjectList()->push_back(std::move(pPathObj)); |
+} |
+ |
+CPDF_TextObject* AddTextObjToPageObjects(CPDF_PageObjectHolder* pObjectHolder, |
+ FX_COLORREF crText, |
+ CPDF_Font* pFont, |
+ FX_FLOAT fFontSize, |
+ FX_FLOAT fCharSpace, |
+ int32_t nHorzScale, |
+ const CFX_FloatPoint& point, |
+ const CFX_ByteString& text) { |
+ std::unique_ptr<CPDF_TextObject> pTxtObj(new CPDF_TextObject); |
+ CPDF_TextStateData* pTextStateData = pTxtObj->m_TextState.GetModify(); |
+ pTextStateData->m_pFont = pFont; |
+ pTextStateData->m_FontSize = fFontSize; |
+ pTextStateData->m_CharSpace = fCharSpace; |
+ pTextStateData->m_WordSpace = 0; |
+ pTextStateData->m_TextMode = TextRenderingMode::MODE_FILL; |
+ pTextStateData->m_Matrix[0] = nHorzScale / 100.0f; |
+ pTextStateData->m_Matrix[1] = 0; |
+ pTextStateData->m_Matrix[2] = 0; |
+ pTextStateData->m_Matrix[3] = 1; |
+ |
+ FX_FLOAT rgb[3]; |
+ rgb[0] = FXARGB_R(crText) / 255.0f; |
+ rgb[1] = FXARGB_G(crText) / 255.0f; |
+ rgb[2] = FXARGB_B(crText) / 255.0f; |
+ pTxtObj->m_ColorState.SetFillColor( |
+ CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3); |
+ pTxtObj->m_ColorState.SetStrokeColor( |
+ CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3); |
+ |
+ pTxtObj->SetPosition(point.x, point.y); |
+ pTxtObj->SetText(text); |
+ |
+ CPDF_TextObject* pRet = pTxtObj.get(); |
+ pObjectHolder->GetPageObjectList()->push_back(std::move(pTxtObj)); |
+ return pRet; |
+} |
+ |
+} // namespace |
+ |
void IFX_Edit::DrawUnderline(CFX_RenderDevice* pDevice, |
CFX_Matrix* pUser2Device, |
IFX_Edit* pEdit, |
@@ -388,63 +448,6 @@ void IFX_Edit::DrawRichEdit(CFX_RenderDevice* pDevice, |
pDevice->RestoreState(false); |
} |
-static void AddRectToPageObjects(CPDF_PageObjectHolder* pObjectHolder, |
- FX_COLORREF crFill, |
- const CFX_FloatRect& rcFill) { |
- std::unique_ptr<CPDF_PathObject> pPathObj(new CPDF_PathObject); |
- CFX_PathData* pPathData = pPathObj->m_Path.GetModify(); |
- pPathData->AppendRect(rcFill.left, rcFill.bottom, rcFill.right, rcFill.top); |
- |
- FX_FLOAT rgb[3]; |
- rgb[0] = FXARGB_R(crFill) / 255.0f; |
- rgb[1] = FXARGB_G(crFill) / 255.0f; |
- rgb[2] = FXARGB_B(crFill) / 255.0f; |
- pPathObj->m_ColorState.SetFillColor( |
- CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3); |
- |
- pPathObj->m_FillType = FXFILL_ALTERNATE; |
- pPathObj->m_bStroke = FALSE; |
- pObjectHolder->GetPageObjectList()->push_back(std::move(pPathObj)); |
-} |
- |
-static CPDF_TextObject* AddTextObjToPageObjects( |
- CPDF_PageObjectHolder* pObjectHolder, |
- FX_COLORREF crText, |
- CPDF_Font* pFont, |
- FX_FLOAT fFontSize, |
- FX_FLOAT fCharSpace, |
- int32_t nHorzScale, |
- const CFX_FloatPoint& point, |
- const CFX_ByteString& text) { |
- std::unique_ptr<CPDF_TextObject> pTxtObj(new CPDF_TextObject); |
- CPDF_TextStateData* pTextStateData = pTxtObj->m_TextState.GetModify(); |
- pTextStateData->m_pFont = pFont; |
- pTextStateData->m_FontSize = fFontSize; |
- pTextStateData->m_CharSpace = fCharSpace; |
- pTextStateData->m_WordSpace = 0; |
- pTextStateData->m_TextMode = TextRenderingMode::MODE_FILL; |
- pTextStateData->m_Matrix[0] = nHorzScale / 100.0f; |
- pTextStateData->m_Matrix[1] = 0; |
- pTextStateData->m_Matrix[2] = 0; |
- pTextStateData->m_Matrix[3] = 1; |
- |
- FX_FLOAT rgb[3]; |
- rgb[0] = FXARGB_R(crText) / 255.0f; |
- rgb[1] = FXARGB_G(crText) / 255.0f; |
- rgb[2] = FXARGB_B(crText) / 255.0f; |
- pTxtObj->m_ColorState.SetFillColor( |
- CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3); |
- pTxtObj->m_ColorState.SetStrokeColor( |
- CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3); |
- |
- pTxtObj->SetPosition(point.x, point.y); |
- pTxtObj->SetText(text); |
- |
- CPDF_TextObject* pRet = pTxtObj.get(); |
- pObjectHolder->GetPageObjectList()->push_back(std::move(pTxtObj)); |
- return pRet; |
-} |
- |
void IFX_Edit::GeneratePageObjects( |
CPDF_PageObjectHolder* pObjectHolder, |
IFX_Edit* pEdit, |