From: Agnelo Vaz Date: Fri, 23 Oct 2015 21:07:12 +0000 (+0100) Subject: Enable setting of ScrollView properties within TextSelectionToolbar via json X-Git-Tag: dali_1.1.8~4^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=1b328ab54fc8d402f99fe7208a1a94878aa16b1f Enable setting of ScrollView properties within TextSelectionToolbar via json Change-Id: Ica91d0fa28532fe70582945fde8182008786e176 Signed-off-by: Agnelo Vaz --- diff --git a/dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h b/dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h index 5a510d7..1e48c56 100644 --- a/dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h +++ b/dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h @@ -64,6 +64,7 @@ public: { MAX_SIZE = PROPERTY_START_INDEX, ///< name "max-size", The maximum size the Popup can be, type VECTOR2 ENABLE_OVERSHOOT, ///< name "enable-overshoot", Whether the overshoot image is enabled, type BOOLEAN + SCROLL_VIEW, ///< name "scroll-view", Properties to set on scroll view type Property::Map }; }; diff --git a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp index bfc49c0..eff1b08 100644 --- a/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp +++ b/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp @@ -146,6 +146,7 @@ void ScrollOvershootEffectRipple::Apply() mOvershootProperty = IsVertical() ? Toolkit::ScrollView::Property::OVERSHOOT_Y : Toolkit::ScrollView::Property::OVERSHOOT_X; // make sure height is set, since we only create a constraint for image width + mOvershootSize = mAttachedScrollView.GetOvershootSize(); mOvershootOverlay.SetSize( mOvershootSize ); mAttachedScrollView.AddOverlay(mOvershootOverlay); 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 e26614d..5995cee 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 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -40,7 +41,6 @@ namespace Internal namespace { -const Dali::Vector2 DEFAULT_MAX_SIZE( 400.0f, 65.0f ); ///< The maximum size of the Toolbar. BaseHandle Create() { @@ -53,6 +53,7 @@ DALI_TYPE_REGISTRATION_BEGIN( Toolkit::TextSelectionToolbar, Toolkit::Control, C DALI_PROPERTY_REGISTRATION( Toolkit, TextSelectionToolbar, "max-size", VECTOR2, MAX_SIZE ) DALI_PROPERTY_REGISTRATION( Toolkit, TextSelectionToolbar, "enable-overshoot", BOOLEAN, ENABLE_OVERSHOOT ) +DALI_PROPERTY_REGISTRATION( Toolkit, TextSelectionToolbar, "scroll-view", MAP, SCROLL_VIEW ) DALI_TYPE_REGISTRATION_END() @@ -90,9 +91,23 @@ void TextSelectionToolbar::SetProperty( BaseObject* object, Property::Index inde } case Toolkit::TextSelectionToolbar::Property::ENABLE_OVERSHOOT: { + if( !impl.mScrollView ) + { + impl.mScrollView = Toolkit::ScrollView::New(); + } impl.mScrollView.SetOvershootEnabled( value.Get< bool >() ); break; } + case Toolkit::TextSelectionToolbar::Property::SCROLL_VIEW: + { + // Get a Property::Map from the property if possible. + Property::Map setPropertyMap; + if( value.Get( setPropertyMap ) ) + { + impl.ConfigureScrollview( setPropertyMap ); + } + break; + } } // switch } // TextSelectionToolbar } @@ -212,7 +227,10 @@ void TextSelectionToolbar::SetUp() stencil.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); stencil.SetParentOrigin( ParentOrigin::CENTER ); - mScrollView = Toolkit::ScrollView::New(); + if ( !mScrollView ) + { + mScrollView = Toolkit::ScrollView::New(); + } SetUpScrollView(); // Toolbar must start with at least one option, adding further options with increase it's size @@ -221,7 +239,6 @@ void TextSelectionToolbar::SetUp() mTableOfButtons.SetParentOrigin( ParentOrigin::CENTER_LEFT ); mTableOfButtons.SetAnchorPoint( AnchorPoint::CENTER_LEFT ); - mStencilLayer.Add( stencil ); mStencilLayer.Add( mScrollView ); mScrollView.Add( mTableOfButtons ); @@ -266,6 +283,27 @@ void TextSelectionToolbar::RaiseAbove( Layer target ) mStencilLayer.RaiseAbove( target ); } +void TextSelectionToolbar::ConfigureScrollview( const Property::Map& properties ) +{ + // Set any properties specified for the label by iterating through all property key-value pairs. + for( unsigned int i = 0, mapCount = properties.Count(); i < mapCount; ++i ) + { + const StringValuePair& propertyPair( properties.GetPair( i ) ); + + // Convert the property string to a property index. + 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 ); + } + } + + RelayoutRequest(); +} + + TextSelectionToolbar::TextSelectionToolbar() : Control( ControlBehaviour( ControlBehaviour( REQUIRES_STYLE_CHANGE_SIGNALS ) ) ), mMaxSize (), diff --git a/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h b/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h index 29d25db..92aa391 100644 --- a/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-selection-toolbar-impl.h @@ -118,6 +118,13 @@ private: // From Control */ const Dali::Vector2& GetPopupMaxSize() const; +private: // Implementation + + /** + * @copydoc Toolkit::TextSelectionToolbar::ConfigureScrollview() + */ + void ConfigureScrollview( const Property::Map& properties ); + /** * @brief Set up scrollview to scroll Toolbar horizontally */ @@ -140,8 +147,6 @@ private: // From Control */ void OnScrollCompleted( const Vector2& position ); -private: // Implementation - /** * Construct a new TextField. */ diff --git a/dali-toolkit/styles/480x800/dali-toolkit-default-theme.json b/dali-toolkit/styles/480x800/dali-toolkit-default-theme.json index 3484c8c..5682ba1 100644 --- a/dali-toolkit/styles/480x800/dali-toolkit-default-theme.json +++ b/dali-toolkit/styles/480x800/dali-toolkit-default-theme.json @@ -113,7 +113,12 @@ distributing this software or its derivatives. }, "textselectiontoolbar": { - "enable-overshoot":true + "enable-overshoot":true, + "scroll-view": + { + "overshoot-animation-speed":120.0, + "overshoot-size":[480.0,42.0] + } }, "scrollview": { diff --git a/dali-toolkit/styles/720x1280/dali-toolkit-default-theme.json b/dali-toolkit/styles/720x1280/dali-toolkit-default-theme.json index 0c20938..ff98976 100644 --- a/dali-toolkit/styles/720x1280/dali-toolkit-default-theme.json +++ b/dali-toolkit/styles/720x1280/dali-toolkit-default-theme.json @@ -113,7 +113,12 @@ distributing this software or its derivatives. }, "textselectiontoolbar": { - "enable-overshoot":true + "enable-overshoot":true, + "scroll-view": + { + "overshoot-animation-speed":360.0, + "overshoot-size":[720.0,130.0] + } }, "scrollview": {