X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fscroll-connector-impl.cpp;h=613b0e8e8b4104b98f98e5fa822b5f0e843ff301;hb=56d412791a44c2a79135d2293c13fddb135c9d54;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..613b0e8 100644 --- a/dali-toolkit/internal/controls/scrollable/scroll-connector-impl.cpp +++ b/dali-toolkit/internal/controls/scrollable/scroll-connector-impl.cpp @@ -19,7 +19,9 @@ #include // EXTERNAL INCLUDES -#include +#include +#include +#include #include namespace Dali @@ -31,6 +33,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( ScrollConnector, "domain-changed", DOMAIN_CHANGED_SIGNAL_NAME ) +DALI_SIGNAL_REGISTRATION( 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 +69,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 );