X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=11a9161097836230960985f235b048101fea3ebe;hp=6dfb99e6493a939c0382badf5447e3dee46d44d1;hb=406208364fe0ee31f31f475ba7ee7709e56d3e27;hpb=31b27643128652fc4a91383393907ac7b781ff97 diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 6dfb99e..11a9161 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -31,6 +31,7 @@ #include #include #include +#include namespace { @@ -100,11 +101,23 @@ FontDescriptionRun& UpdateSelectionFontStyleRun( EventData* eventData, // public : Constructor. -ControllerPtr Controller::New( ControlInterface& controlInterface ) +ControllerPtr Controller::New() +{ + return ControllerPtr( new Controller() ); +} + +ControllerPtr Controller::New( ControlInterface* controlInterface ) { return ControllerPtr( new Controller( controlInterface ) ); } +ControllerPtr Controller::New( ControlInterface* controlInterface, + EditableControlInterface* editableControlInterface ) +{ + return ControllerPtr( new Controller( controlInterface, + editableControlInterface ) ); +} + // public : Configure the text controller. void Controller::EnableTextInput( DecoratorPtr decorator ) @@ -140,9 +153,9 @@ void Controller::SetAutoScrollEnabled( bool enable ) { DALI_LOG_INFO( gLogFilter, Debug::General, "Controller::SetAutoScrollEnabled[%s] SingleBox[%s]-> [%p]\n", (enable)?"true":"false", ( mImpl->mLayoutEngine.GetLayout() == LayoutEngine::SINGLE_LINE_BOX)?"true":"false", this ); - if ( mImpl->mLayoutEngine.GetLayout() == LayoutEngine::SINGLE_LINE_BOX ) + if( mImpl->mLayoutEngine.GetLayout() == LayoutEngine::SINGLE_LINE_BOX ) { - if ( enable ) + if( enable ) { DALI_LOG_INFO( gLogFilter, Debug::General, "Controller::SetAutoScrollEnabled for SINGLE_LINE_BOX\n" ); mImpl->mOperationsPending = static_cast( mImpl->mOperationsPending | @@ -163,21 +176,21 @@ void Controller::SetAutoScrollEnabled( bool enable ) REORDER ); } - mImpl->mAutoScrollEnabled = enable; + mImpl->mIsAutoScrollEnabled = enable; mImpl->RequestRelayout(); } else { DALI_LOG_WARNING( "Attempted AutoScrolling on a non SINGLE_LINE_BOX, request ignored\n" ); - mImpl->mAutoScrollEnabled = false; + mImpl->mIsAutoScrollEnabled = false; } } bool Controller::IsAutoScrollEnabled() const { - DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::IsAutoScrollEnabled[%s]\n", (mImpl->mAutoScrollEnabled)?"true":"false" ); + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::IsAutoScrollEnabled[%s]\n", mImpl->mIsAutoScrollEnabled?"true":"false" ); - return mImpl->mAutoScrollEnabled; + return mImpl->mIsAutoScrollEnabled; } CharacterDirection Controller::GetAutoScrollDirection() const @@ -460,8 +473,11 @@ void Controller::SetText( const std::string& text ) mImpl->mEventData->mEventQueue.clear(); } - // Do this last since it provides callbacks into application code - mImpl->mControlInterface.TextChanged(); + // Do this last since it provides callbacks into application code. + if( NULL != mImpl->mEditableControlInterface ) + { + mImpl->mEditableControlInterface->TextChanged(); + } } void Controller::GetText( std::string& text ) const @@ -742,26 +758,6 @@ const Vector4& Controller::GetShadowColor() const return mImpl->mVisualModel->GetShadowColor(); } -void Controller::SetDefaultShadowProperties( const std::string& shadowProperties ) -{ - if( NULL == mImpl->mShadowDefaults ) - { - mImpl->mShadowDefaults = new ShadowDefaults(); - } - - mImpl->mShadowDefaults->properties = shadowProperties; -} - -const std::string& Controller::GetDefaultShadowProperties() const -{ - if( NULL != mImpl->mShadowDefaults ) - { - return mImpl->mShadowDefaults->properties; - } - - return EMPTY_STRING; -} - void Controller::SetUnderlineColor( const Vector4& color ) { mImpl->mVisualModel->SetUnderlineColor( color ); @@ -798,26 +794,6 @@ float Controller::GetUnderlineHeight() const return mImpl->mVisualModel->GetUnderlineHeight(); } -void Controller::SetDefaultUnderlineProperties( const std::string& underlineProperties ) -{ - if( NULL == mImpl->mUnderlineDefaults ) - { - mImpl->mUnderlineDefaults = new UnderlineDefaults(); - } - - mImpl->mUnderlineDefaults->properties = underlineProperties; -} - -const std::string& Controller::GetDefaultUnderlineProperties() const -{ - if( NULL != mImpl->mUnderlineDefaults ) - { - return mImpl->mUnderlineDefaults->properties; - } - - return EMPTY_STRING; -} - void Controller::SetDefaultEmbossProperties( const std::string& embossProperties ) { if( NULL == mImpl->mEmbossDefaults ) @@ -1262,7 +1238,7 @@ const std::string& Controller::GetInputShadowProperties() const return mImpl->mEventData->mInputStyle.shadowProperties; } - return GetDefaultShadowProperties(); + return EMPTY_STRING; } void Controller::SetInputUnderlineProperties( const std::string& underlineProperties ) @@ -1280,7 +1256,7 @@ const std::string& Controller::GetInputUnderlineProperties() const return mImpl->mEventData->mInputStyle.underlineProperties; } - return GetDefaultUnderlineProperties(); + return EMPTY_STRING; } void Controller::SetInputEmbossProperties( const std::string& embossProperties ) @@ -1477,7 +1453,7 @@ float Controller::GetHeightForWidth( float width ) Controller::UpdateTextType Controller::Relayout( const Size& size ) { - DALI_LOG_INFO( gLogFilter, Debug::Verbose, "-->Controller::Relayout %p size %f,%f, autoScroll[%s]\n", this, size.width, size.height, (mImpl->mAutoScrollEnabled)?"true":"false" ); + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "-->Controller::Relayout %p size %f,%f, autoScroll[%s]\n", this, size.width, size.height, mImpl->mIsAutoScrollEnabled ?"true":"false" ); UpdateTextType updateTextType = NONE_UPDATED; @@ -1583,6 +1559,11 @@ Controller::UpdateTextType Controller::Relayout( const Size& size ) return updateTextType; } +void Controller::RequestRelayout() +{ + mImpl->RequestRelayout(); +} + // public : Input style change signals. bool Controller::IsInputStyleChangedSignalsQueueEmpty() @@ -1605,8 +1586,11 @@ void Controller::ProcessInputStyleChangedSignals() { const InputStyle::Mask mask = *it; - // Emit the input style changed signal. - mImpl->mControlInterface.InputStyleChanged( mask ); + if( NULL != mImpl->mEditableControlInterface ) + { + // Emit the input style changed signal. + mImpl->mEditableControlInterface->InputStyleChanged( mask ); + } } mImpl->mEventData->mInputStyleChangedQueue.Clear(); @@ -1731,10 +1715,11 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent ) mImpl->RequestRelayout(); } - if( textChanged ) + if( textChanged && + ( NULL != mImpl->mEditableControlInterface ) ) { // Do this last since it provides callbacks into application code - mImpl->mControlInterface.TextChanged(); + mImpl->mEditableControlInterface->TextChanged(); } return true; @@ -1965,10 +1950,11 @@ ImfManager::ImfCallbackData Controller::OnImfEvent( ImfManager& imfManager, cons ImfManager::ImfCallbackData callbackData( ( retrieveText || retrieveCursor ), cursorPosition, text, false ); - if( requestRelayout ) + if( requestRelayout && + ( NULL != mImpl->mEditableControlInterface ) ) { // Do this last since it provides callbacks into application code - mImpl->mControlInterface.TextChanged(); + mImpl->mEditableControlInterface->TextChanged(); } return callbackData; @@ -2001,7 +1987,10 @@ void Controller::GetTargetSize( Vector2& targetSize ) void Controller::AddDecoration( Actor& actor, bool needsClipping ) { - mImpl->mControlInterface.AddDecoration( actor, needsClipping ); + if( NULL != mImpl->mEditableControlInterface ) + { + mImpl->mEditableControlInterface->AddDecoration( actor, needsClipping ); + } } void Controller::DecorationEvent( HandleType handleType, HandleState state, float x, float y ) @@ -2088,7 +2077,11 @@ void Controller::TextPopupButtonTouched( Dali::Toolkit::TextSelectionPopup::Butt mImpl->mEventData->mScrollAfterDelete = true; mImpl->RequestRelayout(); - mImpl->mControlInterface.TextChanged(); + + if( NULL != mImpl->mEditableControlInterface ) + { + mImpl->mEditableControlInterface->TextChanged(); + } break; } case Toolkit::TextSelectionPopup::COPY: @@ -2375,8 +2368,11 @@ void Controller::InsertText( const std::string& text, Controller::InsertType typ mImpl->ResetImfManager(); - // Do this last since it provides callbacks into application code - mImpl->mControlInterface.MaxLengthReached(); + if( NULL != mImpl->mEditableControlInterface ) + { + // Do this last since it provides callbacks into application code + mImpl->mEditableControlInterface->MaxLengthReached(); + } } } @@ -2386,8 +2382,11 @@ void Controller::PasteText( const std::string& stringToPaste ) mImpl->ChangeState( EventData::EDITING ); mImpl->RequestRelayout(); - // Do this last since it provides callbacks into application code - mImpl->mControlInterface.TextChanged(); + if( NULL != mImpl->mEditableControlInterface ) + { + // Do this last since it provides callbacks into application code + mImpl->mEditableControlInterface->TextChanged(); + } } bool Controller::RemoveText( int cursorOffset, @@ -3011,10 +3010,22 @@ void Controller::ResetScrollPosition() // private : Private contructors & copy operator. -Controller::Controller( ControlInterface& controlInterface ) +Controller::Controller() : mImpl( NULL ) { - mImpl = new Controller::Impl( controlInterface ); + mImpl = new Controller::Impl( NULL, NULL ); +} + +Controller::Controller( ControlInterface* controlInterface ) +{ + mImpl = new Controller::Impl( controlInterface, NULL ); +} + +Controller::Controller( ControlInterface* controlInterface, + EditableControlInterface* editableControlInterface ) +{ + mImpl = new Controller::Impl( controlInterface, + editableControlInterface ); } // The copy constructor and operator are left unimplemented.