diff --git a/examples/text-label/text-label-example.cpp b/examples/text-label/text-label-example.cpp index b47e56e..5952d59 100644 --- a/examples/text-label/text-label-example.cpp +++ b/examples/text-label/text-label-example.cpp @@ -22,6 +22,7 @@ // EXTERNAL INCLUDES #include +#include #include #include #include @@ -114,6 +115,7 @@ public: mLabel(), mContainer(), mGrabCorner(), + mBorder(), mPanGestureDetector(), mLayoutSize(), mLanguageId( 0u ), @@ -164,8 +166,7 @@ public: mLabel.SetName( "TextLabel" ); mLabel.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - mLabel.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); - mLabel.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT ); + mLabel.SetSize(mLayoutSize); mLabel.SetProperty( TextLabel::Property::MULTI_LINE, true ); mLabel.SetProperty( DevelTextLabel::Property::TEXT_COLOR_ANIMATABLE, Color::GREEN ); mLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 1.0f, 1.0f ) ); @@ -173,6 +174,22 @@ public: mLabel.SetBackgroundColor( Color::WHITE ); mContainer.Add( mLabel ); + // Add a border for the container so you can see the container is being resized while grabbing the handle. + mBorder = Control::New(); + mBorder.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + mBorder.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + mBorder.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT ); + + Dali::Property::Map border; + border.Insert( Visual::Property::TYPE, Visual::BORDER ); + border.Insert( BorderVisual::Property::COLOR, Color::WHITE ); + border.Insert( BorderVisual::Property::SIZE, 2.f ); + mBorder.SetProperty( Control::Property::BACKGROUND, border ); + mContainer.Add( mBorder ); + mBorder.SetVisible(false); + + DevelActor::RaiseToTop(mGrabCorner); + mHueAngleIndex = mLabel.RegisterProperty( "hue", 0.0f ); Renderer bgRenderer = mLabel.GetRendererAt(0); mOverrideMixColorIndex = DevelHandle::GetPropertyIndex( bgRenderer, ColorVisual::Property::MIX_COLOR ); @@ -212,6 +229,9 @@ public: { mLayoutSize.y = 2.0f; } + + // Only show the border during the panning + mBorder.SetVisible(true); } mLayoutSize.x += gesture.displacement.x * 2.0f; @@ -226,6 +246,13 @@ public: mContainer.SetSize( clampedSize ); } + + if( gesture.state == Gesture::Cancelled || gesture.state == Gesture::Finished ) + { + // Resize the text label to match the container size when panning is finished + mLabel.SetSize(mLayoutSize); + mBorder.SetVisible(false); + } } /** @@ -350,6 +377,7 @@ private: Control mContainer; Control mGrabCorner; + Control mBorder; PanGestureDetector mPanGestureDetector;