X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Factors%2Factor-impl.cpp;h=68d81d4b9cc6cf02007ef680ec042f7cf04a442d;hb=f69d08dd44c73b302d0f67ceb51bcd60138874f4;hp=1f0fe499a036db1013bc79da4b03b792259400dd;hpb=e68a638bd0697215334042c53c47fc98ce979fa3;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/actors/actor-impl.cpp b/dali/internal/event/actors/actor-impl.cpp index 1f0fe49..68d81d4 100644 --- a/dali/internal/event/actors/actor-impl.cpp +++ b/dali/internal/event/actors/actor-impl.cpp @@ -200,7 +200,6 @@ DALI_PROPERTY( "minimumSize", VECTOR2, true, false, false, Dali::Actor DALI_PROPERTY( "maximumSize", VECTOR2, true, false, false, Dali::Actor::Property::MAXIMUM_SIZE ) DALI_PROPERTY( "inheritPosition", BOOLEAN, true, false, false, Dali::Actor::Property::INHERIT_POSITION ) DALI_PROPERTY( "clippingMode", STRING, true, false, false, Dali::Actor::Property::CLIPPING_MODE ) -DALI_PROPERTY( "batchParent", BOOLEAN, true, false, false, Dali::DevelActor::Property::BATCH_PARENT ) DALI_PROPERTY( "siblingOrder", INTEGER, true, false, false, Dali::DevelActor::Property::SIBLING_ORDER ) DALI_PROPERTY_TABLE_END( DEFAULT_ACTOR_PROPERTY_START_INDEX ) @@ -1296,6 +1295,9 @@ void Actor::SetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimensio { EnsureRelayoutData(); + ResizePolicy::Type originalWidthPolicy = GetResizePolicy(Dimension::WIDTH); + ResizePolicy::Type originalHeightPolicy = GetResizePolicy(Dimension::HEIGHT); + for( unsigned int i = 0; i < Dimension::DIMENSION_COUNT; ++i ) { if( dimension & ( 1 << i ) ) @@ -1320,6 +1322,34 @@ void Actor::SetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimensio // If calling SetResizePolicy, assume we want relayout enabled SetRelayoutEnabled( true ); + // If the resize policy is set to be FIXED, the preferred size + // should be overrided by the target size. Otherwise the target + // size should be overrided by the preferred size. + + if( dimension & Dimension::WIDTH ) + { + if( originalWidthPolicy != ResizePolicy::FIXED && policy == ResizePolicy::FIXED ) + { + mRelayoutData->preferredSize.width = mTargetSize.width; + } + else if( originalWidthPolicy == ResizePolicy::FIXED && policy != ResizePolicy::FIXED ) + { + mTargetSize.width = mRelayoutData->preferredSize.width; + } + } + + if( dimension & Dimension::HEIGHT ) + { + if( originalHeightPolicy != ResizePolicy::FIXED && policy == ResizePolicy::FIXED ) + { + mRelayoutData->preferredSize.height = mTargetSize.height; + } + else if( originalHeightPolicy == ResizePolicy::FIXED && policy != ResizePolicy::FIXED ) + { + mTargetSize.height = mRelayoutData->preferredSize.height; + } + } + OnSetResizePolicy( policy, dimension ); // Trigger relayout on this control @@ -1992,8 +2022,7 @@ Actor::Actor( DerivedType derivedType ) mDrawMode( DrawMode::NORMAL ), mPositionInheritanceMode( Node::DEFAULT_POSITION_INHERITANCE_MODE ), mColorMode( Node::DEFAULT_COLOR_MODE ), - mClippingMode( ClippingMode::DISABLED ), - mIsBatchParent( false ) + mClippingMode( ClippingMode::DISABLED ) { } @@ -2656,21 +2685,6 @@ void Actor::SetDefaultProperty( Property::Index index, const Property::Value& pr break; } - case Dali::DevelActor::Property::BATCH_PARENT: - { - bool value; - - if( property.Get( value ) ) - { - if( value != mIsBatchParent ) - { - mIsBatchParent = value; - SetIsBatchParentMessage( GetEventThreadServices(), *mNode, mIsBatchParent ); - } - } - break; - } - case Dali::DevelActor::Property::SIBLING_ORDER: { int value; @@ -2928,19 +2942,48 @@ Property::Value Actor::GetDefaultProperty( Property::Index index ) const case Dali::Actor::Property::SIZE: { - value = GetTargetSize(); + Vector3 size = GetTargetSize(); + + // Should return preferred size if size is fixed as set by SetSize + if( GetResizePolicy( Dimension::WIDTH ) == ResizePolicy::FIXED ) + { + size.width = GetPreferredSize().width; + } + if( GetResizePolicy( Dimension::HEIGHT ) == ResizePolicy::FIXED ) + { + size.height = GetPreferredSize().height; + } + + value = size; + break; } case Dali::Actor::Property::SIZE_WIDTH: { - value = GetTargetSize().width; + if( GetResizePolicy( Dimension::WIDTH ) == ResizePolicy::FIXED ) + { + // Should return preferred size if size is fixed as set by SetSize + value = GetPreferredSize().width; + } + else + { + value = GetTargetSize().width; + } break; } case Dali::Actor::Property::SIZE_HEIGHT: { - value = GetTargetSize().height; + if( GetResizePolicy( Dimension::HEIGHT ) == ResizePolicy::FIXED ) + { + // Should return preferred size if size is fixed as set by SetSize + value = GetPreferredSize().height; + } + else + { + value = GetTargetSize().height; + } break; } @@ -3198,12 +3241,6 @@ Property::Value Actor::GetDefaultProperty( Property::Index index ) const break; } - case Dali::DevelActor::Property::BATCH_PARENT: - { - value = mIsBatchParent; - break; - } - case Dali::DevelActor::Property::SIBLING_ORDER: { value = static_cast(mSiblingOrder);