diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-01-17 18:40:41 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-01-17 18:40:41 +0000 |
commit | aca769671c706607ff29882c46bac77baa449acb (patch) | |
tree | 8c312c5073e2b5c7759d6c3467ee985b32bb58c0 /xfa/fxfa/parser/cxfa_rectangle.h | |
parent | b73a96938d0fc932a9d498359c98f4cf6ef34160 (diff) | |
download | pdfium-aca769671c706607ff29882c46bac77baa449acb.tar.xz |
Move rectangle drawing code to CXFA_Rectangle
This CL moves code related to drawing rectangles to the CXFA_Rectangle
class. This also turns CXFA_Border into a CXFA_Rectangle to share the
drawing code.
Change-Id: I91e2e73b33ecbcda477cf953cf7609310a01fcd4
Reviewed-on: https://pdfium-review.googlesource.com/23110
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/parser/cxfa_rectangle.h')
-rw-r--r-- | xfa/fxfa/parser/cxfa_rectangle.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/xfa/fxfa/parser/cxfa_rectangle.h b/xfa/fxfa/parser/cxfa_rectangle.h index 85e0a8ad65..9e335060f5 100644 --- a/xfa/fxfa/parser/cxfa_rectangle.h +++ b/xfa/fxfa/parser/cxfa_rectangle.h @@ -7,12 +7,66 @@ #ifndef XFA_FXFA_PARSER_CXFA_RECTANGLE_H_ #define XFA_FXFA_PARSER_CXFA_RECTANGLE_H_ +#include <memory> +#include <vector> + #include "xfa/fxfa/parser/cxfa_box.h" +#include "xfa/fxgraphics/cxfa_gepath.h" class CXFA_Rectangle : public CXFA_Box { public: CXFA_Rectangle(CXFA_Document* doc, XFA_PacketType packet); ~CXFA_Rectangle() override; + + void Draw(const std::vector<CXFA_Stroke*>& strokes, + CXFA_Graphics* pGS, + CFX_RectF rtWidget, + const CFX_Matrix& matrix); + + protected: + CXFA_Rectangle(CXFA_Document* pDoc, + XFA_PacketType ePacket, + uint32_t validPackets, + XFA_ObjectType oType, + XFA_Element eType, + const PropertyData* properties, + const AttributeData* attributes, + const WideStringView& elementName, + std::unique_ptr<CJX_Object> js_node); + + private: + void Stroke(const std::vector<CXFA_Stroke*>& strokes, + CXFA_Graphics* pGS, + CFX_RectF rtWidget, + const CFX_Matrix& matrix); + void StrokeEmbossed(CXFA_Graphics* pGS, + CFX_RectF rt, + float fThickness, + const CFX_Matrix& matrix); + void StrokeLowered(CXFA_Graphics* pGS, + CFX_RectF rt, + float fThickness, + const CFX_Matrix& matrix); + void StrokeRaised(CXFA_Graphics* pGS, + CFX_RectF rt, + float fThickness, + const CFX_Matrix& matrix); + void StrokeEtched(CXFA_Graphics* pGS, + CFX_RectF rt, + float fThickness, + const CFX_Matrix& matrix); + void StrokeRect(CXFA_Graphics* pGraphic, + const CFX_RectF& rt, + float fLineWidth, + const CFX_Matrix& matrix, + FX_ARGB argbTopLeft, + FX_ARGB argbBottomRight); + void GetPath(const std::vector<CXFA_Stroke*>& strokes, + CFX_RectF rtWidget, + CXFA_GEPath& path, + int32_t nIndex, + bool bStart, + bool bCorner); }; #endif // XFA_FXFA_PARSER_CXFA_RECTANGLE_H_ |