X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-field-impl.cpp;h=7e2d14323fcb2f9340ac5aaabc4368bc6e2b1d91;hb=cbda2de83c5025276c35d69044934ab1258b4998;hp=6a1f1c9d67c7af4005b519df5188ed727c6a6d2c;hpb=99793f1e33400c0ea9421015e789d8924c7a2a6b;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp index 6a1f1c9..7e2d143 100755 --- a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp @@ -134,6 +134,8 @@ DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "enableShiftSelection", DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "enableGrabHandle", BOOLEAN, ENABLE_GRAB_HANDLE ) DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "matchSystemLanguageDirection", BOOLEAN, MATCH_SYSTEM_LANGUAGE_DIRECTION ) DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "enableGrabHandlePopup", BOOLEAN, ENABLE_GRAB_HANDLE_POPUP ) +DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "textBackground", VECTOR4, BACKGROUND ) +DALI_DEVEL_PROPERTY_REGISTRATION_READ_ONLY( Toolkit, TextField, "selectedText", STRING, SELECTED_TEXT ) DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "textChanged", SIGNAL_TEXT_CHANGED ) DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "maxLengthReached", SIGNAL_MAX_LENGTH_REACHED ) @@ -767,7 +769,7 @@ void TextField::SetProperty( BaseObject* object, Property::Index index, const Pr } case Toolkit::DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP: { - if (impl.mController) + if( impl.mController ) { const bool grabHandlePopupEnabled = value.Get(); DALI_LOG_INFO(gLogFilter, Debug::General, "TextField %p ENABLE_GRAB_HANDLE_POPUP %d\n", impl.mController.Get(), grabHandlePopupEnabled); @@ -776,6 +778,18 @@ void TextField::SetProperty( BaseObject* object, Property::Index index, const Pr break; } } + case Toolkit::DevelTextField::Property::BACKGROUND: + { + if( impl.mController ) + { + const Vector4 backgroundColor = value.Get< Vector4 >(); + DALI_LOG_INFO( gLogFilter, Debug::General, "TextField %p BACKGROUND %f,%f,%f,%f\n", impl.mController.Get(), backgroundColor.r, backgroundColor.g, backgroundColor.b, backgroundColor.a ); + + impl.mController->SetBackgroundEnabled( true ); + impl.mController->SetBackgroundColor( backgroundColor ); + } + break; + } } // switch } // textfield } @@ -1185,12 +1199,28 @@ Property::Value TextField::GetProperty( BaseObject* object, Property::Index inde } case Toolkit::DevelTextField::Property::ENABLE_GRAB_HANDLE_POPUP: { - if (impl.mController) + if( impl.mController ) { value = impl.mController->IsGrabHandlePopupEnabled(); } break; } + case Toolkit::DevelTextField::Property::BACKGROUND: + { + if( impl.mController ) + { + value = impl.mController->GetBackgroundColor(); + } + break; + } + case Toolkit::DevelTextField::Property::SELECTED_TEXT: + { + if( impl.mController ) + { + value = impl.mController->GetSelectedText( ); + } + break; + } } //switch } @@ -1201,7 +1231,16 @@ void TextField::SelectWholeText() { if( mController && mController->IsShowingRealText() ) { - mController->SelectEvent( 0.f, 0.f, true ); + mController->SelectEvent( 0.f, 0.f, SelectionType::ALL ); + SetKeyInputFocus(); + } +} + +void TextField::SelectNone() +{ + if( mController && mController->IsShowingRealText() ) + { + mController->SelectEvent( 0.f, 0.f, SelectionType::NONE ); SetKeyInputFocus(); } } @@ -1395,11 +1434,11 @@ void TextField::OnRelayout( const Vector2& size, RelayoutContainer& container ) if( mStencil ) { - mStencil.SetPosition( padding.start, padding.top ); + mStencil.SetProperty( Actor::Property::POSITION, Vector2( padding.start, padding.top )); } if( mActiveLayer ) { - mActiveLayer.SetPosition( padding.start, padding.top ); + mActiveLayer.SetProperty( Actor::Property::POSITION, Vector2( padding.start, padding.top )); } const Text::Controller::UpdateTextType updateTextType = mController->Relayout( contentSize, layoutDirection ); @@ -1501,7 +1540,7 @@ void TextField::RenderText( Text::Controller::UpdateTextType updateTextType ) renderableActorPositionY = scrollOffset.y + padding.top; } - mRenderableActor.SetPosition( renderableActorPositionX, renderableActorPositionY ); + mRenderableActor.SetProperty( Actor::Property::POSITION, Vector2( renderableActorPositionX, renderableActorPositionY )); // Make sure the actors are parented correctly with/without clipping Actor self = mStencil ? mStencil : Self(); @@ -1516,7 +1555,7 @@ void TextField::RenderText( Text::Controller::UpdateTextType updateTextType ) self.Add( *it ); it->LowerToBottom(); - if ( it->GetName() == "HighlightActor" ) + if ( it->GetProperty< std::string >( Dali::Actor::Property::NAME ) == "HighlightActor" ) { highlightActor = *it; } @@ -1530,13 +1569,13 @@ void TextField::RenderText( Text::Controller::UpdateTextType updateTextType ) if ( mDecorator && mDecorator->IsHighlightVisible() ) { self.Add( mBackgroundActor ); - mBackgroundActor.SetPosition( renderableActorPositionX, renderableActorPositionY); // In text field's coords. + mBackgroundActor.SetProperty( Actor::Property::POSITION, Vector2( renderableActorPositionX, renderableActorPositionY) ); // In text field's coords. mBackgroundActor.LowerBelow( highlightActor ); } else { mRenderableActor.Add( mBackgroundActor ); - mBackgroundActor.SetPosition( 0.0f, 0.0f ); // In renderable actor's coords. + mBackgroundActor.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, 0.0f ) ); // In renderable actor's coords. mBackgroundActor.LowerToBottom(); } } @@ -1731,8 +1770,8 @@ void TextField::AddDecoration( Actor& actor, bool needsClipping ) } else { - actor.SetParentOrigin( ParentOrigin::TOP_LEFT ); - actor.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); + actor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); Self().Add( actor ); mActiveLayer = actor; } @@ -1778,8 +1817,8 @@ void TextField::EnableClipping() { // Creates an extra control to be used as stencil buffer. mStencil = Control::New(); - mStencil.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - mStencil.SetParentOrigin( ParentOrigin::TOP_LEFT ); + mStencil.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT ); + mStencil.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT ); // Creates a background visual. Even if the color is transparent it updates the stencil. mStencil.SetProperty( Toolkit::Control::Property::BACKGROUND,