X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-selection-toolbar-impl.cpp;h=3a0ccfdd80625d16abf4860d7e26bb62facc6dc1;hp=957e15219ab820b8e2634491fcc21cc6178acdfe;hb=5e937a6322849b76d49d5b3f41cb5d91c94acd3e;hpb=611c65adb7d515fffbcd51be4874c203b0313446 diff --git a/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.cpp index 957e152..3a0ccfd 100644 --- a/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.cpp @@ -1,5 +1,5 @@ /* - * 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. @@ -187,8 +187,8 @@ void TextSelectionToolbar::SetPopupMaxSize( const Size& maxSize ) mMaxSize = maxSize; if (mScrollView && mToolbarLayer ) { - mScrollView.SetMaximumSize( mMaxSize ); - mToolbarLayer.SetMaximumSize( mMaxSize ); + mScrollView.SetProperty( Actor::Property::MAXIMUM_SIZE, mMaxSize ); + mToolbarLayer.SetProperty( Actor::Property::MAXIMUM_SIZE, mMaxSize ); } } @@ -199,15 +199,16 @@ const Dali::Vector2& TextSelectionToolbar::GetPopupMaxSize() const void TextSelectionToolbar::SetUpScrollView() { - mScrollView.SetName("TextSelectionScrollView"); + mScrollView.SetProperty( Dali::Actor::Property::NAME,"TextSelectionScrollView"); mScrollView.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::ALL_DIMENSIONS ); - mScrollView.SetParentOrigin( ParentOrigin::CENTER_LEFT ); - mScrollView.SetAnchorPoint( AnchorPoint::CENTER_LEFT ); + mScrollView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER_LEFT ); + mScrollView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER_LEFT ); mScrollView.SetScrollingDirection( PanGestureDetector::DIRECTION_HORIZONTAL, Degree( 40.0f ) ); 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. @@ -227,8 +228,8 @@ void TextSelectionToolbar::SetUp() // Create Layer to house the toolbar. mToolbarLayer = Layer::New(); mToolbarLayer.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::ALL_DIMENSIONS ); - mToolbarLayer.SetAnchorPoint( AnchorPoint::CENTER ); - mToolbarLayer.SetParentOrigin( ParentOrigin::CENTER ); + mToolbarLayer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); + mToolbarLayer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); if( !mScrollView ) { @@ -239,8 +240,8 @@ void TextSelectionToolbar::SetUp() // Toolbar must start with at least one option, adding further options with increase it's size mTableOfButtons = Dali::Toolkit::TableView::New( 1, 1 ); mTableOfButtons.SetFitHeight( 0 ); - mTableOfButtons.SetParentOrigin( ParentOrigin::CENTER_LEFT ); - mTableOfButtons.SetAnchorPoint( AnchorPoint::CENTER_LEFT ); + mTableOfButtons.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER_LEFT ); + mTableOfButtons.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER_LEFT ); mScrollView.Add( mTableOfButtons ); mToolbarLayer.Add( mScrollView ); @@ -255,15 +256,15 @@ void TextSelectionToolbar::SetUpScrollBar( bool enable ) if( ! mScrollBar ) { Toolkit::ImageView indicator = Toolkit::ImageView::New(); - indicator.SetParentOrigin( ParentOrigin::TOP_LEFT ); - indicator.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + indicator.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + indicator.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); indicator.SetStyleName( "TextSelectionScrollIndicator" ); mScrollBar = Toolkit::ScrollBar::New( Toolkit::ScrollBar::Horizontal ); - mScrollBar.SetName( "Text popup scroll bar" ); + mScrollBar.SetProperty( Dali::Actor::Property::NAME, "Text popup scroll bar" ); mScrollBar.SetStyleName( "TextSelectionScrollBar" ); - mScrollBar.SetParentOrigin( ParentOrigin::BOTTOM_LEFT ); - mScrollBar.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + mScrollBar.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_LEFT ); + mScrollBar.SetProperty( Actor::Property::ANCHOR_POINT, 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 ) ); @@ -280,12 +281,17 @@ void TextSelectionToolbar::SetUpScrollBar( bool enable ) void TextSelectionToolbar::OnScrollStarted( const Vector2& position ) { - mTableOfButtons.SetSensitive( false ); + if( mFirstScrollEnd ) + { + mScrollView.SetOvershootEnabled( true ); + } + mTableOfButtons.SetProperty( Actor::Property::SENSITIVE, false ); } void TextSelectionToolbar::OnScrollCompleted( const Vector2& position ) { - mTableOfButtons.SetSensitive( true ); + mFirstScrollEnd = true; + mTableOfButtons.SetProperty( Actor::Property::SENSITIVE, true ); } void TextSelectionToolbar::AddOption( Actor& option ) @@ -327,6 +333,13 @@ void TextSelectionToolbar::SetScrollBarPadding( const Vector2& padding ) 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. @@ -369,7 +382,8 @@ TextSelectionToolbar::TextSelectionToolbar() mMaxSize (), mScrollBarPadding( DEFAULT_SCROLL_BAR_PADDING ), mIndexInTable( 0 ), - mDividerIndexes() + mDividerIndexes(), + mFirstScrollEnd( false ) { }