717a948f1a401f642a207624eab168bf4c699e51
[platform/core/uifw/dali-adaptor.git] / dali / internal / canvas-renderer / tizen / gradient-impl-tizen.h
1 #ifndef DALI_INTERNAL_TIZEN_GRADIENT_IMPL_TIZEN_H
2 #define DALI_INTERNAL_TIZEN_GRADIENT_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 #ifdef THORVG_SUPPORT
23 #include <thorvg.h>
24 #endif
25 #include <dali/public-api/object/base-object.h>
26
27 // INTERNAL INCLUDES
28 #include <dali/devel-api/adaptor-framework/canvas-renderer-gradient.h>
29 #include <dali/devel-api/adaptor-framework/canvas-renderer.h>
30 #include <dali/internal/canvas-renderer/common/gradient-impl.h>
31 #include <dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.h>
32
33 namespace Dali
34 {
35 namespace Internal
36 {
37 namespace Adaptor
38 {
39 /**
40  * Dali internal Gradient.
41  */
42 class GradientTizen : public Dali::Internal::Adaptor::Gradient
43 {
44 public:
45   /**
46    * @brief Creates a Gradient object.
47    * @return A pointer to a newly allocated Gradient
48    */
49   static GradientTizen* New();
50
51   /**
52    * @copydoc Dali::CanvasRenderer::Gradient::SetColorStops()
53    */
54   bool SetColorStops(Dali::CanvasRenderer::Gradient::ColorStops& colorStops) override;
55
56   /**
57    * @copydoc Dali::CanvasRenderer::Gradient::GetColorStops()
58    */
59   Dali::CanvasRenderer::Gradient::ColorStops GetColorStops() const override;
60
61   /**
62    * @copydoc Dali::CanvasRenderer::Gradient::SetSpread()
63    */
64   bool SetSpread(Dali::CanvasRenderer::Gradient::Spread spread) override;
65
66   /**
67    * @copydoc Dali::CanvasRenderer::Gradient::GetSpread()
68    */
69   Dali::CanvasRenderer::Gradient::Spread GetSpread() const override;
70
71   /**
72    * @copydoc Internal::Adaptor::Gradient::GetObject()
73    */
74   void SetObject(const void* object) override;
75
76   /**
77    * @copydoc Internal::Adaptor::Gradient::SetObject()
78    */
79   void* GetObject() const override;
80
81   /**
82    * @copydoc Internal::Adaptor::Gradient::SetChanged()
83    */
84   void SetChanged(bool changed) override;
85
86   /**
87    * @copydoc Internal::Adaptor::Gradient::GetChanged()
88    */
89   bool GetChanged() const override;
90
91   GradientTizen(const Gradient&) = delete;
92   GradientTizen& operator=(Gradient&) = delete;
93   GradientTizen(Gradient&&)           = delete;
94   GradientTizen& operator=(Gradient&&) = delete;
95
96 protected:
97   /**
98    * @brief Constructor
99    */
100   GradientTizen();
101
102   /**
103    * @brief Destructor.
104    */
105   virtual ~GradientTizen() override;
106
107 private:
108   bool mChanged;
109 #ifdef THORVG_SUPPORT
110   tvg::Fill* mTvgFill;
111 #endif
112 };
113
114 } // namespace Adaptor
115
116 } // namespace Internal
117
118 } // namespace Dali
119
120 #endif // DALI_INTERNAL_TIZEN_GRADIENT_IMPL_TIZEN_H