X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fdecorator%2Ftext-decorator.cpp;h=7016759914a5b762a63049069031db6c77fc1268;hp=e3691581b1d577220b505b4c458ee5777d5fd83f;hb=d3a888997fb0ab17fc994eed2854bcad8be32623;hpb=14455946a98df9b2f7cc5e9d5a972250da70a003 diff --git a/dali-toolkit/internal/text/decorator/text-decorator.cpp b/dali-toolkit/internal/text/decorator/text-decorator.cpp index e369158..7016759 100644 --- a/dali-toolkit/internal/text/decorator/text-decorator.cpp +++ b/dali-toolkit/internal/text/decorator/text-decorator.cpp @@ -266,7 +266,8 @@ struct Decorator::Impl : public ConnectionTracker mHorizontalScrollingEnabled( false ), mVerticalScrollingEnabled( false ), mSmoothHandlePanEnabled( false ), - mIsHighlightBoxActive( false ) + mIsHighlightBoxActive( false ), + mHidePrimaryCursorAndGrabHandle( false ) { mQuadVertexFormat[ "aPosition" ] = Property::VECTOR2; mHighlightShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); @@ -290,7 +291,7 @@ struct Decorator::Impl : public ConnectionTracker if( mPrimaryCursor ) { const CursorImpl& cursor = mCursor[PRIMARY_CURSOR]; - mPrimaryCursorVisible = ( ( mControlSize.width - ( cursor.position.x + mCursorWidth ) > -Math::MACHINE_EPSILON_1000 ) && + mPrimaryCursorVisible = (!mHidePrimaryCursorAndGrabHandle) && ( ( mControlSize.width - ( cursor.position.x + mCursorWidth ) > -Math::MACHINE_EPSILON_1000 ) && ( cursor.position.x > -Math::MACHINE_EPSILON_1000 ) && ( mControlSize.height - ( cursor.position.y + cursor.cursorHeight ) > -Math::MACHINE_EPSILON_1000 ) && ( cursor.position.y > -Math::MACHINE_EPSILON_1000 ) ); @@ -330,7 +331,7 @@ struct Decorator::Impl : public ConnectionTracker grabHandle.verticallyVisible = ( ( ( mControlSize.height - grabHandle.lineHeight ) - grabHandle.position.y > -Math::MACHINE_EPSILON_1000 ) && ( grabHandle.position.y > -Math::MACHINE_EPSILON_1000 ) ); - const bool isVisible = grabHandle.horizontallyVisible && grabHandle.verticallyVisible; + const bool isVisible = grabHandle.horizontallyVisible && grabHandle.verticallyVisible && (!mHidePrimaryCursorAndGrabHandle); if( isVisible ) { CreateGrabHandle(); @@ -767,7 +768,7 @@ struct Decorator::Impl : public ConnectionTracker { if( !mActiveLayer ) { - mActiveLayer = Layer::New(); + mActiveLayer = Actor::New(); #ifdef DECORATOR_DEBUG mActiveLayer.SetProperty( Actor::Property::NAME, "ActiveLayerActor" ); #endif @@ -827,7 +828,7 @@ struct Decorator::Impl : public ConnectionTracker grabHandle.actor.Add( grabHandle.grabArea ); grabHandle.actor.SetProperty( Actor::Property::COLOR, mHandleColor ); - grabHandle.grabArea.TouchSignal().Connect( this, &Decorator::Impl::OnGrabHandleTouched ); + grabHandle.grabArea.TouchedSignal().Connect( this, &Decorator::Impl::OnGrabHandleTouched ); // The grab handle's actor is attached to the tap and long press detectors in order to consume these events. // Note that no callbacks are connected to any signal emitted by the tap and long press detectors. @@ -895,7 +896,7 @@ struct Decorator::Impl : public ConnectionTracker primary.grabArea.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER ); primary.grabArea.SetProperty( Actor::Property::SIZE_MODE_FACTOR, DEFAULT_SELECTION_HANDLE_RELATIVE_SIZE ); - primary.grabArea.TouchSignal().Connect( this, &Decorator::Impl::OnHandleOneTouched ); + primary.grabArea.TouchedSignal().Connect( this, &Decorator::Impl::OnHandleOneTouched ); // The handle's actor is attached to the tap and long press detectors in order to consume these events. // Note that no callbacks are connected to any signal emitted by the tap and long press detectors. @@ -939,7 +940,7 @@ struct Decorator::Impl : public ConnectionTracker secondary.grabArea.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER ); secondary.grabArea.SetProperty( Actor::Property::SIZE_MODE_FACTOR, DEFAULT_SELECTION_HANDLE_RELATIVE_SIZE ); - secondary.grabArea.TouchSignal().Connect( this, &Decorator::Impl::OnHandleTwoTouched ); + secondary.grabArea.TouchedSignal().Connect( this, &Decorator::Impl::OnHandleTwoTouched ); // The handle's actor is attached to the tap and long press detectors in order to consume these events. // Note that no callbacks are connected to any signal emitted by the tap and long press detectors. @@ -1259,8 +1260,8 @@ struct Decorator::Impl : public ConnectionTracker void DoPan( HandleImpl& handle, HandleType type, const PanGesture& gesture ) { - Gesture::State state = gesture.GetState(); - if( Gesture::Started == state ) + GestureState state = gesture.GetState(); + if( GestureState::STARTED == state ) { handle.grabDisplacementX = handle.grabDisplacementY = 0.f; @@ -1276,8 +1277,8 @@ struct Decorator::Impl : public ConnectionTracker const float y = handle.globalPosition.y + handle.grabDisplacementY + 0.5f * handle.lineHeight; const float yVerticallyFlippedCorrected = y - ( handle.verticallyFlippedOnTouch ? handle.lineHeight : 0.f ); - if( ( Gesture::Started == state ) || - ( Gesture::Continuing == state ) ) + if( ( GestureState::STARTED == state ) || + ( GestureState::CONTINUING == state ) ) { Vector2 targetSize; mController.GetTargetSize( targetSize ); @@ -1319,8 +1320,8 @@ struct Decorator::Impl : public ConnectionTracker mIsHandlePanning = true; } - else if( ( Gesture::Finished == state ) || - ( Gesture::Cancelled == state ) ) + else if( ( GestureState::FINISHED == state ) || + ( GestureState::CANCELLED == state ) ) { if( mScrollTimer && ( mScrollTimer.IsRunning() || mNotifyEndOfScroll ) ) @@ -1881,7 +1882,7 @@ struct Decorator::Impl : public ConnectionTracker Timer mCursorBlinkTimer; ///< Timer to signal cursor to blink Timer mScrollTimer; ///< Timer used to scroll the text when the grab handle is moved close to the edges. - Layer mActiveLayer; ///< Layer for active handles and alike that ensures they are above all else. + Actor mActiveLayer; ///< Actor for active handles and alike that ensures they are above all else. PropertyNotification mHandleVerticalLessThanNotification; ///< Notifies when the 'y' coord of the active layer is less than a given value. PropertyNotification mHandleVerticalGreaterThanNotification; ///< Notifies when the 'y' coord of the active layer is grater than a given value. PropertyNotification mHandleHorizontalLessThanNotification; ///< Notifies when the 'x' coord of the active layer is less than a given value. @@ -1945,6 +1946,7 @@ struct Decorator::Impl : public ConnectionTracker bool mVerticalScrollingEnabled : 1; ///< Whether the vertical scrolling is enabled. bool mSmoothHandlePanEnabled : 1; ///< Whether to pan smoothly the handles. bool mIsHighlightBoxActive : 1; ///< Whether the highlight box is active. + bool mHidePrimaryCursorAndGrabHandle : 1; ///< Whether the primary cursor and grab are hidden always. }; DecoratorPtr Decorator::New( ControllerInterface& controller, @@ -2093,6 +2095,11 @@ int Decorator::GetCursorWidth() const return static_cast( mImpl->mCursorWidth ); } +void Decorator::SetEditable( bool editable ) +{ + mImpl->mHidePrimaryCursorAndGrabHandle = !editable; + mImpl->Relayout( mImpl->mControlSize ); +} /** Handles **/ void Decorator::SetHandleActive( HandleType handleType, bool active )