X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=797ae32c87998aea686b36077e3394ad239ff059;hb=4f4ab5b156cd1dfd274b1c660e836f575362f784;hp=9b46fe200a8be322272e1d55c9b9fb508450eabf;hpb=517dab63fca9d69d49a68c8763fe477f53cc6d5f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 9b46fe2..797ae32 100755 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -2975,6 +2975,7 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent ) else { DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::KeyEvent %p keyString %s\n", this, keyString.c_str() ); + if (!IsEditable()) return false; if( !keyString.empty() ) { @@ -3213,6 +3214,26 @@ Uint32Pair Controller::GetTextSelectionRange() const return mImpl->GetTextSelectionRange(); } +void Controller::SelectWholeText() +{ + SelectEvent( 0.f, 0.f, SelectionType::ALL ); +} + +void Controller::SelectNone() +{ + SelectEvent( 0.f, 0.f, SelectionType::NONE ); +} + +string Controller::GetSelectedText() const +{ + string text; + if( EventData::SELECTING == mImpl->mEventData->mState ) + { + mImpl->RetrieveSelection( text, false ); + } + return text; +} + InputMethodContext::CallbackData Controller::OnInputMethodContextEvent( InputMethodContext& inputMethodContext, const InputMethodContext::EventData& inputMethodContextEvent ) { // Whether the text needs to be relaid-out. @@ -3368,6 +3389,20 @@ void Controller::AddDecoration( Actor& actor, bool needsClipping ) } } +bool Controller::IsEditable() const +{ + return mImpl->IsEditable(); +} + +void Controller::SetEditable( bool editable ) +{ + mImpl->SetEditable( editable ); + if(mImpl->mEventData && mImpl->mEventData->mDecorator) + { + mImpl->mEventData->mDecorator->SetEditable( editable ); + } +} + void Controller::DecorationEvent( HandleType handleType, HandleState state, float x, float y ) { DALI_ASSERT_DEBUG( mImpl->mEventData && "Unexpected DecorationEvent" ); @@ -3435,6 +3470,7 @@ void Controller::TextPopupButtonTouched( Dali::Toolkit::TextSelectionPopup::Butt { case Toolkit::TextSelectionPopup::CUT: { + if (!IsEditable()) return; mImpl->SendSelectionToClipboard( true ); // Synchronous call to modify text mImpl->mOperationsPending = ALL_OPERATIONS; @@ -3910,16 +3946,6 @@ bool Controller::RemoveSelectedText() return textRemoved; } -std::string Controller::GetSelectedText() -{ - std::string text; - if( EventData::SELECTING == mImpl->mEventData->mState ) - { - mImpl->RetrieveSelection( text, false ); - } - return text; -} - // private : Relayout. bool Controller::DoRelayout( const Size& size, @@ -4224,6 +4250,8 @@ void Controller::TextDeletedEvent() return; } + if (!IsEditable()) return; + mImpl->mEventData->mCheckScrollAmount = true; // The natural size needs to be re-calculated. @@ -4247,6 +4275,8 @@ bool Controller::DeleteEvent( int keyCode ) return removed; } + if (!IsEditable()) return false; + // InputMethodContext is no longer handling key-events mImpl->ClearPreEditFlag();