Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / animations / FUiAnim_VisualElement.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://floralicense.org/license/
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file        FUiAnim_VisualElement.cpp
20  * @brief       This file contains implementation of _VisualElement class
21  *
22  * This file contains implementation _VisualElement class.
23  */
24
25 #include <FBaseSysLog.h>
26
27 #include "FUiAnim_EflNode.h"
28 #include "FUiAnim_VisualElement.h"
29 #include "FUiAnim_VisualElementImpl.h"
30
31 using namespace Tizen::Base;
32 using namespace Tizen::Graphics;
33
34 namespace Tizen { namespace Ui { namespace Animations
35 {
36
37
38 //IMPLEMENT_PROPERTY(_VisualElement);
39
40 _VisualElement::_VisualElement(void)
41         : __pUserData(null)
42 {
43
44 }
45
46 _VisualElement::~_VisualElement(void)
47 {
48 }
49
50 VisualElement*
51 _VisualElement::CloneN(void) const
52 {
53         return new (std::nothrow) _VisualElement(*this);
54 }
55
56 _VisualElement::_VisualElement(const _VisualElement& rhs)
57         : VisualElement(rhs)
58         , __pUserData(null)
59 {
60 }
61
62 _Colorf
63 _VisualElement::GetBackgroundColor(void) const
64 {
65         _EflNode* pNativeNode = dynamic_cast< _EflNode* >(_pVisualElementImpl->GetNativeNode());
66
67         SysTryReturn(NID_UI, pNativeNode, _Colorf(0.0f, 0.0f, 0.0f, 1.0f), E_INVALID_STATE, "[E_INVALID_STATE] No object for background.");   // CHECKME: Default BG?
68
69         return pNativeNode->GetBackgroundColor();
70 }
71
72 result
73 _VisualElement::SetBackgroundColor(const _Colorf& color)
74 {
75         result r = E_SUCCESS;
76         _EflNode* pNativeNode = dynamic_cast< _EflNode* >(_pVisualElementImpl->GetNativeNode());
77
78         SysTryReturnResult(NID_UI, pNativeNode, E_INVALID_STATE, "No object for background.");   // CHECKME: Default BG?
79
80         r = pNativeNode->SetBackgroundColor(color);
81         if (_pVisualElementImpl->GetPresentation()) (_pVisualElementImpl->GetPresentation())->InvalidateHierarchyProps((int)_VisualElementImpl::HIERARCHY_PROPERTY_NATIVENODE, false, false);
82
83         return r;
84 }
85
86 FloatRectangle
87 _VisualElement::GetBoundingBox(void)
88 {
89         return _pVisualElementImpl->GetBoundingBox();
90 }
91
92 result
93 _VisualElement::SetZOrder(const VisualElement* pReference, bool above)
94 {
95         const _VisualElementImpl* pImpl = null;
96         if (pReference)
97         {
98                 pImpl = _VisualElementImpl::GetInstance(*pReference);
99         }
100
101         return _pVisualElementImpl->SetZOrder(pImpl , above);
102 }
103
104 result
105 _VisualElement::SetImageSource(const String& fileName)
106 {
107         return _pVisualElementImpl->SetImageSource(fileName);
108 }
109
110 result
111 _VisualElement::SetContentOpacity(float contentOpacity)
112 {
113         return _pVisualElementImpl->SetContentOpacity(contentOpacity);
114 }
115
116 result
117 _VisualElement::Capture(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::FloatRectangle& boundsToDraw, bool withChilren)
118 {
119         return _pVisualElementImpl->Capture(canvas, boundsToDraw, withChilren);
120 }
121
122 _INativeNode*
123 _VisualElement::GetNativeNode(void) const
124 {
125         return _pVisualElementImpl->GetNativeNode();
126 }
127
128 _VisualElement* _VisualElement::GetPresentation(void)
129 {
130         return dynamic_cast< _VisualElement* >(_pVisualElementImpl->__pPresentation->__pPublicInstance);
131 }
132
133 _VisualElement* _VisualElement::GetModel(void)
134 {
135         return dynamic_cast< _VisualElement* >(_pVisualElementImpl->__pPresentation->__pPublicInstance);
136 }
137
138 void
139 _VisualElement::SetControlUserData(void* pUserData)
140 {
141         ClearLastResult();
142         __pUserData = pUserData;
143 }
144
145 void*
146 _VisualElement::GetControlUserData(void) const
147 {
148         ClearLastResult();
149         return __pUserData;
150 }
151
152
153 bool
154 _VisualElement::OnPrepareDraw(void)
155 {
156         return false;
157 }
158
159 result
160 _VisualElement::SetClipToParent(bool clipToParent)
161 {
162         return _pVisualElementImpl->SetClipToParent(clipToParent);
163 }
164
165 result
166 _VisualElement::SetBackBufferEnabled(bool enable)
167 {
168         return _pVisualElementImpl->SetBackBufferEnabled(enable);
169 }
170
171 result
172 _VisualElement::SetSurfaceOpaque(bool isSurfaceOpaque)
173 {
174         return _pVisualElementImpl->SetSurfaceOpaque(isSurfaceOpaque);
175 }
176
177 result
178 _VisualElement::ScrollByPoint(const FloatPoint& pointOffset, bool scrollSelf)
179 {
180         return _pVisualElementImpl->ScrollByPoint(pointOffset, scrollSelf);
181 }
182
183 IVisualElementAnimationProvider*
184 _VisualElement::GetAnimationProvider(void) const
185 {
186         return _pVisualElementImpl->GetAnimationProvider();
187 }
188
189 IVisualElementContentProvider*
190 _VisualElement::GetContentProvider(void) const
191 {
192         return _pVisualElementImpl->GetContentProvider();
193 }
194
195
196 IVisualElementEventListener*
197 _VisualElement::GetVisualElementEventListener(void) const
198 {
199         return _pVisualElementImpl->GetVisualElementEventListener();
200 }
201
202
203 }}}             // Tizen::Ui::Animations
204