diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-01-17 19:29:46 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-01-17 19:29:46 +0000 |
commit | c37fa7d9c5c60ac407b46bfc2e7745afa0b2df85 (patch) | |
tree | acca98967c4e532732ef9b15a399b2dc710e01e5 /xfa/fxfa/parser | |
parent | dcc2f3cf96fd20782c32ae03629427fb93b219b2 (diff) | |
download | pdfium-c37fa7d9c5c60ac407b46bfc2e7745afa0b2df85.tar.xz |
Move code related to stroke line dash to CXFA_Stroke
This CL moves XFA_StrokeTypeSetLineDash into the CXFA_Stroke class and
cleans up the unused CXFA_Graphics code for setting line dash values.
Change-Id: If6db6c315571dbcea630bc32e0d05dae6c0f10be
Reviewed-on: https://pdfium-review.googlesource.com/23114
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser')
-rw-r--r-- | xfa/fxfa/parser/cxfa_stroke.cpp | 45 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_stroke.h | 4 |
2 files changed, 49 insertions, 0 deletions
diff --git a/xfa/fxfa/parser/cxfa_stroke.cpp b/xfa/fxfa/parser/cxfa_stroke.cpp index 45634b26e3..c581a96303 100644 --- a/xfa/fxfa/parser/cxfa_stroke.cpp +++ b/xfa/fxfa/parser/cxfa_stroke.cpp @@ -15,6 +15,51 @@ #include "xfa/fxfa/parser/xfa_utils.h" #include "xfa/fxgraphics/cxfa_graphics.h" +void XFA_StrokeTypeSetLineDash(CXFA_Graphics* pGraphics, + XFA_AttributeEnum iStrokeType, + XFA_AttributeEnum iCapType) { + switch (iStrokeType) { + case XFA_AttributeEnum::DashDot: { + float dashArray[] = {4, 1, 2, 1}; + if (iCapType != XFA_AttributeEnum::Butt) { + dashArray[1] = 2; + dashArray[3] = 2; + } + pGraphics->SetLineDash(0, dashArray, 4); + break; + } + case XFA_AttributeEnum::DashDotDot: { + float dashArray[] = {4, 1, 2, 1, 2, 1}; + if (iCapType != XFA_AttributeEnum::Butt) { + dashArray[1] = 2; + dashArray[3] = 2; + dashArray[5] = 2; + } + pGraphics->SetLineDash(0, dashArray, 6); + break; + } + case XFA_AttributeEnum::Dashed: { + float dashArray[] = {5, 1}; + if (iCapType != XFA_AttributeEnum::Butt) + dashArray[1] = 2; + + pGraphics->SetLineDash(0, dashArray, 2); + break; + } + case XFA_AttributeEnum::Dotted: { + float dashArray[] = {2, 1}; + if (iCapType != XFA_AttributeEnum::Butt) + dashArray[1] = 2; + + pGraphics->SetLineDash(0, dashArray, 2); + break; + } + default: + pGraphics->SetSolidLineDash(); + break; + } +} + CXFA_Stroke::CXFA_Stroke(CXFA_Document* pDoc, XFA_PacketType ePacket, uint32_t validPackets, diff --git a/xfa/fxfa/parser/cxfa_stroke.h b/xfa/fxfa/parser/cxfa_stroke.h index d3eeff1ed2..ed41997073 100644 --- a/xfa/fxfa/parser/cxfa_stroke.h +++ b/xfa/fxfa/parser/cxfa_stroke.h @@ -22,6 +22,10 @@ class CXFA_GEPath; class CXFA_Graphics; class CXFA_Node; +void XFA_StrokeTypeSetLineDash(CXFA_Graphics* pGraphics, + XFA_AttributeEnum iStrokeType, + XFA_AttributeEnum iCapType); + class CXFA_Stroke : public CXFA_Node { public: ~CXFA_Stroke() override; |