projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Fix for the cursor position with the arabic script." into devel/master
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
controls
/
text-controls
/
text-editor-impl.cpp
diff --git
a/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
b/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
index
f4e79c4
..
8f7916c
100644
(file)
--- a/
dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
+++ b/
dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
@@
-52,10
+52,11
@@
namespace // unnamed namespace
{
#if defined(DEBUG_ENABLED)
{
#if defined(DEBUG_ENABLED)
-
Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Concise, true, "LOG_TEXT_CONTROLS");
+Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Concise, true, "LOG_TEXT_CONTROLS");
#endif
#endif
- const unsigned int DEFAULT_RENDERING_BACKEND = Dali::Toolkit::Text::DEFAULT_RENDERING_BACKEND;
+const unsigned int DEFAULT_RENDERING_BACKEND = Dali::Toolkit::Text::DEFAULT_RENDERING_BACKEND;
+const float DEFAULT_SCROLL_SPEED = 1200.f; ///< The default scroll speed for the text editor in pixels/second.
} // unnamed namespace
namespace
} // unnamed namespace
namespace
@@
-928,15
+929,25
@@
void TextEditor::OnInitialize()
mController->GetLayoutEngine().SetLayout( LayoutEngine::MULTI_LINE_BOX );
mController->GetLayoutEngine().SetLayout( LayoutEngine::MULTI_LINE_BOX );
+ // Enables the text input.
mController->EnableTextInput( mDecorator );
mController->EnableTextInput( mDecorator );
+ // Enables the vertical scrolling after the text input has been enabled.
+ mController->SetVerticalScrollEnabled( true );
+
+ // Disables the horizontal scrolling.
+ mController->SetHorizontalScrollEnabled( false );
+
mController->SetMaximumNumberOfCharacters( std::numeric_limits<Length>::max() );
mController->SetMaximumNumberOfCharacters( std::numeric_limits<Length>::max() );
+ // Enable the smooth handle panning.
+ mController->SetSmoothHandlePanEnabled( true );
+
// Forward input events to controller
EnableGestureDetection( static_cast<Gesture::Type>( Gesture::Tap | Gesture::Pan | Gesture::LongPress ) );
GetTapGestureDetector().SetMaximumTapsRequired( 2 );
// Forward input events to controller
EnableGestureDetection( static_cast<Gesture::Type>( Gesture::Tap | Gesture::Pan | Gesture::LongPress ) );
GetTapGestureDetector().SetMaximumTapsRequired( 2 );
- self.Touch
ed
Signal().Connect( this, &TextEditor::OnTouched );
+ self.TouchSignal().Connect( this, &TextEditor::OnTouched );
// Set BoundingBox to stage size if not already set.
Rect<int> boundingBox;
// Set BoundingBox to stage size if not already set.
Rect<int> boundingBox;
@@
-948,8
+959,11
@@
void TextEditor::OnInitialize()
mDecorator->SetBoundingBox( Rect<int>( 0.0f, 0.0f, stageSize.width, stageSize.height ) );
}
mDecorator->SetBoundingBox( Rect<int>( 0.0f, 0.0f, stageSize.width, stageSize.height ) );
}
- // Flip vertically the 'left' selection handle
- mDecorator->FlipHandleVertically( LEFT_SELECTION_HANDLE, true );
+ // Whether to flip the selection handles as soon as they cross.
+ mDecorator->FlipSelectionHandlesOnCrossEnabled( true );
+
+ // Set the default scroll speed.
+ mDecorator->SetScrollSpeed( DEFAULT_SCROLL_SPEED );
// Fill-parent area by default
self.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
// Fill-parent area by default
self.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
@@
-1005,12
+1019,15
@@
void TextEditor::OnRelayout( const Vector2& size, RelayoutContainer& container )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor OnRelayout\n");
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor OnRelayout\n");
- if( mController->Relayout( size ) ||
+ const Text::Controller::UpdateTextType updateTextType = mController->Relayout( size );
+
+ if( ( Text::Controller::NONE_UPDATED != updateTextType ) ||
!mRenderer )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor::OnRelayout %p Displaying new contents\n", mController.Get() );
!mRenderer )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor::OnRelayout %p Displaying new contents\n", mController.Get() );
- if( mDecorator )
+ if( mDecorator &&
+ ( Text::Controller::NONE_UPDATED != ( Text::Controller::DECORATOR_UPDATED & updateTextType ) ) )
{
mDecorator->Relayout( size );
}
{
mDecorator->Relayout( size );
}
@@
-1021,23
+1038,27
@@
void TextEditor::OnRelayout( const Vector2& size, RelayoutContainer& container )
}
EnableClipping( true, size );
}
EnableClipping( true, size );
- RenderText();
+ RenderText(
updateTextType
);
}
}
}
}
-void TextEditor::RenderText()
+void TextEditor::RenderText(
Text::Controller::UpdateTextType updateTextType
)
{
Actor self = Self();
Actor renderableActor;
{
Actor self = Self();
Actor renderableActor;
- if( mRenderer )
- {
- renderableActor = mRenderer->Render( mController->GetView(), DepthIndex::TEXT );
- }
- if(
renderableActor != mRenderableActor
)
+ if(
Text::Controller::NONE_UPDATED != ( Text::Controller::MODEL_UPDATED & updateTextType )
)
{
{
- UnparentAndReset( mRenderableActor );
- mRenderableActor = renderableActor;
+ if( mRenderer )
+ {
+ renderableActor = mRenderer->Render( mController->GetView(), DepthIndex::TEXT );
+ }
+
+ if( renderableActor != mRenderableActor )
+ {
+ UnparentAndReset( mRenderableActor );
+ mRenderableActor = renderableActor;
+ }
}
if( mRenderableActor )
}
if( mRenderableActor )
@@
-1225,7
+1246,7
@@
void TextEditor::OnStageConnect( Dali::Actor actor )
{
if ( mHasBeenStaged )
{
{
if ( mHasBeenStaged )
{
- RenderText();
+ RenderText(
static_cast<Text::Controller::UpdateTextType>( Text::Controller::MODEL_UPDATED | Text::Controller::DECORATOR_UPDATED )
);
}
else
{
}
else
{
@@
-1267,7
+1288,7
@@
void TextEditor::EnableClipping( bool clipping, const Vector2& size )
mClipper = Clipper::New( size );
self.Add( mClipper->GetRootActor() );
mClipper = Clipper::New( size );
self.Add( mClipper->GetRootActor() );
- self.Add( mClipper->GetImage
Actor
() );
+ self.Add( mClipper->GetImage
View
() );
}
else if ( mClipper )
{
}
else if ( mClipper )
{
@@
-1277,7
+1298,7
@@
void TextEditor::EnableClipping( bool clipping, const Vector2& size )
}
else
{
}
else
{
- // Note - this will automatically remove the root
& image actors
+ // Note - this will automatically remove the root
actor & the image view
mClipper.Reset();
}
}
mClipper.Reset();
}
}
@@
-1313,7
+1334,7
@@
void TextEditor::OnStageConnection( int depth )
// The depth of the text renderer is set in the RenderText() called from OnRelayout().
}
// The depth of the text renderer is set in the RenderText() called from OnRelayout().
}
-bool TextEditor::OnTouched( Actor actor, const Touch
Event& event
)
+bool TextEditor::OnTouched( Actor actor, const Touch
Data& touch
)
{
return true;
}
{
return true;
}