X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Ftext-label%2Ftext-label-example.cpp;h=b2ad9a5b85dafec4eda13eb91cdb2bb9270626da;hb=ff961cccdcbf1c30b0f53b0da027df855cde2b63;hp=6271cc747a6008346d3d156c974957ad0b2aef8d;hpb=8054811cf315080dc444dffe373d47c634cd3163;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/text-label/text-label-example.cpp b/examples/text-label/text-label-example.cpp index 6271cc7..b2ad9a5 100644 --- a/examples/text-label/text-label-example.cpp +++ b/examples/text-label/text-label-example.cpp @@ -22,7 +22,7 @@ // EXTERNAL INCLUDES #include -#include +#include // INTERNAL INCLUDES #include "shared/multi-language-strings.h" @@ -34,10 +34,11 @@ using namespace MultiLanguageStrings; namespace { - const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "button-up.9.png"; + const char* const BACKGROUND_IMAGE = DEMO_IMAGE_DIR "grab-handle.png"; const unsigned int KEY_ZERO = 10; const unsigned int KEY_ONE = 11; + const unsigned int KEY_F = 41; const unsigned int KEY_H = 43; const unsigned int KEY_V = 55; const unsigned int KEY_M = 58; @@ -96,8 +97,6 @@ public: */ void Create( Application& application ) { - DemoHelper::RequestThemeChange(); - Stage stage = Stage::GetCurrent(); stage.KeyEventSignal().Connect(this, &TextLabelExample::OnKeyEvent); @@ -106,21 +105,17 @@ public: mContainer = Control::New(); mContainer.SetName( "Container" ); mContainer.SetParentOrigin( ParentOrigin::CENTER ); - mContainer.SetResizePolicy( FIXED, ALL_DIMENSIONS ); mLayoutSize = Vector2(stageSize.width*0.6f, stageSize.width*0.6f); mContainer.SetSize( mLayoutSize ); - mContainer.SetBackgroundImage( ResourceImage::New( BACKGROUND_IMAGE ) ); - mContainer.GetChildAt(0).SetZ(-1.0f); + mContainer.SetDrawMode( DrawMode::OVERLAY_2D ); stage.Add( mContainer ); // Resize the center layout when the corner is grabbed - mGrabCorner = Control::New(); + mGrabCorner = ImageView::New( BACKGROUND_IMAGE ); mGrabCorner.SetName( "GrabCorner" ); - mGrabCorner.SetAnchorPoint( AnchorPoint::BOTTOM_RIGHT ); + mGrabCorner.SetAnchorPoint( AnchorPoint::TOP_CENTER ); mGrabCorner.SetParentOrigin( ParentOrigin::BOTTOM_RIGHT ); - mGrabCorner.SetResizePolicy( FIXED, ALL_DIMENSIONS ); - mGrabCorner.SetSize( Vector2(stageSize.width*0.1f, stageSize.width*0.1f) ); - mGrabCorner.SetZ(1.0f); + mGrabCorner.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); mContainer.Add( mGrabCorner ); mPanGestureDetector = PanGestureDetector::New(); @@ -130,11 +125,13 @@ public: mLabel = TextLabel::New( "A Quick Brown Fox Jumps Over The Lazy Dog" ); mLabel.SetName( "TextLabel" ); mLabel.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - mLabel.SetResizePolicy( FILL_TO_PARENT, WIDTH ); - mLabel.SetResizePolicy( DIMENSION_DEPENDENCY, HEIGHT ); + mLabel.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + mLabel.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT ); mLabel.SetProperty( TextLabel::Property::MULTI_LINE, true ); + mLabel.SetProperty( TextLabel::Property::TEXT_COLOR, Color::BLUE ); mLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 1.0f, 1.0f ) ); mLabel.SetProperty( TextLabel::Property::SHADOW_COLOR, Color::BLACK ); + mLabel.SetBackgroundColor( Color::WHITE ); mContainer.Add( mLabel ); Property::Value labelText = mLabel.GetProperty( TextLabel::Property::TEXT ); @@ -144,15 +141,29 @@ public: // Resize the text-label with pan gesture void OnPan( Actor actor, const PanGesture& gesture ) { + // Reset mLayoutSize when the pan starts + if( gesture.state == Gesture::Started ) + { + if( mLayoutSize.x < 2.0f ) + { + mLayoutSize.x = 2.0f; + } + + if( mLayoutSize.y < 2.0f ) + { + mLayoutSize.y = 2.0f; + } + } + mLayoutSize.x += gesture.displacement.x * 2.0f; mLayoutSize.y += gesture.displacement.y * 2.0f; - if( mLayoutSize.x >= 2.0f && + if( mLayoutSize.x >= 2.0f || mLayoutSize.y >= 2.0f ) { // Avoid pixel mis-alignment issue - Vector2 clampedSize = Vector2( ConvertToEven(static_cast(mLayoutSize.x)), - ConvertToEven(static_cast(mLayoutSize.y)) ); + Vector2 clampedSize = Vector2( std::max( ConvertToEven( static_cast( mLayoutSize.x )), 2 ), + std::max( ConvertToEven( static_cast( mLayoutSize.y )), 2 ) ); mContainer.SetSize( clampedSize ); } @@ -173,13 +184,26 @@ public: { switch( event.keyCode ) { + // Select rendering back-end case KEY_ZERO: // fall through case KEY_ONE: { mLabel.SetProperty( TextLabel::Property::RENDERING_BACKEND, event.keyCode - 10 ); break; } - case KEY_H: + case KEY_F: // Fill vertically + { + if( ResizePolicy::DIMENSION_DEPENDENCY == mLabel.GetResizePolicy(Dimension::HEIGHT) ) + { + mLabel.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT ); + } + else + { + mLabel.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT ); + } + break; + } + case KEY_H: // Horizontal alignment { if( ++mAlignment >= H_ALIGNMENT_STRING_COUNT ) { @@ -189,7 +213,7 @@ public: mLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, H_ALIGNMENT_STRING_TABLE[ mAlignment ] ); break; } - case KEY_V: + case KEY_V: // Vertical alignment { if( ++mAlignment >= V_ALIGNMENT_STRING_COUNT ) { @@ -199,13 +223,13 @@ public: mLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, V_ALIGNMENT_STRING_TABLE[ mAlignment ] ); break; } - case KEY_M: + case KEY_M: // Multi-line { bool multiLine = mLabel.GetProperty( TextLabel::Property::MULTI_LINE ); mLabel.SetProperty( TextLabel::Property::MULTI_LINE, !multiLine ); break; } - case KEY_L: + case KEY_L: // Language { const Language& language = LANGUAGES[ mLanguageId ]; @@ -217,7 +241,7 @@ public: } break; } - case KEY_S: + case KEY_S: // Shadow color { if( Color::BLACK == mLabel.GetProperty( TextLabel::Property::SHADOW_COLOR ) ) { @@ -229,12 +253,12 @@ public: } break; } - case KEY_PLUS: + case KEY_PLUS: // Increase shadow offset { mLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, mLabel.GetProperty( TextLabel::Property::SHADOW_OFFSET ) + Vector2( 1.0f, 1.0f ) ); break; } - case KEY_MINUS: + case KEY_MINUS: // Decrease shadow offset { mLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, mLabel.GetProperty( TextLabel::Property::SHADOW_OFFSET ) - Vector2( 1.0f, 1.0f ) ); break; @@ -252,7 +276,7 @@ private: TextLabel mLabel; Control mContainer; - Actor mGrabCorner; + Control mGrabCorner; PanGestureDetector mPanGestureDetector; @@ -270,9 +294,9 @@ void RunTest( Application& application ) } /** Entry point for Linux & Tizen applications */ -int main( int argc, char **argv ) +int DALI_EXPORT_API main( int argc, char **argv ) { - Application application = Application::New( &argc, &argv ); + Application application = Application::New( &argc, &argv, DEMO_THEME_PATH ); RunTest( application );