+ if( enable )
+ {
+ Property::Index effectOvershootPropertyIndex = Property::INVALID_INDEX;
+ mOvershootOverlay = CreateBouncingEffectActor( effectOvershootPropertyIndex );
+ mOvershootOverlay.SetColor(mOvershootEffectColor);
+ mOvershootOverlay.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ mOvershootOverlay.SetAnchorPoint(AnchorPoint::TOP_LEFT);
+ mOvershootOverlay.SetDrawMode(DrawMode::OVERLAY);
+ self.Add(mOvershootOverlay);
+
+ Constraint constraint = Constraint::New<Vector3>( Actor::SIZE,
+ ParentSource( mPropertyScrollDirection ),
+ Source( mScrollPositionObject, ScrollConnector::OVERSHOOT ),
+ ParentSource( Actor::SIZE ),
+ OvershootOverlaySizeConstraint() );
+ mOvershootOverlay.ApplyConstraint(constraint);
+ mOvershootOverlay.SetSize(OVERSHOOT_BOUNCE_ACTOR_DEFAULT_SIZE.width, OVERSHOOT_BOUNCE_ACTOR_DEFAULT_SIZE.height);
+
+ constraint = Constraint::New<Quaternion>( Actor::ROTATION,
+ ParentSource( mPropertyScrollDirection ),
+ Source( mScrollPositionObject, ScrollConnector::OVERSHOOT ),
+ OvershootOverlayRotationConstraint() );
+ mOvershootOverlay.ApplyConstraint(constraint);
+
+ constraint = Constraint::New<Vector3>( Actor::POSITION,
+ ParentSource( Actor::SIZE ),
+ ParentSource( mPropertyScrollDirection ),
+ Source( mScrollPositionObject, ScrollConnector::OVERSHOOT ),
+ OvershootOverlayPositionConstraint() );
+ mOvershootOverlay.ApplyConstraint(constraint);
+
+ constraint = Constraint::New<bool>( Actor::VISIBLE,
+ ParentSource( mPropertyCanScrollVertical ),
+ OvershootOverlayVisibilityConstraint() );
+ mOvershootOverlay.ApplyConstraint(constraint);
+
+ constraint = Constraint::New<float>( effectOvershootPropertyIndex,
+ Source( mScrollPositionObject, ScrollConnector::OVERSHOOT ),
+ EqualToConstraint() );
+ mOvershootOverlay.ApplyConstraint(constraint);
+ }
+ else
+ {
+ if( mOvershootOverlay )
+ {
+ self.Remove(mOvershootOverlay);
+ mOvershootOverlay.Reset();
+ }
+ }