X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol-impl.cpp;h=525a02eb113ded0b4d0190a9d012741927be725c;hb=6fa08daf440e496896babb230e404aae7e77a5bb;hp=c62684fce1b3478e7ac959a1ebb9b068d4d50ab2;hpb=84d36f3df81b55d0c7ae20db8005a28742fa4060;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index c62684f..525a02e 100644 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -24,14 +24,9 @@ #include #include #include -#include -#include #include -#include #include -#include #include -#include #include #include @@ -43,13 +38,12 @@ #include #include #include -#include #include #include #include -#include +#include #include -#include +#include namespace Dali { @@ -57,6 +51,9 @@ namespace Dali namespace Toolkit { +namespace Internal +{ + namespace { @@ -70,40 +67,6 @@ DALI_ENUM_TO_STRING_WITH_SCOPE( ClippingMode, CLIP_CHILDREN ) DALI_ENUM_TO_STRING_TABLE_END( CLIPPING_MODE ) /** - * Struct used to store Visual within the control, index is a unique key for each visual. - */ -struct RegisteredVisual -{ - Property::Index index; - Toolkit::Visual::Base visual; - bool enabled; - - RegisteredVisual( Property::Index aIndex, Toolkit::Visual::Base &aVisual, bool aEnabled) : - index(aIndex), visual(aVisual), enabled(aEnabled) {} -}; - -struct HandleIndex -{ - Handle handle; ///< a handle to the target object - Property::Index index; ///< The index of a property provided by the referenced object - - HandleIndex( ) - : handle(), - index( Property::INVALID_INDEX ) - { - } - - HandleIndex( Handle& handle, Property::Index index ) - : handle( handle ), - index( index ) - { - } -}; - - -typedef Dali::OwnerContainer< RegisteredVisual* > RegisteredVisualContainer; - -/** * Finds visual in given array, returning true if found along with the iterator for that visual as a out parameter */ bool FindVisual( Property::Index targetIndex, RegisteredVisualContainer& visuals, RegisteredVisualContainer::Iterator& iter ) @@ -118,442 +81,28 @@ bool FindVisual( Property::Index targetIndex, RegisteredVisualContainer& visuals return false; } -HandleIndex GetVisualProperty( - Internal::Control& controlImpl, +Toolkit::Visual::Base GetVisualByName( RegisteredVisualContainer& visuals, - const std::string& visualName, - Property::Key propertyKey ) + const std::string& visualName ) { -#if defined(DEBUG_ENABLED) - std::ostringstream oss; - oss << "Control::GetVisualProperty(" << visualName << ", " << propertyKey << ")" << std::endl; - DALI_LOG_INFO( gLogFilter, Debug::General, oss.str().c_str() ); -#endif + Toolkit::Visual::Base visualHandle; - // Find visualName in the control RegisteredVisualContainer::Iterator iter; for ( iter = visuals.Begin(); iter != visuals.End(); iter++ ) { Toolkit::Visual::Base visual = (*iter)->visual; if( visual && visual.GetName() == visualName ) { - Internal::Visual::Base& visualImpl = GetImplementation(visual); - Renderer renderer = visualImpl.GetRenderer(); - if( renderer ) - { - Property::Index index = DevelHandle::GetPropertyIndex( renderer, propertyKey ); - if( index != Property::INVALID_INDEX ) - { - return HandleIndex( renderer, index ); - } - } - } - } - - std::ostringstream noRenderers; - noRenderers << propertyKey; - DALI_LOG_WARNING( "Control::GetVisualProperty(%s, %s) No renderers\n", visualName.c_str(), noRenderers.str().c_str() ); - Handle handle; - return HandleIndex( handle, Property::INVALID_INDEX ); -} - -void SetDefaultTransform( Property::Map& propertyMap ) -{ - propertyMap.Clear(); - propertyMap - .Add( Toolkit::DevelVisual::Transform::Property::OFFSET, Vector2(0.0f, 0.0f) ) - .Add( Toolkit::DevelVisual::Transform::Property::SIZE, Vector2(1.0f, 1.0f) ) - .Add( Toolkit::DevelVisual::Transform::Property::ORIGIN, Toolkit::Align::CENTER ) - .Add( Toolkit::DevelVisual::Transform::Property::ANCHOR_POINT, Toolkit::Align::CENTER ) - .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4::ZERO ); -} - -/** - * Creates control through type registry - */ -BaseHandle Create() -{ - return Internal::Control::New(); -} - -/** - * Performs actions as requested using the action name. - * @param[in] object The object on which to perform the action. - * @param[in] actionName The action to perform. - * @param[in] attributes The attributes with which to perfrom this action. - * @return true if action has been accepted by this control - */ -const char* ACTION_ACCESSIBILITY_ACTIVATED = "accessibilityActivated"; -static bool DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes ) -{ - bool ret = false; - - if( object && ( 0 == strcmp( actionName.c_str(), ACTION_ACCESSIBILITY_ACTIVATED ) ) ) - { - Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); - if( control ) - { - // if cast succeeds there is an implementation so no need to check - ret = Internal::GetImplementation( control ).OnAccessibilityActivated(); - } - } - - return ret; -} - -/** - * Connects a callback function with the object's signals. - * @param[in] object The object providing the signal. - * @param[in] tracker Used to disconnect the signal. - * @param[in] signalName The signal to connect to. - * @param[in] functor A newly allocated FunctorDelegate. - * @return True if the signal was connected. - * @post If a signal was connected, ownership of functor was passed to CallbackBase. Otherwise the caller is responsible for deleting the unused functor. - */ -const char* SIGNAL_KEY_EVENT = "keyEvent"; -const char* SIGNAL_KEY_INPUT_FOCUS_GAINED = "keyInputFocusGained"; -const char* SIGNAL_KEY_INPUT_FOCUS_LOST = "keyInputFocusLost"; -const char* SIGNAL_TAPPED = "tapped"; -const char* SIGNAL_PANNED = "panned"; -const char* SIGNAL_PINCHED = "pinched"; -const char* SIGNAL_LONG_PRESSED = "longPressed"; -static bool DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor ) -{ - Dali::BaseHandle handle( object ); - - bool connected( false ); - Toolkit::Control control = Toolkit::Control::DownCast( handle ); - if ( control ) - { - Internal::Control& controlImpl( Internal::GetImplementation( control ) ); - connected = true; - - if ( 0 == strcmp( signalName.c_str(), SIGNAL_KEY_EVENT ) ) - { - controlImpl.KeyEventSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_KEY_INPUT_FOCUS_GAINED ) ) - { - controlImpl.KeyInputFocusGainedSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_KEY_INPUT_FOCUS_LOST ) ) - { - controlImpl.KeyInputFocusLostSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_TAPPED ) ) - { - controlImpl.EnableGestureDetection( Gesture::Tap ); - controlImpl.GetTapGestureDetector().DetectedSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_PANNED ) ) - { - controlImpl.EnableGestureDetection( Gesture::Pan ); - controlImpl.GetPanGestureDetector().DetectedSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_PINCHED ) ) - { - controlImpl.EnableGestureDetection( Gesture::Pinch ); - controlImpl.GetPinchGestureDetector().DetectedSignal().Connect( tracker, functor ); - } - else if( 0 == strcmp( signalName.c_str(), SIGNAL_LONG_PRESSED ) ) - { - controlImpl.EnableGestureDetection( Gesture::LongPress ); - controlImpl.GetLongPressGestureDetector().DetectedSignal().Connect( tracker, functor ); + visualHandle = visual; + break; } } - return connected; + return visualHandle; } -// Setup signals and actions using the type-registry. -DALI_TYPE_REGISTRATION_BEGIN( Control, CustomActor, Create ); - -// Note: Properties are registered separately below. - -SignalConnectorType registerSignal1( typeRegistration, SIGNAL_KEY_EVENT, &DoConnectSignal ); -SignalConnectorType registerSignal2( typeRegistration, SIGNAL_KEY_INPUT_FOCUS_GAINED, &DoConnectSignal ); -SignalConnectorType registerSignal3( typeRegistration, SIGNAL_KEY_INPUT_FOCUS_LOST, &DoConnectSignal ); -SignalConnectorType registerSignal4( typeRegistration, SIGNAL_TAPPED, &DoConnectSignal ); -SignalConnectorType registerSignal5( typeRegistration, SIGNAL_PANNED, &DoConnectSignal ); -SignalConnectorType registerSignal6( typeRegistration, SIGNAL_PINCHED, &DoConnectSignal ); -SignalConnectorType registerSignal7( typeRegistration, SIGNAL_LONG_PRESSED, &DoConnectSignal ); - -TypeAction registerAction( typeRegistration, ACTION_ACCESSIBILITY_ACTIVATED, &DoAction ); - -DALI_TYPE_REGISTRATION_END() - } // unnamed namespace -namespace Internal -{ - -class Control::Impl : public ConnectionTracker -{ -public: - - // Construction & Destruction - Impl(Control& controlImpl) - : mControlImpl( controlImpl ), - mStyleName(""), - mBackgroundColor(Color::TRANSPARENT), - mStartingPinchScale( NULL ), - mKeyEventSignal(), - mPinchGestureDetector(), - mPanGestureDetector(), - mTapGestureDetector(), - mLongPressGestureDetector(), - mFlags( Control::ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ), - mIsKeyboardNavigationSupported( false ), - mIsKeyboardFocusGroup( false ) - { - } - - ~Impl() - { - // All gesture detectors will be destroyed so no need to disconnect. - delete mStartingPinchScale; - } - - // Gesture Detection Methods - - void PinchDetected(Actor actor, const PinchGesture& pinch) - { - mControlImpl.OnPinch(pinch); - } - - void PanDetected(Actor actor, const PanGesture& pan) - { - mControlImpl.OnPan(pan); - } - - void TapDetected(Actor actor, const TapGesture& tap) - { - mControlImpl.OnTap(tap); - } - - void LongPressDetected(Actor actor, const LongPressGesture& longPress) - { - mControlImpl.OnLongPress(longPress); - } - - // Properties - - /** - * Called when a property of an object of this type is set. - * @param[in] object The object whose property is set. - * @param[in] index The property index. - * @param[in] value The new property value. - */ - static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value ) - { - Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); - - if ( control ) - { - Control& controlImpl( GetImplementation( control ) ); - - switch ( index ) - { - case Toolkit::Control::Property::STYLE_NAME: - { - controlImpl.SetStyleName( value.Get< std::string >() ); - break; - } - - case Toolkit::Control::Property::BACKGROUND_COLOR: - { - DALI_LOG_WARNING( "BACKGROUND_COLOR property is deprecated. Use BACKGROUND property instead\n" ); - controlImpl.SetBackgroundColor( value.Get< Vector4 >() ); - break; - } - - case Toolkit::Control::Property::BACKGROUND_IMAGE: - { - DALI_LOG_WARNING( "BACKGROUND_IMAGE property is deprecated. Use BACKGROUND property instead\n" ); - Image image = Scripting::NewImage( value ); - if ( image ) - { - controlImpl.SetBackgroundImage( image ); - } - else - { - // An empty image means the background is no longer required - controlImpl.ClearBackground(); - } - break; - } - - case Toolkit::Control::Property::KEY_INPUT_FOCUS: - { - if ( value.Get< bool >() ) - { - controlImpl.SetKeyInputFocus(); - } - else - { - controlImpl.ClearKeyInputFocus(); - } - break; - } - - case Toolkit::Control::Property::BACKGROUND: - { - std::string url; - const Property::Map* map = value.GetMap(); - if( map && !map->Empty() ) - { - controlImpl.SetBackground( *map ); - } - else if( value.Get( url ) ) - { - // don't know the size to load - Toolkit::Visual::Base visual = Toolkit::VisualFactory::Get().CreateVisual( url, ImageDimensions() ); - if( visual ) - { - controlImpl.RegisterVisual( Toolkit::Control::Property::BACKGROUND, visual ); - visual.SetDepthIndex( DepthIndex::BACKGROUND ); - } - } - else - { - // The background is an empty property map, so we should clear the background - controlImpl.ClearBackground(); - } - break; - } - - case Toolkit::DevelControl::Property::TOOLTIP: - { - TooltipPtr& tooltipPtr = controlImpl.mImpl->mTooltip; - if( ! tooltipPtr ) - { - tooltipPtr = Tooltip::New( control ); - } - tooltipPtr->SetProperties( value ); - } - } - } - } - - /** - * Called to retrieve a property of an object of this type. - * @param[in] object The object whose property is to be retrieved. - * @param[in] index The property index. - * @return The current value of the property. - */ - static Property::Value GetProperty( BaseObject* object, Property::Index index ) - { - Property::Value value; - - Toolkit::Control control = Toolkit::Control::DownCast( BaseHandle( object ) ); - - if ( control ) - { - Control& controlImpl( GetImplementation( control ) ); - - switch ( index ) - { - case Toolkit::Control::Property::STYLE_NAME: - { - value = controlImpl.GetStyleName(); - break; - } - - case Toolkit::Control::Property::BACKGROUND_COLOR: - { - DALI_LOG_WARNING( "BACKGROUND_COLOR property is deprecated. Use BACKGROUND property instead\n" ); - value = controlImpl.GetBackgroundColor(); - break; - } - - case Toolkit::Control::Property::BACKGROUND_IMAGE: - { - DALI_LOG_WARNING( "BACKGROUND_IMAGE property is deprecated. Use BACKGROUND property instead\n" ); - Property::Map map; - Toolkit::Visual::Base visual = controlImpl.GetVisual( Toolkit::Control::Property::BACKGROUND ); - if( visual ) - { - visual.CreatePropertyMap( map ); - } - value = map; - break; - } - - case Toolkit::Control::Property::KEY_INPUT_FOCUS: - { - value = controlImpl.HasKeyInputFocus(); - break; - } - - case Toolkit::Control::Property::BACKGROUND: - { - Property::Map map; - Toolkit::Visual::Base visual = controlImpl.GetVisual( Toolkit::Control::Property::BACKGROUND ); - if( visual ) - { - visual.CreatePropertyMap( map ); - } - - value = map; - break; - } - - case Toolkit::DevelControl::Property::TOOLTIP: - { - Property::Map map; - if( controlImpl.mImpl->mTooltip ) - { - controlImpl.mImpl->mTooltip->CreatePropertyMap( map ); - } - value = map; - break; - } - - } - } - - return value; - } - // Data - - Control& mControlImpl; - RegisteredVisualContainer mVisuals; // Stores visuals needed by the control, non trivial type so std::vector used. - std::string mStyleName; - Vector4 mBackgroundColor; ///< The color of the background visual - Vector3* mStartingPinchScale; ///< The scale when a pinch gesture starts, TODO: consider removing this - Toolkit::Control::KeyEventSignalType mKeyEventSignal; - Toolkit::Control::KeyInputFocusSignalType mKeyInputFocusGainedSignal; - Toolkit::Control::KeyInputFocusSignalType mKeyInputFocusLostSignal; - - // Gesture Detection - PinchGestureDetector mPinchGestureDetector; - PanGestureDetector mPanGestureDetector; - TapGestureDetector mTapGestureDetector; - LongPressGestureDetector mLongPressGestureDetector; - - // Tooltip - TooltipPtr mTooltip; - - ControlBehaviour mFlags : CONTROL_BEHAVIOUR_FLAG_COUNT; ///< Flags passed in from constructor. - bool mIsKeyboardNavigationSupported :1; ///< Stores whether keyboard navigation is supported by the control. - bool mIsKeyboardFocusGroup :1; ///< Stores whether the control is a focus group. - - // Properties - these need to be members of Internal::Control::Impl as they access private methods/data of Internal::Control and Internal::Control::Impl. - static const PropertyRegistration PROPERTY_1; - static const PropertyRegistration PROPERTY_2; - static const PropertyRegistration PROPERTY_3; - static const PropertyRegistration PROPERTY_4; - static const PropertyRegistration PROPERTY_5; - static const PropertyRegistration PROPERTY_6; -}; - -// Properties registered without macro to use specific member variables. -const PropertyRegistration Control::Impl::PROPERTY_1( typeRegistration, "styleName", Toolkit::Control::Property::STYLE_NAME, Property::STRING, &Control::Impl::SetProperty, &Control::Impl::GetProperty ); -const PropertyRegistration Control::Impl::PROPERTY_2( typeRegistration, "backgroundColor", Toolkit::Control::Property::BACKGROUND_COLOR, Property::VECTOR4, &Control::Impl::SetProperty, &Control::Impl::GetProperty ); -const PropertyRegistration Control::Impl::PROPERTY_3( typeRegistration, "backgroundImage", Toolkit::Control::Property::BACKGROUND_IMAGE, Property::MAP, &Control::Impl::SetProperty, &Control::Impl::GetProperty ); -const PropertyRegistration Control::Impl::PROPERTY_4( typeRegistration, "keyInputFocus", Toolkit::Control::Property::KEY_INPUT_FOCUS, Property::BOOLEAN, &Control::Impl::SetProperty, &Control::Impl::GetProperty ); -const PropertyRegistration Control::Impl::PROPERTY_5( typeRegistration, "background", Toolkit::Control::Property::BACKGROUND, Property::MAP, &Control::Impl::SetProperty, &Control::Impl::GetProperty ); -const PropertyRegistration Control::Impl::PROPERTY_6( typeRegistration, "tooltip", Toolkit::DevelControl::Property::TOOLTIP, Property::MAP, &Control::Impl::SetProperty, &Control::Impl::GetProperty ); Toolkit::Control Control::New() { @@ -738,7 +287,11 @@ bool Control::HasKeyInputFocus() bool result = false; if( Self().OnStage() ) { - result = Toolkit::KeyInputFocusManager::Get().IsKeyboardListener(Toolkit::Control::DownCast(Self())); + Toolkit::Control control = Toolkit::KeyInputFocusManager::Get().GetCurrentFocusControl(); + if( Self() == control ) + { + result = true; + } } return result; } @@ -796,6 +349,10 @@ void Control::RegisterVisual( Property::Index index, Toolkit::Visual::Base& visu { Toolkit::GetImplementation((*iter)->visual).SetOffStage( self ); } + + mImpl->StopObservingVisual( (*iter)->visual ); + mImpl->StartObservingVisual( visual ); + (*iter)->visual = visual; visualReplaced = true; } @@ -825,14 +382,18 @@ void Control::RegisterVisual( Property::Index index, Toolkit::Visual::Base& visu if( !visualReplaced ) // New registration entry { mImpl->mVisuals.PushBack( new RegisteredVisual( index, visual, enabled ) ); + + // monitor when the visuals resources are ready + mImpl->StartObservingVisual( visual ); + } if( visual && self.OnStage() && enabled ) { Toolkit::GetImplementation(visual).SetOnStage( self ); } - DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::RegisterVisual number of registered visuals(%d)\n", mImpl->mVisuals.Size() ); + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::RegisterVisual() Registered %s(%d), enabled:%s\n", visual.GetName().c_str(), index, enabled?"T":"F" ); } void Control::UnregisterVisual( Property::Index index ) @@ -840,6 +401,9 @@ void Control::UnregisterVisual( Property::Index index ) RegisteredVisualContainer::Iterator iter; if ( FindVisual( index, mImpl->mVisuals, iter ) ) { + // stop observing visual + mImpl->StopObservingVisual( (*iter)->visual ); + Actor self( Self() ); Toolkit::GetImplementation((*iter)->visual).SetOffStage( self ); (*iter)->visual.Reset(); @@ -865,7 +429,7 @@ void Control::EnableVisual( Property::Index index, bool enable ) { if ( (*iter)->enabled == enable ) { - DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::EnableVisual Visual Already enabled set (%s) \n", enable?"enabled":"disabled"); + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::EnableVisual Visual %s(%d) already %s\n", (*iter)->visual.GetName().c_str(), index, enable?"enabled":"disabled"); return; } @@ -875,12 +439,12 @@ void Control::EnableVisual( Property::Index index, bool enable ) { if ( enable ) { - DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::EnableVisual Setting Visual(%d) on stage \n", index ); + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::EnableVisual Setting %s(%d) on stage \n", (*iter)->visual.GetName().c_str(), index ); Toolkit::GetImplementation((*iter)->visual).SetOnStage( parentActor ); } else { - DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::EnableVisual Setting Visual(%d) off stage \n", index ); + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Control::EnableVisual Setting %s(%d) off stage \n", (*iter)->visual.GetName().c_str(), index ); Toolkit::GetImplementation((*iter)->visual).SetOffStage( parentActor ); // No need to call if control not staged. } } @@ -910,50 +474,49 @@ Dali::Animation Control::CreateTransition( const Toolkit::TransitionData& handle iter != end; ++iter ) { TransitionData::Animator* animator = (*iter); - HandleIndex handleIndex; - // Attempt to find the object name as a child actor - Actor child = Self().FindChildByName( animator->objectName ); - if( child ) + Toolkit::Visual::Base visual = GetVisualByName( mImpl->mVisuals, animator->objectName ); + + if( visual ) { - Property::Index propertyIndex = DevelHandle::GetPropertyIndex( child, animator->propertyKey ); - handleIndex = HandleIndex( child, propertyIndex ); + Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual ); + visualImpl.AnimateProperty( transition, *animator ); } else { - handleIndex = GetVisualProperty( *this, mImpl->mVisuals, - animator->objectName, - animator->propertyKey ); - } - - if( handleIndex.handle && handleIndex.index != Property::INVALID_INDEX ) - { - if( animator->animate == false ) - { - if( animator->targetValue.GetType() != Property::NONE ) - { - handleIndex.handle.SetProperty( handleIndex.index, animator->targetValue ); - } - } - else + // Otherwise, try any actor children of control (Including the control) + Actor child = Self().FindChildByName( animator->objectName ); + if( child ) { - if( animator->initialValue.GetType() != Property::NONE ) - { - handleIndex.handle.SetProperty( handleIndex.index, animator->initialValue ); - } - - if( ! transition ) + Property::Index propertyIndex = DevelHandle::GetPropertyIndex( child, animator->propertyKey ); + if( propertyIndex != Property::INVALID_INDEX ) { - // Create an animation with a default .1 second duration - the animators - // will automatically force it to the 'right' duration. - transition = Dali::Animation::New( 0.1f ); + if( animator->animate == false ) + { + if( animator->targetValue.GetType() != Property::NONE ) + { + child.SetProperty( propertyIndex, animator->targetValue ); + } + } + else // animate the property + { + 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 ) ); + } } - - transition.AnimateTo( Property( handleIndex.handle, handleIndex.index ), - animator->targetValue, - animator->alphaFunction, - TimePeriod( animator->timePeriodDelay, - animator->timePeriodDuration ) ); } } } @@ -1097,8 +660,8 @@ void Control::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Ty if( styleManager && change == StyleChange::THEME_CHANGE ) { GetImpl( styleManager ).ApplyThemeStyle( Toolkit::Control( GetOwner() ) ); + RelayoutRequest(); } - RelayoutRequest(); } void Control::OnPinch(const PinchGesture& pinch) @@ -1249,9 +812,7 @@ void Control::OnSizeSet(const Vector3& targetSize) if( visual ) { Vector2 size( targetSize ); - Property::Map transformMap; - SetDefaultTransform( transformMap ); - visual.SetTransformAndSize( transformMap, size ); + visual.SetTransformAndSize( Property::Map(), size ); // Send an empty map as we do not want to modify the visual's set transform } } @@ -1290,10 +851,7 @@ void Control::OnRelayout( const Vector2& size, RelayoutContainer& container ) Toolkit::Visual::Base visual = GetVisual( Toolkit::Control::Property::BACKGROUND ); if( visual ) { - Vector2 controlSize( size ); - Property::Map transformMap; - SetDefaultTransform( transformMap ); - visual.SetTransformAndSize( transformMap, controlSize ); + visual.SetTransformAndSize( Property::Map(), size ); // Send an empty map as we do not want to modify the visual's set transform } }