summaryrefslogtreecommitdiff
path: root/xfa/fxfa/parser/cxfa_rectangle.h
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-01-17 18:40:41 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-01-17 18:40:41 +0000
commitaca769671c706607ff29882c46bac77baa449acb (patch)
tree8c312c5073e2b5c7759d6c3467ee985b32bb58c0 /xfa/fxfa/parser/cxfa_rectangle.h
parentb73a96938d0fc932a9d498359c98f4cf6ef34160 (diff)
downloadpdfium-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.h54
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_