// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/image-view/image-view.h>
#include <dali-toolkit/devel-api/controls/control-depth-index-ranges.h>
+#include <dali-toolkit/internal/helpers/color-conversion.h>
namespace Dali
{
void TextSelectionToolbar::SetUpScrollView()
{
+ mScrollView.SetName("TextSelectionScrollView");
mScrollView.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::ALL_DIMENSIONS );
mScrollView.SetParentOrigin( ParentOrigin::CENTER_LEFT );
mScrollView.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
{
if( ! mScrollBar )
{
+ Toolkit::ImageView indicator = Toolkit::ImageView::New();
+ indicator.SetParentOrigin( ParentOrigin::TOP_LEFT );
+ indicator.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ indicator.SetStyleName( "TextSelectionScrollIndicator" );
+
mScrollBar = Toolkit::ScrollBar::New( Toolkit::ScrollBar::Horizontal );
mScrollBar.SetName( "Text popup scroll bar" );
+ mScrollBar.SetStyleName( "TextSelectionScrollBar" );
mScrollBar.SetParentOrigin( ParentOrigin::BOTTOM_LEFT );
mScrollBar.SetAnchorPoint( AnchorPoint::TOP_LEFT );
mScrollBar.SetPosition( mScrollBarPadding.x, -mScrollBarPadding.y );
mScrollBar.SetResizePolicy( Dali::ResizePolicy::FIT_TO_CHILDREN, Dali::Dimension::WIDTH );
mScrollBar.SetOrientation( Quaternion( Radian( 1.5f * Math::PI ), Vector3::ZAXIS ) );
+ mScrollBar.SetScrollIndicator( indicator );
mScrollBar.GetPanGestureDetector().DetachAll();
mScrollView.Add( mScrollBar );
}
void TextSelectionToolbar::OnScrollStarted( const Vector2& position )
{
+ if( mFirstScrollEnd )
+ {
+ mScrollView.SetOvershootEnabled( true );
+ }
mTableOfButtons.SetSensitive( false );
}
void TextSelectionToolbar::OnScrollCompleted( const Vector2& position )
{
+ mFirstScrollEnd = true;
mTableOfButtons.SetSensitive( true );
}
RelayoutRequest();
}
+void TextSelectionToolbar::ScrollTo( const Vector2& position )
+{
+ mFirstScrollEnd = false;
+ mScrollView.SetOvershootEnabled( false );
+ mScrollView.ScrollTo( position, 0.f );
+}
+
void TextSelectionToolbar::ConfigureScrollview( const Property::Map& properties )
{
// Set any properties specified for the label by iterating through all property key-value pairs.
Property::Index setPropertyIndex = mScrollView.GetPropertyIndex( propertyPair.first );
if( setPropertyIndex != Property::INVALID_INDEX )
{
- // If the conversion worked, we have a valid property index,
- // Set the property to the new value.
- mScrollView.SetProperty( setPropertyIndex, propertyPair.second );
+ // Convert the string representation of a color into a Vector4
+ if( setPropertyIndex == Toolkit::Scrollable::Property::OVERSHOOT_EFFECT_COLOR )
+ {
+ Vector4 color;
+ if( ConvertPropertyToColor( propertyPair.second, color ) )
+ {
+ mScrollView.SetOvershootEffectColor( color );
+ }
+ }
+ else
+ {
+ // If the conversion worked, we have a valid property index,
+ // Set the property to the new value.
+ mScrollView.SetProperty( setPropertyIndex, propertyPair.second );
+ }
}
}
mMaxSize (),
mScrollBarPadding( DEFAULT_SCROLL_BAR_PADDING ),
mIndexInTable( 0 ),
- mDividerIndexes()
+ mDividerIndexes(),
+ mFirstScrollEnd( false )
{
}