// INTERNAL INCLUDES
#include <dali-toolkit/internal/visuals/visual-base-impl.h>
-#include <dali-toolkit/devel-api/controls/control-depth-index-ranges.h>
-#include <dali-toolkit/internal/styling/style-manager-impl.h>
#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
#include <dali-toolkit/public-api/visuals/visual-properties.h>
-#include <dali-toolkit/internal/visuals/visual-string-constants.h>
+#include <dali-toolkit/devel-api/controls/control-depth-index-ranges.h>
#include <dali-toolkit/devel-api/controls/control-devel.h>
#include <dali-toolkit/devel-api/controls/control-wrapper-impl.h>
+#include <dali-toolkit/internal/styling/style-manager-impl.h>
+#include <dali-toolkit/internal/visuals/visual-string-constants.h>
namespace Dali
{
: mControlImpl( controlImpl ),
mState( Toolkit::DevelControl::NORMAL ),
mSubStateName(""),
+ mLayout( NULL ),
mLeftFocusableActorId( -1 ),
mRightFocusableActorId( -1 ),
mUpFocusableActorId( -1 ),
void Control::Impl::EnableVisual( Property::Index index, bool enable )
{
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::EnableVisual Visual (%d)\n", index);
+ DALI_LOG_INFO( gLogFilter, Debug::General, "Control::EnableVisual(%d, %s)\n", index, enable?"T":"F");
RegisteredVisualContainer::Iterator iter;
if ( FindVisual( index, mVisuals, iter ) )
}
}
}
+ else
+ {
+ DALI_LOG_WARNING( "Control::EnableVisual(%d, %s) FAILED - NO SUCH VISUAL\n", index, enable?"T":"F" );
+ }
}
bool Control::Impl::IsVisualEnabled( Property::Index index ) const
// Called by a Visual when it's resource is ready
void Control::Impl::ResourceReady( Visual::Base& object)
{
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "ResourceReady replacements pending[%d]\n", mRemoveVisuals.Count() );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::Impl::ResourceReady() replacements pending[%d]\n", mRemoveVisuals.Count() );
Actor self = mControlImpl.Self();
return Toolkit::Visual::ResourceStatus::PREPARING;
}
-Dali::Animation Control::Impl::CreateTransition( const Toolkit::TransitionData& handle )
+
+
+void Control::Impl::AddTransitions( Dali::Animation& animation,
+ const Toolkit::TransitionData& handle,
+ bool createAnimation )
{
- Dali::Animation transition;
+ // Setup a Transition from TransitionData.
const Internal::TransitionData& transitionData = Toolkit::GetImplementation( handle );
-
- if( transitionData.Count() > 0 )
+ TransitionData::Iterator end = transitionData.End();
+ for( TransitionData::Iterator iter = transitionData.Begin() ;
+ iter != end; ++iter )
{
- // Setup a Transition from TransitionData.
- TransitionData::Iterator end = transitionData.End();
- for( TransitionData::Iterator iter = transitionData.Begin() ;
- iter != end; ++iter )
- {
- TransitionData::Animator* animator = (*iter);
+ TransitionData::Animator* animator = (*iter);
- Toolkit::Visual::Base visual = GetVisualByName( mVisuals, animator->objectName );
+ Toolkit::Visual::Base visual = GetVisualByName( mVisuals, animator->objectName );
- if( visual )
- {
+ if( visual )
+ {
#if defined(DEBUG_ENABLED)
- Dali::TypeInfo typeInfo;
- ControlWrapper* controlWrapperImpl = dynamic_cast<ControlWrapper*>(&mControlImpl);
- if( controlWrapperImpl )
- {
- typeInfo = controlWrapperImpl->GetTypeInfo();
- }
+ Dali::TypeInfo typeInfo;
+ ControlWrapper* controlWrapperImpl = dynamic_cast<ControlWrapper*>(&mControlImpl);
+ if( controlWrapperImpl )
+ {
+ typeInfo = controlWrapperImpl->GetTypeInfo();
+ }
- DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Found %s visual for %s\n",
- visual.GetName().c_str(), typeInfo?typeInfo.GetName().c_str():"Unknown" );
+ DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Found %s visual for %s\n",
+ visual.GetName().c_str(), typeInfo?typeInfo.GetName().c_str():"Unknown" );
#endif
- Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
-
- visualImpl.AnimateProperty( transition, *animator );
- }
- else
+ Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
+ visualImpl.AnimateProperty( animation, *animator );
+ }
+ else
+ {
+ DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Could not find visual. Trying actors");
+ // Otherwise, try any actor children of control (Including the control)
+ Actor child = mControlImpl.Self().FindChildByName( animator->objectName );
+ if( child )
{
- DALI_LOG_INFO( gLogFilter, Debug::Concise, "CreateTransition: Could not find visual. Trying actors");
- // Otherwise, try any actor children of control (Including the control)
- Actor child = mControlImpl.Self().FindChildByName( animator->objectName );
- if( child )
+ Property::Index propertyIndex = DevelHandle::GetPropertyIndex( child, animator->propertyKey );
+ if( propertyIndex != Property::INVALID_INDEX )
{
- Property::Index propertyIndex = DevelHandle::GetPropertyIndex( child, animator->propertyKey );
- if( propertyIndex != Property::INVALID_INDEX )
+ if( animator->animate == false )
{
- if( animator->animate == false )
+ if( animator->targetValue.GetType() != Property::NONE )
{
- if( animator->targetValue.GetType() != Property::NONE )
- {
- child.SetProperty( propertyIndex, animator->targetValue );
- }
+ child.SetProperty( propertyIndex, animator->targetValue );
}
- else // animate the property
+ }
+ else // animate the property
+ {
+ if( animator->initialValue.GetType() != Property::NONE )
{
- if( animator->initialValue.GetType() != Property::NONE )
- {
- child.SetProperty( propertyIndex, animator->initialValue );
- }
-
- if( ! transition )
- {
- transition = Dali::Animation::New( 0.1f );
- }
-
- transition.AnimateTo( Property( child, propertyIndex ),
- animator->targetValue,
- animator->alphaFunction,
- TimePeriod( animator->timePeriodDelay,
- animator->timePeriodDuration ) );
+ child.SetProperty( propertyIndex, animator->initialValue );
}
+
+ if( createAnimation && !animation )
+ {
+ animation = Dali::Animation::New( 0.1f );
+ }
+
+ animation.AnimateTo( Property( child, propertyIndex ),
+ animator->targetValue,
+ animator->alphaFunction,
+ TimePeriod( animator->timePeriodDelay,
+ animator->timePeriodDuration ) );
}
}
}
}
}
+}
+
+Dali::Animation Control::Impl::CreateTransition( const Toolkit::TransitionData& transitionData )
+{
+ Dali::Animation transition;
+ if( transitionData.Count() > 0 )
+ {
+ AddTransitions( transition, transitionData, true );
+ }
return transition;
}
+
+
void Control::Impl::DoAction( Dali::Property::Index visualIndex, Dali::Property::Index actionId, const Dali::Property::Value attributes )
{
RegisteredVisualContainer::Iterator iter;
return consumed;
}
+Toolkit::Internal::LayoutBasePtr Control::Impl::GetLayout() const
+{
+ return mLayout;
+}
+
+void Control::Impl::SetLayout( Toolkit::Internal::LayoutBase& layout )
+{
+ if( mLayout )
+ {
+ mLayout->Unparent();
+ mLayout.Reset();
+ }
+ mLayout = &layout;
+
+ auto controlHandle = Toolkit::Control::DownCast( mControlImpl.Self() ); // Get a handle of this control implementation without copying internals.
+ mLayout->Initialize( controlHandle, controlHandle.GetTypeName() ); // LayoutGroup takes ownership of existing children
+}
+
} // namespace Internal
} // namespace Toolkit