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=ff03ac9db308aff0e41e16fa85c56d4b161a52b5;hp=43ccb78be6777a01371ecdfc8bb1ef439337b893;hb=26591c0c1628739c9f06d78e5aaeb552f74ff74b;hpb=6084b902e588a8ed1b8ec0dd7aacae8775006ef6 diff --git a/dali-toolkit/internal/text/decorator/text-decorator.cpp b/dali-toolkit/internal/text/decorator/text-decorator.cpp index 43ccb78..ff03ac9 100644 --- a/dali-toolkit/internal/text/decorator/text-decorator.cpp +++ b/dali-toolkit/internal/text/decorator/text-decorator.cpp @@ -283,9 +283,7 @@ struct Decorator::Impl : public ConnectionTracker mNotifyEndOfScroll( false ) { mQuadVertexFormat[ "aPosition" ] = Property::VECTOR2; - mQuadIndexFormat[ "indices" ] = Property::INTEGER; - mHighlightMaterial = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) ); - + mHighlightShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); SetupTouchEvents(); } @@ -488,7 +486,6 @@ struct Decorator::Impl : public ConnectionTracker { const HandleImpl& primaryHandle = mHandle[LEFT_SELECTION_HANDLE]; const HandleImpl& secondaryHandle = mHandle[RIGHT_SELECTION_HANDLE]; - const HandleImpl& grabHandle = mHandle[GRAB_HANDLE]; const CursorImpl& cursor = mCursor[PRIMARY_CURSOR]; if( primaryHandle.active || secondaryHandle.active ) @@ -504,7 +501,15 @@ struct Decorator::Impl : public ConnectionTracker else { // Calculates the popup's position if the grab handle is active. - mCopyPastePopup.position = Vector3( cursor.position.x, -0.5f * popupSize.height - grabHandle.size.height + cursor.position.y, 0.0f ); + const HandleImpl& grabHandle = mHandle[GRAB_HANDLE]; + if( grabHandle.verticallyFlipped ) + { + mCopyPastePopup.position = Vector3( cursor.position.x, -0.5f * popupSize.height - grabHandle.size.height + cursor.position.y, 0.0f ); + } + else + { + mCopyPastePopup.position = Vector3( cursor.position.x, -0.5f * popupSize.height + cursor.position.y, 0.0f ); + } } } @@ -1006,7 +1011,7 @@ struct Decorator::Impl : public ConnectionTracker if( !mHighlightQuadList.empty() ) { Vector< Vector2 > vertices; - Vector< unsigned int> indices; + Vector< unsigned short> indices; Vector2 vertex; std::vector::iterator iter = mHighlightQuadList.begin(); @@ -1052,24 +1057,18 @@ struct Decorator::Impl : public ConnectionTracker mQuadVertices = PropertyBuffer::New( mQuadVertexFormat ); } - if( ! mQuadIndices ) - { - mQuadIndices = PropertyBuffer::New( mQuadIndexFormat ); - } - mQuadVertices.SetData( &vertices[ 0 ], vertices.Size() ); - mQuadIndices.SetData( &indices[ 0 ], indices.Size() ); if( !mQuadGeometry ) { mQuadGeometry = Geometry::New(); mQuadGeometry.AddVertexBuffer( mQuadVertices ); } - mQuadGeometry.SetIndexBuffer( mQuadIndices ); + mQuadGeometry.SetIndexBuffer( &indices[ 0 ], indices.Size() ); if( !mHighlightRenderer ) { - mHighlightRenderer = Dali::Renderer::New( mQuadGeometry, mHighlightMaterial ); + mHighlightRenderer = Dali::Renderer::New( mQuadGeometry, mHighlightShader ); mHighlightActor.AddRenderer( mHighlightRenderer ); } } @@ -1098,11 +1097,11 @@ struct Decorator::Impl : public ConnectionTracker { if( Gesture::Started == gesture.state ) { - handle.grabDisplacementX = handle.grabDisplacementY = 0; + handle.grabDisplacementX = handle.grabDisplacementY = 0.f; } handle.grabDisplacementX += gesture.displacement.x; - handle.grabDisplacementY += gesture.displacement.y; + handle.grabDisplacementY += ( handle.verticallyFlipped ? -gesture.displacement.y : gesture.displacement.y ); const float x = handle.position.x + handle.grabDisplacementX; const float y = handle.position.y + handle.lineHeight*0.5f + handle.grabDisplacementY; @@ -1653,9 +1652,8 @@ struct Decorator::Impl : public ConnectionTracker Actor mHighlightActor; ///< Actor to display highlight Renderer mHighlightRenderer; - Material mHighlightMaterial; ///< Material used for highlight + Shader mHighlightShader; ///< Shader used for highlight Property::Map mQuadVertexFormat; - Property::Map mQuadIndexFormat; PopupImpl mCopyPastePopup; TextSelectionPopup::Buttons mEnabledPopupButtons; /// Bit mask of currently enabled Popup buttons TextSelectionPopupCallbackInterface& mTextSelectionPopupCallbackInterface; @@ -1667,7 +1665,6 @@ struct Decorator::Impl : public ConnectionTracker HandleImpl mHandle[HANDLE_TYPE_COUNT]; PropertyBuffer mQuadVertices; - PropertyBuffer mQuadIndices; Geometry mQuadGeometry; QuadContainer mHighlightQuadList; ///< Sub-selections that combine to create the complete selection highlight