DALi Version 1.9.35
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / controls / control-devel.cpp
1 /*
2  * Copyright (c) 2020 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS HEADER
19 #include "control-devel.h"
20
21 // EXTERNAL INCLUDES
22 #include <dali/public-api/animation/animation.h>
23
24 // INTERNAL INCLUDES
25 #include <dali-toolkit/devel-api/visual-factory/transition-data.h>
26 #include <dali-toolkit/internal/controls/control/control-data-impl.h>
27 #include <dali-toolkit/public-api/controls/control-impl.h>
28
29 namespace Dali
30 {
31 namespace Toolkit
32 {
33 namespace DevelControl
34 {
35 void RegisterVisual(Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual)
36 {
37   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
38   controlDataImpl.RegisterVisual(index, visual);
39 }
40
41 void RegisterVisual(Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual, int depthIndex)
42 {
43   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
44   controlDataImpl.RegisterVisual(index, visual, depthIndex);
45 }
46
47 void RegisterVisual(Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual, bool enabled)
48 {
49   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
50   controlDataImpl.RegisterVisual(index, visual, enabled);
51 }
52
53 void RegisterVisual(Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual, bool enabled, int depthIndex)
54 {
55   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
56   controlDataImpl.RegisterVisual(index, visual, enabled, depthIndex);
57 }
58
59 void UnregisterVisual(Internal::Control& control, Dali::Property::Index index)
60 {
61   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
62   controlDataImpl.UnregisterVisual(index);
63 }
64
65 Toolkit::Visual::Base GetVisual(const Internal::Control& control, Dali::Property::Index index)
66 {
67   const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
68   return controlDataImpl.GetVisual(index);
69 }
70
71 void EnableVisual(Internal::Control& control, Dali::Property::Index index, bool enable)
72 {
73   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
74   controlDataImpl.EnableVisual(index, enable);
75 }
76
77 bool IsVisualEnabled(const Internal::Control& control, Dali::Property::Index index)
78 {
79   const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
80   return controlDataImpl.IsVisualEnabled(index);
81 }
82
83 Dali::Animation CreateTransition(Internal::Control& control, const Toolkit::TransitionData& handle)
84 {
85   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
86   return controlDataImpl.CreateTransition(handle);
87 }
88
89 void AddTransitions(Internal::Control&             control,
90                     Dali::Animation                animation,
91                     const Toolkit::TransitionData& transitionData)
92 {
93   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(control);
94   controlDataImpl.AddTransitions(animation, transitionData);
95 }
96
97 void DoAction(Control& control, Dali::Property::Index visualIndex, Dali::Property::Index actionId, const Dali::Property::Value attributes)
98 {
99   Internal::Control&       controlInternal = Toolkit::Internal::GetImplementation(control);
100   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(controlInternal);
101   controlDataImpl.DoAction(visualIndex, actionId, attributes);
102 }
103
104 void SetInputMethodContext(Internal::Control& control, InputMethodContext& inputMethodContext)
105 {
106   Internal::Control::Impl::Get(control).SetInputMethodContext(inputMethodContext);
107 }
108
109 VisualEventSignalType& VisualEventSignal(Control control)
110 {
111   Internal::Control&       internalControl = Toolkit::Internal::GetImplementation(control);
112   Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get(internalControl);
113   return controlDataImpl.VisualEventSignal();
114 }
115
116 } // namespace DevelControl
117
118 } // namespace Toolkit
119
120 } // namespace Dali