Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2089)

Unified Diff: core/fpdfapi/fpdf_page/include/cpdf_path.h

Issue 2305103002: Make CPDF_Path have a CFX_Path rather than inheriting (Closed)
Patch Set: rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/fpdfapi/fpdf_page/fpdf_page_parser.cpp ('k') | core/fpdfapi/fpdf_render/fpdf_render_text.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fpdfapi/fpdf_page/include/cpdf_path.h
diff --git a/core/fpdfapi/fpdf_page/include/cpdf_path.h b/core/fpdfapi/fpdf_page/include/cpdf_path.h
index e0ffa8c1dd2015c0f6a4c96b3488c577d8c6ff16..a9b0a7fac06cb2c0cfbf75285beebbf399bb0a60 100644
--- a/core/fpdfapi/fpdf_page/include/cpdf_path.h
+++ b/core/fpdfapi/fpdf_page/include/cpdf_path.h
@@ -7,38 +7,44 @@
#ifndef CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_PATH_H_
#define CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_PATH_H_
+#include "core/fxcrt/include/cfx_count_ref.h"
#include "core/fxcrt/include/fx_system.h"
#include "core/fxge/include/cfx_fxgedevice.h"
#include "core/fxge/include/cfx_pathdata.h"
#include "core/fxge/include/cfx_renderdevice.h"
-class CPDF_Path : public CFX_CountRef<CFX_PathData> {
+class CPDF_Path {
public:
- int GetPointCount() const { return GetObject()->GetPointCount(); }
- int GetFlag(int index) const { return GetObject()->GetFlag(index); }
- FX_FLOAT GetPointX(int index) const { return GetObject()->GetPointX(index); }
- FX_FLOAT GetPointY(int index) const { return GetObject()->GetPointY(index); }
- FX_PATHPOINT* GetPoints() const { return GetObject()->GetPoints(); }
- CFX_FloatRect GetBoundingBox() const { return GetObject()->GetBoundingBox(); }
- CFX_FloatRect GetBoundingBox(FX_FLOAT line_width,
- FX_FLOAT miter_limit) const {
- return GetObject()->GetBoundingBox(line_width, miter_limit);
- }
-
- FX_BOOL IsRect() const { return GetObject()->IsRect(); }
- void Transform(const CFX_Matrix* pMatrix) {
- GetPrivateCopy()->Transform(pMatrix);
- }
- void Append(const CPDF_Path& other, const CFX_Matrix* pMatrix) {
- GetPrivateCopy()->Append(other.GetObject(), pMatrix);
- }
-
- void AppendRect(FX_FLOAT left,
- FX_FLOAT bottom,
- FX_FLOAT right,
- FX_FLOAT top) {
- GetPrivateCopy()->AppendRect(left, bottom, right, top);
- }
+ CPDF_Path();
+ CPDF_Path(const CPDF_Path& that);
+ ~CPDF_Path();
+
+ void Emplace() { m_Ref.Emplace(); }
+ operator bool() const { return !!m_Ref; }
+
+ int GetPointCount() const;
+ void SetPointCount(int count);
+ const FX_PATHPOINT* GetPoints() const;
+ FX_PATHPOINT* GetMutablePoints();
+
+ int GetFlag(int index) const;
+ FX_FLOAT GetPointX(int index) const;
+ FX_FLOAT GetPointY(int index) const;
+ CFX_FloatRect GetBoundingBox() const;
+ CFX_FloatRect GetBoundingBox(FX_FLOAT line_width, FX_FLOAT miter_limit) const;
+
+ FX_BOOL IsRect() const;
+ void Transform(const CFX_Matrix* pMatrix);
+
+ void Append(const CPDF_Path& other, const CFX_Matrix* pMatrix);
+ void Append(const CFX_PathData* pData, const CFX_Matrix* pMatrix);
+ void AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top);
+
+ // TODO(tsepez): Remove when all access thru this class.
+ const CFX_PathData* GetObject() const { return m_Ref.GetObject(); }
+
+ private:
+ CFX_CountRef<CFX_PathData> m_Ref;
};
#endif // CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_PATH_H_
« no previous file with comments | « core/fpdfapi/fpdf_page/fpdf_page_parser.cpp ('k') | core/fpdfapi/fpdf_render/fpdf_render_text.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698