X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fscroll-connector-impl.cpp;h=9e8eb840bf24f430883fab96cc7cede6925cd73b;hb=5ff76a127dce1541de4f27d29db5e019d80363e0;hp=4f3d73140a130ac0323478101dcfdca2f5485a44;hpb=57869973578f6a0b0f836d396c7232ddb8302c6b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/scrollable/scroll-connector-impl.cpp b/dali-toolkit/internal/controls/scrollable/scroll-connector-impl.cpp index 4f3d731..9e8eb84 100644 --- a/dali-toolkit/internal/controls/scrollable/scroll-connector-impl.cpp +++ b/dali-toolkit/internal/controls/scrollable/scroll-connector-impl.cpp @@ -19,7 +19,10 @@ #include // EXTERNAL INCLUDES -#include +#include // for strcmp +#include +#include +#include #include namespace Dali @@ -31,6 +34,19 @@ namespace Toolkit namespace Internal { +namespace +{ + +// Setup properties, signals and actions using the type-registry. +DALI_TYPE_REGISTRATION_BEGIN( Toolkit::ScrollConnector, Dali::BaseHandle, NULL ) + +DALI_SIGNAL_REGISTRATION( Toolkit, ScrollConnector, "domain-changed", DOMAIN_CHANGED_SIGNAL_NAME ) +DALI_SIGNAL_REGISTRATION( Toolkit, ScrollConnector, "scroll-position-changed", SCROLL_POSITION_CHANGED_SIGNAL_NAME ) + +DALI_TYPE_REGISTRATION_END() + +} + const Property::Index ScrollConnector::SCROLL_POSITION = Dali::PROPERTY_CUSTOM_START_INDEX; const Property::Index ScrollConnector::OVERSHOOT = Dali::PROPERTY_CUSTOM_START_INDEX + 1; @@ -54,12 +70,36 @@ void ScrollConnector::SetScrollPosition( float position ) mScrollPositionChangedSignal.Emit( position ); } +bool ScrollConnector::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor ) +{ + Dali::BaseHandle handle( object ); + + bool connected( true ); + Toolkit::ScrollConnector scrollConnector = Toolkit::ScrollConnector::DownCast( handle ); + + if( 0 == strcmp( signalName.c_str(), DOMAIN_CHANGED_SIGNAL_NAME ) ) + { + scrollConnector.DomainChangedSignal().Connect( tracker, functor ); + } + else if( 0 == strcmp( signalName.c_str(), SCROLL_POSITION_CHANGED_SIGNAL_NAME ) ) + { + scrollConnector.ScrollPositionChangedSignal().Connect( tracker, functor ); + } + else + { + // signalName does not match any signal + connected = false; + } + + return connected; +} + ScrollConnector::ScrollConnector() : mMinLimit( 0.0f ), mMaxLimit( 0.0f ), mContentLength( 0.0f ) { - mScrollPositionObject = Constrainable::New(); + mScrollPositionObject = Handle::New(); mScrollPositionObject.RegisterProperty( Toolkit::ScrollConnector::SCROLL_POSITION_PROPERTY_NAME, 0.0f ); mScrollPositionObject.RegisterProperty( Toolkit::ScrollConnector::OVERSHOOT_PROPERTY_NAME, 0.0f );