{
// Create ScrollComponent
Toolkit::Scrollable scrollable = Toolkit::Scrollable::DownCast(Self());
- Toolkit::ScrollComponent scrollComponent = ScrollComponent::New(scrollable, type);
- Toolkit::Internal::ScrollComponent& component = static_cast<Toolkit::Internal::ScrollComponent&>(scrollComponent.GetImplementation());
+ Toolkit::ScrollComponent scrollComponent = NewScrollComponent(scrollable, type);
+ Toolkit::ScrollComponentImpl& component = static_cast<Toolkit::ScrollComponentImpl&>(scrollComponent.GetImplementation());
ScrollComponentPtr componentPtr(&component);
mComponents[type] = componentPtr;
{
ScrollComponentPtr component = pair->second;
- // Disconnect the scroll component first.
- component->OnDisconnect();
-
// Destroy ScrollComponent.
mComponents.erase( type );
}
return connected;
}
+Toolkit::ScrollComponent Scrollable::NewScrollComponent(Toolkit::Scrollable& scrollable, Toolkit::Scrollable::ScrollComponentType type)
+{
+ Toolkit::ScrollComponent instance;
+
+ switch(type)
+ {
+ case Toolkit::Scrollable::VerticalScrollBar:
+ {
+ instance = static_cast<Toolkit::ScrollComponent>(Toolkit::ScrollBarInternal::New(scrollable, true));
+ break;
+ }
+ case Toolkit::Scrollable::HorizontalScrollBar:
+ {
+ instance = static_cast<Toolkit::ScrollComponent>(Toolkit::ScrollBarInternal::New(scrollable, false));
+ break;
+ }
+ default:
+ {
+ DALI_ASSERT_ALWAYS(true && "Unrecognized component type");
+ }
+ }
+
+ return instance;
+}
+
} // namespace Internal
} // namespace Toolkit