X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftable-view%2Ftable-view-impl.cpp;h=76eab51e2257451d35eee91f92fdf8fca796e331;hb=3b16ae16f01bd50a26e6c44e6e20ebb8499b4f91;hp=0db4cbf15e8a0e0accf566818c5a98ad25897392;hpb=2ddfbb9e23a7c3fc30e604236c41e0ef6d2ed6a2;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/table-view/table-view-impl.cpp b/dali-toolkit/internal/controls/table-view/table-view-impl.cpp index 0db4cbf..76eab51 100644 --- a/dali-toolkit/internal/controls/table-view/table-view-impl.cpp +++ b/dali-toolkit/internal/controls/table-view/table-view-impl.cpp @@ -20,8 +20,6 @@ // EXTERNAL INCLUDES #include -#include -#include #include #include #include @@ -34,39 +32,17 @@ namespace const float DEFAULT_CONSTRAINT_DURATION = 0.0f; /** - * Constraint that sets a child property relative to parents Width or Height + * sets a child property relative to parents size and applies a unit based padding before the relative calculation. + * @param[in] scale of parent minus padding between 0 and 1 + * @param[in] padding in world coordinate units + * @param[in] fixed part in world coordinate units + * @param[in] size of the parent + * @return The relative size with padding. */ -struct RelativeToWidthOrHeight +Vector2 RelativeToSize( const Vector2& scale, const Vector2& padding, const Vector2& fixed, const Vector2& parentSize) { - /** - * Constraint that is relative (%) to parent width/height and applies a - * unit based padding before the relative calculation. - * @param scale of parent minus padding between 0 and 1 - * @param padding in world coordinate units - * @param fixed part in world coordinate units - */ - RelativeToWidthOrHeight( float scale, float padding, float fixed ) - : mScaleFactor( scale ), - mPadding( padding ), - mFixed( fixed ) - { - } - - inline float operator()( const float& parentWidthOrHeight ) - { - return mFixed + ( parentWidthOrHeight - mPadding ) * mScaleFactor; - } - - float operator()( const float& current, - const PropertyInput& parentWidthOrHeight ) - { - return operator()( parentWidthOrHeight.GetFloat() ); - } - - float mScaleFactor; - float mPadding; - float mFixed; -}; + return fixed + ( parentSize - padding ) * scale; +} #if defined(DEBUG_ENABLED) // debugging support, very useful when new features are added or bugs are hunted down @@ -137,9 +113,8 @@ namespace Toolkit const Property::Index TableView::PROPERTY_ROWS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX ); const Property::Index TableView::PROPERTY_COLUMNS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 1 ); const Property::Index TableView::PROPERTY_CELL_PADDING( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 2 ); -const Property::Index TableView::PROPERTY_LAYOUT_ANIMATION_DURATION( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 3 ); -const Property::Index TableView::PROPERTY_LAYOUT_ROWS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 4 ); -const Property::Index TableView::PROPERTY_LAYOUT_COLUMNS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 5 ); +const Property::Index TableView::PROPERTY_LAYOUT_ROWS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 3 ); +const Property::Index TableView::PROPERTY_LAYOUT_COLUMNS( Internal::TableView::TABLEVIEW_PROPERTY_START_INDEX + 4 ); namespace Internal { @@ -166,9 +141,8 @@ TypeRegistration mType( typeid(Toolkit::TableView), typeid(Toolkit::Control), Cr PropertyRegistration property1( mType, "rows", Toolkit::TableView::PROPERTY_ROWS, Property::UNSIGNED_INTEGER, &TableView::SetProperty, &TableView::GetProperty ); PropertyRegistration property2( mType, "columns", Toolkit::TableView::PROPERTY_COLUMNS, Property::UNSIGNED_INTEGER, &TableView::SetProperty, &TableView::GetProperty ); PropertyRegistration property3( mType, "cell-padding", Toolkit::TableView::PROPERTY_CELL_PADDING, Property::VECTOR2, &TableView::SetProperty, &TableView::GetProperty ); -PropertyRegistration property4( mType, "layout-animation-duration", Toolkit::TableView::PROPERTY_LAYOUT_ANIMATION_DURATION, Property::FLOAT, &TableView::SetProperty, &TableView::GetProperty ); -PropertyRegistration property5( mType, "layout-rows", Toolkit::TableView::PROPERTY_LAYOUT_ROWS, Property::MAP, &TableView::SetProperty, &TableView::GetProperty ); -PropertyRegistration property6( mType, "layout-columns", Toolkit::TableView::PROPERTY_LAYOUT_COLUMNS, Property::MAP, &TableView::SetProperty, &TableView::GetProperty ); +PropertyRegistration property4( mType, "layout-rows", Toolkit::TableView::PROPERTY_LAYOUT_ROWS, Property::MAP, &TableView::SetProperty, &TableView::GetProperty ); +PropertyRegistration property5( mType, "layout-columns", Toolkit::TableView::PROPERTY_LAYOUT_COLUMNS, Property::MAP, &TableView::SetProperty, &TableView::GetProperty ); } // namespace @@ -615,16 +589,6 @@ float TableView::GetRelativeWidth( unsigned int columnIndex ) const return mRelativeWidths[ columnIndex ]; } -void TableView::SetLayoutAnimationDuration( float duration ) -{ - mConstraintDuration = duration; -} - -float TableView::GetLayoutAnimationDuration() -{ - return mConstraintDuration; -} - void TableView::OnRelayout( const Vector2& size, ActorSizeContainer& container ) { float fixedHeightsTotal = 0.0f; @@ -679,23 +643,8 @@ void TableView::OnRelayout( const Vector2& size, ActorSizeContainer& container ) Vector2 fixedPosition( ( colPos + 1.0f ) * mPadding.width + cumulatedFixedWidth, ( rowPos + 1.0f ) * mPadding.height + cumulatedFixedHeight ); - Constraint widthConstraint = Constraint::New( Actor::POSITION_X, - ParentSource( Actor::SIZE_WIDTH ), - RelativeToWidthOrHeight( relativePosition.x, positionPadding.x, fixedPosition.x ) ); - - Constraint heightConstraint = Constraint::New( Actor::POSITION_Y, - ParentSource( Actor::SIZE_HEIGHT ), - RelativeToWidthOrHeight( relativePosition.y, positionPadding.y, fixedPosition.y ) ); - - widthConstraint.SetApplyTime( mConstraintDuration ); - heightConstraint.SetApplyTime( mConstraintDuration ); - - // bake constrained position value if constraint is removed - widthConstraint.SetRemoveAction( Constraint::Bake ); - heightConstraint.SetRemoveAction( Constraint::Bake ); - - actor.ApplyConstraint( widthConstraint ); - actor.ApplyConstraint( heightConstraint ); + Vector3 actorPosition( RelativeToSize( relativePosition, positionPadding, fixedPosition, size ) ); + actor.SetPosition( actorPosition ); // 2. set size // constrain the actor size to be relative to the size of table @@ -731,29 +680,11 @@ void TableView::OnRelayout( const Vector2& size, ActorSizeContainer& container ) fixedSize.width += ( position.columnSpan - 1.0f ) * mPadding.width; fixedSize.height += ( position.rowSpan - 1.0f ) * mPadding.height; - RelativeToWidthOrHeight relativeWidthFunctor( relativeSize.x, sizePadding.x, fixedSize.x ); - RelativeToWidthOrHeight relativeHeightFunctor( relativeSize.y, sizePadding.y, fixedSize.y ); - - widthConstraint = Constraint::New( Actor::SIZE_WIDTH, - ParentSource( Actor::SIZE_WIDTH ), - relativeWidthFunctor ); - - heightConstraint = Constraint::New( Actor::SIZE_HEIGHT, - ParentSource( Actor::SIZE_HEIGHT ), - relativeHeightFunctor ); - - widthConstraint.SetApplyTime( mConstraintDuration ); - heightConstraint.SetApplyTime( mConstraintDuration ); - - // bake constrained size value if constraint is removed - widthConstraint.SetRemoveAction( Constraint::Bake ); - heightConstraint.SetRemoveAction( Constraint::Bake ); - - actor.ApplyConstraint( widthConstraint ); - actor.ApplyConstraint( heightConstraint ); + Vector2 actorSize( RelativeToSize( relativeSize, sizePadding, fixedSize, size ) ); + actor.SetSize(actorSize.x, actorSize.y); // Relayout Children - Relayout ( actor, Vector2( relativeWidthFunctor( size.width ), relativeHeightFunctor( size.height ) ), container ); + Relayout ( actor, actorSize, container ); } // for position we need to keep track of current fixed width and relative width // increase for next column @@ -807,11 +738,6 @@ void TableView::SetProperty( BaseObject* object, Property::Index index, const Pr tableViewImpl.SetCellPadding( value.Get() ); break; } - case Toolkit::TableView::PROPERTY_LAYOUT_ANIMATION_DURATION: - { - tableViewImpl.SetLayoutAnimationDuration( value.Get() ); - break; - } case Toolkit::TableView::PROPERTY_LAYOUT_ROWS: { SetHeightOrWidthProperty( tableViewImpl, &TableView::SetFixedHeight, &TableView::SetRelativeHeight, value ); @@ -852,11 +778,6 @@ Property::Value TableView::GetProperty( BaseObject* object, Property::Index inde value = tableViewImpl.GetCellPadding(); break; } - case Toolkit::TableView::PROPERTY_LAYOUT_ANIMATION_DURATION: - { - value = tableViewImpl.GetLayoutAnimationDuration(); - break; - } case Toolkit::TableView::PROPERTY_LAYOUT_ROWS: { value = tableViewImpl.GetRowHeightsPropertyValue(); @@ -953,8 +874,7 @@ void TableView::OnControlChildRemove( Actor& child ) TableView::TableView( unsigned int initialRows, unsigned int initialColumns ) : Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ), mCellData( initialRows, initialColumns ), - mLayoutingChild( false ), - mConstraintDuration( DEFAULT_CONSTRAINT_DURATION ) + mLayoutingChild( false ) { SetKeyboardNavigationSupport( true ); ResizeContainers( initialRows, initialColumns );