2 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 #include "control-devel.h"
22 #include <dali/public-api/animation/animation.h>
25 #include <dali-toolkit/internal/controls/control/control-data-impl.h>
26 #include <dali-toolkit/public-api/controls/control-impl.h>
27 #include <dali-toolkit/devel-api/visual-factory/transition-data.h>
35 namespace DevelControl
38 void RegisterVisual( Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual )
40 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
41 controlDataImpl.RegisterVisual( index, visual );
44 void RegisterVisual( Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual, int depthIndex )
46 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
47 controlDataImpl.RegisterVisual( index, visual, depthIndex );
50 void RegisterVisual( Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual, bool enabled )
52 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
53 controlDataImpl.RegisterVisual( index, visual, enabled );
56 void RegisterVisual( Internal::Control& control, Dali::Property::Index index, Toolkit::Visual::Base& visual, bool enabled, int depthIndex )
58 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
59 controlDataImpl.RegisterVisual( index, visual, enabled, depthIndex );
62 void UnregisterVisual( Internal::Control& control, Dali::Property::Index index )
64 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
65 controlDataImpl.UnregisterVisual( index );
68 Toolkit::Visual::Base GetVisual( const Internal::Control& control, Dali::Property::Index index )
70 const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
71 return controlDataImpl.GetVisual( index );
74 void EnableVisual( Internal::Control& control, Dali::Property::Index index, bool enable )
76 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
77 controlDataImpl.EnableVisual( index, enable );
80 bool IsVisualEnabled( const Internal::Control& control, Dali::Property::Index index )
82 const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
83 return controlDataImpl.IsVisualEnabled( index );
86 Dali::Animation CreateTransition( Internal::Control& control, const Toolkit::TransitionData& handle )
88 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
89 return controlDataImpl.CreateTransition( handle );
93 void AddTransitions( Internal::Control& control,
94 Dali::Animation animation,
95 const Toolkit::TransitionData& transitionData )
97 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
98 controlDataImpl.AddTransitions( animation, transitionData );
101 void DoAction( Control& control, Dali::Property::Index visualIndex, Dali::Property::Index actionId, const Dali::Property::Value attributes )
103 Internal::Control& controlInternal = Toolkit::Internal::GetImplementation( control );
104 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( controlInternal );
105 controlDataImpl.DoAction( visualIndex, actionId, attributes );
108 void SetInputMethodContext( Internal::Control& control, InputMethodContext& inputMethodContext )
110 Internal::Control::Impl::Get( control ).SetInputMethodContext( inputMethodContext );
113 Toolkit::LayoutItem GetLayout( Control control )
115 const Internal::Control& internalControl = Toolkit::Internal::GetImplementation( control );
116 const Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( internalControl );
117 return Toolkit::LayoutItem( controlDataImpl.GetLayout().Get() );
120 Toolkit::LayoutItem GetLayout( Internal::Control& control )
122 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
123 return Toolkit::LayoutItem( controlDataImpl.GetLayout().Get() );
126 void SetLayout( Internal::Control& control, Toolkit::LayoutItem layout )
128 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
129 controlDataImpl.SetLayout( GetImplementation( layout ) );
132 void SetLayout( Control control, Toolkit::LayoutItem layout )
134 Internal::Control& internalControl = Toolkit::Internal::GetImplementation( control );
135 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( internalControl );
138 controlDataImpl.SetLayout( GetImplementation( layout ) );
142 controlDataImpl.RemoveLayout();
146 void RequestLayout( Internal::Control& control )
148 Internal::Control::Impl& controlDataImpl = Internal::Control::Impl::Get( control );
149 Toolkit::Internal::LayoutItemPtr layoutItem = controlDataImpl.GetLayout();
152 layoutItem->RequestLayout();
156 } // namespace DevelControl
158 } // namespace Toolkit