/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// 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 );
mScrollView.SetAxisAutoLock( true );
mScrollView.ScrollStartedSignal().Connect( this, &TextSelectionToolbar::OnScrollStarted );
mScrollView.ScrollCompletedSignal().Connect( this, &TextSelectionToolbar::OnScrollCompleted );
+ mScrollView.SetProperty( Actor::Property::CLIPPING_MODE, ClippingMode::CLIP_TO_BOUNDING_BOX ); // In a new layer, so clip to scroll-view's bounding box
mRulerX = new DefaultRuler(); // IntrusivePtr which is unreferenced when ScrollView is destroyed.
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 )
{
}