diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-03-28 19:23:25 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-03-28 19:23:25 +0000 |
commit | 971a674ef17526ad37ce55ba90110830b94889d0 (patch) | |
tree | d99fabf665cc63825b48dd087daadf664bb80ee8 /fpdfsdk/fpdfeditpath.cpp | |
parent | 7d12532362545273e0ceac93fae2154661323fd1 (diff) | |
download | pdfium-971a674ef17526ad37ce55ba90110830b94889d0.tar.xz |
Rename fpdfsdk/fpdf* files to be consistent
This CL makes the fpdfsdk/fpdf* files to be consistently prefixed with
fpdf_ instead of randomly dropping the _.
Change-Id: I23e3c8a0831b56bcd17c788d9fe874b2ab8b24fc
Reviewed-on: https://pdfium-review.googlesource.com/29390
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdfeditpath.cpp')
-rw-r--r-- | fpdfsdk/fpdfeditpath.cpp | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/fpdfsdk/fpdfeditpath.cpp b/fpdfsdk/fpdfeditpath.cpp deleted file mode 100644 index 745c3b763b..0000000000 --- a/fpdfsdk/fpdfeditpath.cpp +++ /dev/null @@ -1,292 +0,0 @@ -// Copyright 2017 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include <vector> - -#include "public/fpdf_edit.h" - -#include "core/fpdfapi/page/cpdf_path.h" -#include "core/fpdfapi/page/cpdf_pathobject.h" -#include "core/fxcrt/fx_system.h" -#include "fpdfsdk/cpdfsdk_helpers.h" -#include "third_party/base/ptr_util.h" - -// These checks are here because core/ and public/ cannot depend on each other. -static_assert(CFX_GraphStateData::LineCapButt == FPDF_LINECAP_BUTT, - "CFX_GraphStateData::LineCapButt value mismatch"); -static_assert(CFX_GraphStateData::LineCapRound == FPDF_LINECAP_ROUND, - "CFX_GraphStateData::LineCapRound value mismatch"); -static_assert(CFX_GraphStateData::LineCapSquare == - FPDF_LINECAP_PROJECTING_SQUARE, - "CFX_GraphStateData::LineCapSquare value mismatch"); - -static_assert(CFX_GraphStateData::LineJoinMiter == FPDF_LINEJOIN_MITER, - "CFX_GraphStateData::LineJoinMiter value mismatch"); -static_assert(CFX_GraphStateData::LineJoinRound == FPDF_LINEJOIN_ROUND, - "CFX_GraphStateData::LineJoinRound value mismatch"); -static_assert(CFX_GraphStateData::LineJoinBevel == FPDF_LINEJOIN_BEVEL, - "CFX_GraphStateData::LineJoinBevel value mismatch"); - -static_assert(static_cast<int>(FXPT_TYPE::LineTo) == FPDF_SEGMENT_LINETO, - "FXPT_TYPE::LineTo value mismatch"); -static_assert(static_cast<int>(FXPT_TYPE::BezierTo) == FPDF_SEGMENT_BEZIERTO, - "FXPT_TYPE::BezierTo value mismatch"); -static_assert(static_cast<int>(FXPT_TYPE::MoveTo) == FPDF_SEGMENT_MOVETO, - "FXPT_TYPE::MoveTo value mismatch"); - -namespace { - -CPDF_PathObject* CPDFPathObjectFromFPDFPageObject(FPDF_PAGEOBJECT page_object) { - auto* obj = CPDFPageObjectFromFPDFPageObject(page_object); - return obj ? obj->AsPath() : nullptr; -} - -const FX_PATHPOINT* FXPathPointFromFPDFPathSegment(FPDF_PATHSEGMENT segment) { - return static_cast<const FX_PATHPOINT*>(segment); -} - -unsigned int GetAlphaAsUnsignedInt(float alpha) { - return static_cast<unsigned int>(alpha * 255.f + 0.5f); -} - -} // namespace - -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPageObj_CreateNewPath(float x, - float y) { - auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>(); - pPathObj->m_Path.AppendPoint(CFX_PointF(x, y), FXPT_TYPE::MoveTo, false); - pPathObj->DefaultStates(); - return pPathObj.release(); // Caller takes ownership. -} - -FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPageObj_CreateNewRect(float x, - float y, - float w, - float h) { - auto pPathObj = pdfium::MakeUnique<CPDF_PathObject>(); - pPathObj->m_Path.AppendRect(x, y, x + w, y + h); - pPathObj->DefaultStates(); - return pPathObj.release(); // Caller takes ownership. -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV -FPDFPath_SetStrokeColor(FPDF_PAGEOBJECT path, - unsigned int R, - unsigned int G, - unsigned int B, - unsigned int A) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj || R > 255 || G > 255 || B > 255 || A > 255) - return false; - - float rgb[3] = {R / 255.f, G / 255.f, B / 255.f}; - pPathObj->m_GeneralState.SetStrokeAlpha(A / 255.f); - pPathObj->m_ColorState.SetStrokeColor( - CPDF_ColorSpace::GetStockCS(PDFCS_DEVICERGB), rgb, 3); - pPathObj->SetDirty(true); - return true; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV -FPDFPath_GetStrokeColor(FPDF_PAGEOBJECT path, - unsigned int* R, - unsigned int* G, - unsigned int* B, - unsigned int* A) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj || !R || !G || !B || !A) - return false; - - FX_COLORREF strokeColor = pPathObj->m_ColorState.GetStrokeColorRef(); - *R = FXSYS_GetRValue(strokeColor); - *G = FXSYS_GetGValue(strokeColor); - *B = FXSYS_GetBValue(strokeColor); - *A = GetAlphaAsUnsignedInt(pPathObj->m_GeneralState.GetStrokeAlpha()); - return true; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV -FPDFPath_SetStrokeWidth(FPDF_PAGEOBJECT path, float width) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj || width < 0.0f) - return false; - - pPathObj->m_GraphState.SetLineWidth(width); - pPathObj->SetDirty(true); - return true; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_SetFillColor(FPDF_PAGEOBJECT path, - unsigned int R, - unsigned int G, - unsigned int B, - unsigned int A) { - return FPDFPageObj_SetFillColor(path, R, G, B, A); -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_GetFillColor(FPDF_PAGEOBJECT path, - unsigned int* R, - unsigned int* G, - unsigned int* B, - unsigned int* A) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj || !R || !G || !B || !A) - return false; - - FX_COLORREF fillColor = pPathObj->m_ColorState.GetFillColorRef(); - *R = FXSYS_GetRValue(fillColor); - *G = FXSYS_GetGValue(fillColor); - *B = FXSYS_GetBValue(fillColor); - *A = GetAlphaAsUnsignedInt(pPathObj->m_GeneralState.GetFillAlpha()); - return true; -} - -FPDF_EXPORT int FPDF_CALLCONV FPDFPath_CountSegments(FPDF_PAGEOBJECT path) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj) - return -1; - return pdfium::CollectionSize<int>(pPathObj->m_Path.GetPoints()); -} - -FPDF_EXPORT FPDF_PATHSEGMENT FPDF_CALLCONV -FPDFPath_GetPathSegment(FPDF_PAGEOBJECT path, int index) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj) - return nullptr; - - const std::vector<FX_PATHPOINT>& points = pPathObj->m_Path.GetPoints(); - return pdfium::IndexInBounds(points, index) ? &points[index] : nullptr; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_MoveTo(FPDF_PAGEOBJECT path, - float x, - float y) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj) - return false; - - pPathObj->m_Path.AppendPoint(CFX_PointF(x, y), FXPT_TYPE::MoveTo, false); - pPathObj->SetDirty(true); - return true; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_LineTo(FPDF_PAGEOBJECT path, - float x, - float y) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj) - return false; - - pPathObj->m_Path.AppendPoint(CFX_PointF(x, y), FXPT_TYPE::LineTo, false); - pPathObj->SetDirty(true); - return true; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_BezierTo(FPDF_PAGEOBJECT path, - float x1, - float y1, - float x2, - float y2, - float x3, - float y3) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj) - return false; - - pPathObj->m_Path.AppendPoint(CFX_PointF(x1, y1), FXPT_TYPE::BezierTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(x2, y2), FXPT_TYPE::BezierTo, false); - pPathObj->m_Path.AppendPoint(CFX_PointF(x3, y3), FXPT_TYPE::BezierTo, false); - pPathObj->SetDirty(true); - return true; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_Close(FPDF_PAGEOBJECT path) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj) - return false; - - if (pPathObj->m_Path.GetPoints().empty()) - return false; - - pPathObj->m_Path.ClosePath(); - pPathObj->SetDirty(true); - return true; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_SetDrawMode(FPDF_PAGEOBJECT path, - int fillmode, - FPDF_BOOL stroke) { - auto* pPathObj = CPDFPathObjectFromFPDFPageObject(path); - if (!pPathObj) - return false; - - if (fillmode == FPDF_FILLMODE_ALTERNATE) - pPathObj->m_FillType = FXFILL_ALTERNATE; - else if (fillmode == FPDF_FILLMODE_WINDING) - pPathObj->m_FillType = FXFILL_WINDING; - else - pPathObj->m_FillType = 0; - pPathObj->m_bStroke = stroke != 0; - pPathObj->SetDirty(true); - return true; -} - -FPDF_EXPORT void FPDF_CALLCONV FPDFPath_SetLineJoin(FPDF_PAGEOBJECT path, - int line_join) { - if (!path) - return; - if (line_join < - static_cast<int>(CFX_GraphStateData::LineJoin::LineJoinMiter) || - line_join > - static_cast<int>(CFX_GraphStateData::LineJoin::LineJoinBevel)) { - return; - } - auto* pPathObj = CPDFPageObjectFromFPDFPageObject(path); - CFX_GraphStateData::LineJoin lineJoin = - static_cast<CFX_GraphStateData::LineJoin>(line_join); - pPathObj->m_GraphState.SetLineJoin(lineJoin); - pPathObj->SetDirty(true); -} - -FPDF_EXPORT void FPDF_CALLCONV FPDFPath_SetLineCap(FPDF_PAGEOBJECT path, - int line_cap) { - if (!path) - return; - if (line_cap < static_cast<int>(CFX_GraphStateData::LineCap::LineCapButt) || - line_cap > static_cast<int>(CFX_GraphStateData::LineCap::LineCapSquare)) { - return; - } - auto* pPathObj = CPDFPageObjectFromFPDFPageObject(path); - CFX_GraphStateData::LineCap lineCap = - static_cast<CFX_GraphStateData::LineCap>(line_cap); - pPathObj->m_GraphState.SetLineCap(lineCap); - pPathObj->SetDirty(true); -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV -FPDFPathSegment_GetPoint(FPDF_PATHSEGMENT segment, float* x, float* y) { - auto* pPathPoint = FXPathPointFromFPDFPathSegment(segment); - if (!pPathPoint || !x || !y) - return false; - - *x = pPathPoint->m_Point.x; - *y = pPathPoint->m_Point.y; - - return true; -} - -FPDF_EXPORT int FPDF_CALLCONV -FPDFPathSegment_GetType(FPDF_PATHSEGMENT segment) { - auto* pPathPoint = FXPathPointFromFPDFPathSegment(segment); - - return pPathPoint ? static_cast<int>(pPathPoint->m_Type) - : FPDF_SEGMENT_UNKNOWN; -} - -FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV -FPDFPathSegment_GetClose(FPDF_PATHSEGMENT segment) { - auto* pPathPoint = FXPathPointFromFPDFPathSegment(segment); - - return pPathPoint ? pPathPoint->m_CloseFigure : false; -} |