/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/scrollable/item-view/item-view.h>
+#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout-property.h>
using namespace Dali;
using namespace Dali::Toolkit;
float DepthLayout::GetItemScrollToPosition(unsigned int itemId) const
{
- float rowIndex = static_cast<float>(itemId / mImpl->mNumberOfColumns);
+ float rowIndex = static_cast< float >( itemId ) / mImpl->mNumberOfColumns;
return -rowIndex * static_cast<float>(mImpl->mNumberOfColumns);
}
itemSize.width = itemSize.height = itemSize.depth = ( IsVertical( GetOrientation() ) ? layoutSize.width : layoutSize.height ) / static_cast<float>( mImpl->mNumberOfColumns + 1 );
}
-void DepthLayout::GetResizeAnimation(Animation& animation, Actor actor, Vector3 size, float durationSeconds) const
-{
- if(animation)
- {
- animation.AnimateTo( Property( actor, Actor::Property::SIZE ), size );
- }
-}
-
Degree DepthLayout::GetScrollDirection() const
{
Degree scrollDirection(0.0f);
void DepthLayout::ApplyConstraints( Actor& actor, const int itemId, const Vector3& layoutSize, const Actor& itemViewActor )
{
+
Dali::Toolkit::ItemView itemView = Dali::Toolkit::ItemView::DownCast( itemViewActor );
if( itemView )
{
// Color constraint
constraint = Constraint::New< Vector4 >( actor, Actor::Property::COLOR, DepthColorConstraint( itemId, mImpl->mNumberOfColumns, mImpl->mNumberOfRows*0.5f, itemId % mImpl->mNumberOfColumns ) );
constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) );
- constraint.SetRemoveAction( Dali::Constraint::Discard );
+ constraint.SetRemoveAction( Dali::Constraint::DISCARD );
constraint.Apply();
// Visibility constraint
constraint = Constraint::New< bool >( actor, Actor::Property::VISIBLE, DepthVisibilityConstraint( itemId, mImpl->mNumberOfColumns, mImpl->mNumberOfRows*0.5f, itemId % mImpl->mNumberOfColumns ) );
constraint.AddSource( ParentSource( Toolkit::ItemView::Property::LAYOUT_POSITION ) );
- constraint.SetRemoveAction( Dali::Constraint::Discard );
+ constraint.SetRemoveAction( Dali::Constraint::DISCARD );
constraint.Apply();
}
}
+void DepthLayout::SetDepthLayoutProperties(const Property::Map& properties)
+{
+ // Set any properties specified for DepthLayout.
+ for( unsigned int idx = 0, mapCount = properties.Count(); idx < mapCount; ++idx )
+ {
+ KeyValuePair propertyPair = properties.GetKeyValue( idx );
+ switch(DefaultItemLayoutProperty::Property(propertyPair.first.indexKey))
+ {
+ case DefaultItemLayoutProperty::DEPTH_COLUMN_NUMBER:
+ {
+ SetNumberOfColumns(propertyPair.second.Get<int>());
+ break;
+ }
+ case DefaultItemLayoutProperty::DEPTH_ROW_NUMBER:
+ {
+ SetNumberOfRows(propertyPair.second.Get<int>());
+ break;
+ }
+ case DefaultItemLayoutProperty::DEPTH_ROW_SPACING:
+ {
+ SetRowSpacing(propertyPair.second.Get<float>());
+ break;
+ }
+ case DefaultItemLayoutProperty::DEPTH_MAXIMUM_SWIPE_SPEED:
+ {
+ SetMaximumSwipeSpeed(propertyPair.second.Get<float>());
+ break;
+ }
+ case DefaultItemLayoutProperty::DEPTH_SCROLL_SPEED_FACTOR:
+ {
+ SetScrollSpeedFactor(propertyPair.second.Get<float>());
+ break;
+ }
+ case DefaultItemLayoutProperty::DEPTH_TILT_ANGLE:
+ {
+ SetTiltAngle(Degree(Radian(propertyPair.second.Get<float>())));
+ break;
+ }
+ case DefaultItemLayoutProperty::DEPTH_ITEM_TILT_ANGLE:
+ {
+ SetItemTiltAngle(Degree(Radian(propertyPair.second.Get<float>())));
+ break;
+ }
+ case DefaultItemLayoutProperty::DEPTH_ITEM_FLICK_ANIMATION_DURATION:
+ {
+ SetItemFlickAnimationDuration(propertyPair.second.Get<float>());
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+}
+
Vector3 DepthLayout::GetItemPosition( int itemID, float currentLayoutPosition, const Vector3& layoutSize ) const
{
Vector3 itemPosition = Vector3::ZERO;
return scrollTo;
}
-int DepthLayout::GetNextFocusItemID(int itemID, int maxItems, Dali::Toolkit::Control::KeyboardFocusNavigationDirection direction, bool loopEnabled)
+int DepthLayout::GetNextFocusItemID(int itemID, int maxItems, Dali::Toolkit::Control::KeyboardFocus::Direction direction, bool loopEnabled)
{
switch( direction )
{
- case Toolkit::Control::Left:
+ case Toolkit::Control::KeyboardFocus::LEFT:
{
itemID--;
if( itemID < 0 )
}
break;
}
- case Toolkit::Control::Up:
+ case Toolkit::Control::KeyboardFocus::UP:
{
itemID += mImpl->mNumberOfColumns;
if( itemID >= maxItems )
}
break;
}
- case Toolkit::Control::Right:
+ case Toolkit::Control::KeyboardFocus::RIGHT:
{
itemID++;
if( itemID >= maxItems )
}
break;
}
- case Toolkit::Control::Down:
+ case Toolkit::Control::KeyboardFocus::DOWN:
{
itemID -= mImpl->mNumberOfColumns;
if( itemID < 0 )
}
break;
}
+ default:
+ {
+ break;
+ }
}
return itemID;
}