Merge "Add APIs for intercepting http request in web engine." into devel/master
[platform/core/uifw/dali-adaptor.git] / dali / internal / canvas-renderer / tizen / shape-impl-tizen.h
1 #ifndef DALI_INTERNAL_TIZEN_SHAPE_IMPL_TIZEN_H
2 #define DALI_INTERNAL_TIZEN_SHAPE_IMPL_TIZEN_H
3
4 /*
5  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 // EXTERNAL INCLUDES
22 #include <dali/public-api/object/base-object.h>
23 #include <dali/public-api/signals/connection-tracker.h>
24 #include <thorvg.h>
25
26 // INTERNAL INCLUDES
27 #include <dali/devel-api/adaptor-framework/canvas-renderer-shape.h>
28 #include <dali/internal/canvas-renderer/common/shape-impl.h>
29
30 namespace Dali
31 {
32 namespace Internal
33 {
34 namespace Adaptor
35 {
36 /**
37  * Dali internal Shape.
38  */
39 class ShapeTizen : public Dali::Internal::Adaptor::Shape
40 {
41 public:
42   /**
43    * @brief Creates a Shape object.
44    * @return A pointer to a newly allocated shape
45    */
46   static ShapeTizen* New();
47
48   /**
49    * @copydoc Dali::CanvasRenderer::Shape::AddRect
50    */
51   bool AddRect(Rect<float> rect, Vector2 roundedCorner) override;
52
53   /**
54    * @copydoc Dali::CanvasRenderer::Shape::AddCircle
55    */
56   bool AddCircle(Vector2 center, Vector2 radius) override;
57
58   /**
59    * @copydoc Dali::CanvasRenderer::Shape::AddArc
60    */
61   bool AddArc(Vector2 center, float radius, float startAngle, float sweep, bool pie) override;
62
63   /**
64    * @copydoc Dali::CanvasRenderer::Shape::AddMoveTo
65    */
66   bool AddMoveTo(Vector2 point) override;
67
68   /**
69    * @copydoc Dali::CanvasRenderer::Shape::AddLineTo
70    */
71   bool AddLineTo(Vector2 line) override;
72
73   /**
74    * @copydoc Dali::CanvasRenderer::Shape::AddCubicTo
75    */
76   bool AddCubicTo(Vector2 controlPoint1, Vector2 controlPoint2, Vector2 endPoint) override;
77
78   /**
79    * @copydoc Dali::CanvasRenderer::Shape::Close
80    */
81   bool Close() override;
82
83   /**
84    * @copydoc Dali::CanvasRenderer::Shape::SetFillColor
85    */
86   bool SetFillColor(Vector4 color) override;
87
88   /**
89    * @copydoc Dali::CanvasRenderer::Shape::GetFillColor
90    */
91   Vector4 GetFillColor() const override;
92
93   /**
94    * @copydoc Dali::CanvasRenderer::Shape::SetFillRule
95    */
96   bool SetFillRule(Dali::CanvasRenderer::Shape::FillRule rule) override;
97
98   /**
99    * @copydoc Dali::CanvasRenderer::Shape::GetFillRule
100    */
101   Dali::CanvasRenderer::Shape::FillRule GetFillRule() const override;
102
103   /**
104    * @copydoc Dali::CanvasRenderer::Shape::SetStrokeWidth
105    */
106   bool SetStrokeWidth(float width) override;
107
108   /**
109    * @copydoc Dali::CanvasRenderer::Shape::GetStrokeWidth
110    */
111   float GetStrokeWidth() const override;
112
113   /**
114    * @copydoc Dali::CanvasRenderer::Shape::SetStrokeColor
115    */
116   bool SetStrokeColor(Vector4 color) override;
117
118   /**
119    * @copydoc Dali::CanvasRenderer::Shape::GetStrokeColor
120    */
121   Vector4 GetStrokeColor() const override;
122
123   /**
124    * @copydoc Dali::CanvasRenderer::Shape::SetStrokeDash
125    */
126   bool SetStrokeDash(const Dali::Vector<float> dashPattern) override;
127
128   /**
129    * @copydoc Dali::CanvasRenderer::Shape::GetStrokeDash
130    */
131   Dali::Vector<float> GetStrokeDash() const override;
132
133   /**
134    * @copydoc Dali::CanvasRenderer::Shape::SetStrokeCap
135    */
136   bool SetStrokeCap(Dali::CanvasRenderer::Shape::StrokeCap cap) override;
137
138   /**
139    * @copydoc Dali::CanvasRenderer::Shape::GetStrokeCap
140    */
141   Dali::CanvasRenderer::Shape::StrokeCap GetStrokeCap() const override;
142
143   /**
144    * @copydoc Dali::CanvasRenderer::Shape::SetStrokeJoin
145    */
146   bool SetStrokeJoin(Dali::CanvasRenderer::Shape::StrokeJoin join) override;
147
148   /**
149    * @copydoc Dali::CanvasRenderer::Shape::GetStrokeJoin
150    */
151   Dali::CanvasRenderer::Shape::StrokeJoin GetStrokeJoin() const override;
152
153 private:
154   ShapeTizen(const ShapeTizen&) = delete;
155   ShapeTizen& operator=(ShapeTizen&) = delete;
156   ShapeTizen(ShapeTizen&&)           = delete;
157   ShapeTizen& operator=(ShapeTizen&&) = delete;
158
159   /**
160    * @brief Constructor
161    */
162   ShapeTizen();
163
164   /**
165    * @brief Destructor.
166    */
167   virtual ~ShapeTizen() override;
168
169 private:
170   void Initialize();
171
172 private:
173   tvg::Shape* mTvgShape;
174 };
175
176 } // namespace Adaptor
177
178 } // namespace Internal
179
180 } // namespace Dali
181
182 #endif // DALI_INTERNAL_TIZEN_SHAPE_IMPL_TIZEN_H