const std::string INTERNAL_MAX_POSITION_PROPERTY_NAME( "internalMaxPosition" );
+// The following properties are not in the public-api yet.
+enum
+{
+ /**
+ * @brief True if scroll-bar should be automatically show/hidden during/after panning.
+ * @details name "transientScrollBar", type bool.
+ */
+ TRANSIENT_SCROLL_BAR = Toolkit::ScrollView::Property::WHEEL_SCROLL_DISTANCE_STEP + 1
+};
+
+
// Helpers ////////////////////////////////////////////////////////////////////////////////////////
/**
DALI_PROPERTY_REGISTRATION( Toolkit, ScrollView, "axisAutoLockEnabled", BOOLEAN, AXIS_AUTO_LOCK_ENABLED )
DALI_PROPERTY_REGISTRATION( Toolkit, ScrollView, "wheelScrollDistanceStep", VECTOR2, WHEEL_SCROLL_DISTANCE_STEP )
+Dali::PropertyRegistration manualProperty1( typeRegistration, "transientScrollBar", TRANSIENT_SCROLL_BAR,
+ Property::BOOLEAN, Dali::Toolkit::Internal::ScrollView::SetProperty, Dali::Toolkit::Internal::ScrollView::GetProperty );
+
DALI_ANIMATABLE_PROPERTY_REGISTRATION( Toolkit, ScrollView, "scrollPosition", VECTOR2, SCROLL_POSITION)
DALI_ANIMATABLE_PROPERTY_REGISTRATION( Toolkit, ScrollView, "scrollPrePosition", VECTOR2, SCROLL_PRE_POSITION)
DALI_ANIMATABLE_PROPERTY_COMPONENT_REGISTRATION( Toolkit, ScrollView, "scrollPrePositionX", SCROLL_PRE_POSITION_X, SCROLL_PRE_POSITION, 0)
mDefaultMaxOvershoot(true),
mCanScrollHorizontal(true),
mCanScrollVertical(true),
- mTransientScrollBar(true)
+ mTransientScrollBar(false)
{
}
return mWheelScrollDistanceStep;
}
+void ScrollView::SetTransientScrollBar( bool transient )
+{
+ if( transient != mTransientScrollBar )
+ {
+ mTransientScrollBar = transient;
+
+ Toolkit::ScrollBar scrollBar = mScrollBar.GetHandle();
+ if( mTransientScrollBar && scrollBar )
+ {
+ // Show the scroll-indicator for a brief period
+ scrollBar.SetVisible( true );
+ GetImpl(scrollBar).ShowTransientIndicator();
+ }
+ }
+}
+
unsigned int ScrollView::GetCurrentPage() const
{
// in case animation is currently taking place.
// Show the scroll-indicator for a brief period
GetImpl(scrollBar).ShowTransientIndicator();
}
+ else
+ {
+ scrollBar.SetVisible( false );
+ scrollBar.HideIndicator();
+ }
}
else if(mAlterChild)
{
if( ( rulerDomainX.max > size.width ) || ( rulerDomainY.max > size.height ) )
{
+ scrollBar.SetVisible( true );
scrollBar.ShowIndicator();
}
}
scrollViewImpl.SetWheelScrollDistanceStep( value.Get<Vector2>() );
break;
}
+ case TRANSIENT_SCROLL_BAR:
+ {
+ scrollViewImpl.SetTransientScrollBar( value.Get<bool>() );
+ break;
+ }
}
}
}
value = scrollViewImpl.GetWheelScrollDistanceStep();
break;
}
+ case TRANSIENT_SCROLL_BAR:
+ {
+ value = scrollViewImpl.mTransientScrollBar;
+ break;
+ }
}
}
const Dali::Vector2 DEFAULT_SCROLL_BAR_PADDING( 8.0f, 6.0f );
+// The following properties are not in the public-api yet.
+enum
+{
+ /**
+ * @brief True if scroll-bar should be automatically show/hidden during/after panning.
+ * @details name "transientScrollBar", type bool.
+ */
+ TRANSIENT_SCROLL_BAR = Dali::Toolkit::ScrollView::Property::WHEEL_SCROLL_DISTANCE_STEP + 1
+};
+
BaseHandle Create()
{
return Toolkit::TextSelectionToolbar::New();
void TextSelectionToolbar::OnRelayout( const Vector2& size, RelayoutContainer& container )
{
float width = std::max ( mTableOfButtons.GetNaturalSize().width, size.width );
- mRulerX->SetDomain( RulerDomain( 0.0, width, true ) );
- mScrollView.SetRulerX( mRulerX );
+
+ if( mScrollView )
+ {
+ mRulerX->SetDomain( RulerDomain( 0.0, width, true ) );
+ mScrollView.SetRulerX( mRulerX );
+
+ bool showTransient( width > size.width );
+ mScrollView.SetProperty( TRANSIENT_SCROLL_BAR, showTransient );
+ }
if( mScrollBar )
{