nim_duilib/duilib/Render/Path.h
jiajia_deng 4933d1f2bc Remove dependency on shared
Signed-off-by: jiajia_deng <2894220@gmail.com>
2019-09-20 16:27:58 +08:00

52 lines
1.7 KiB
C++

#ifndef UI_CORE_RENDER_PATH_H_
#define UI_CORE_RENDER_PATH_H_
#pragma once
#include <GdiPlus.h>
namespace ui
{
class UILIB_API Path_Gdiplus : public IPath
{
public:
Path_Gdiplus();
Path_Gdiplus(const Path_Gdiplus& r);
Path_Gdiplus& operator=(const Path_Gdiplus& r) = delete;
virtual IPath* Clone() override;
virtual void Reset() override;
virtual void SetFillMode(FillMode mode) override;
virtual FillMode GetFillMode() override;
virtual void StartFigure() override;
virtual void CloseFigure() override;
virtual void AddLine(int x1, int y1, int x2, int y2) override;
virtual void AddLines(const CPoint* points, int count) override;
virtual void AddBezier(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) override;
virtual void AddCurve(const CPoint* points, int count) override;
virtual void AddRect(int left, int top, int right, int bottom) override;
virtual void AddRect(const UiRect& rect) override;
virtual void AddEllipse(int left, int top, int right, int bottom) override;
virtual void AddEllipse(const UiRect& rect) override;
virtual void AddArc(int x, int y, int width, int height, float startAngle, float sweepAngle) override;
virtual void AddPie(int x, int y, int width, int height, float startAngle, float sweepAngle) override;
virtual void AddPolygon(const CPoint* points, int count) override;
virtual UiRect GetBound(const IPen* pen) override;
virtual bool IsContainsPoint(int x, int y) override;
virtual bool IsStrokeContainsPoint(int x, int y, const IPen* pen) override;
virtual void Transform(const IMatrix* matrix) override;
Gdiplus::GraphicsPath* GetPath() { return path_.get(); };
protected:
std::unique_ptr<Gdiplus::GraphicsPath> path_;
};
} // namespace ui
#endif // UI_CORE_RENDER_PATH_H_