mSelectTextOnCommit( false ),
mUnderlinedPriorToPreEdit ( false ),
mCommitByKeyInput( false ),
- mPlaceHolderSet( false )
+ mPlaceHolderSet( false ),
+ mMarkUpEnabled( true )
{
// Updates the line height accordingly with the input style.
UpdateLineHeight();
void TextInput::SetPlaceholderText( const std::string& placeHolderText )
{
// Get the placeholder styled text array from the markup string.
- MarkupProcessor::GetStyledTextArray( placeHolderText, mStyledPlaceHolderText );
+ MarkupProcessor::GetStyledTextArray( placeHolderText, mStyledPlaceHolderText, IsMarkupProcessingEnabled() );
if( mStyledText.empty() )
{
{
DALI_LOG_INFO(gLogFilter, Debug::General, "SetText string[%s]\n", initialText.c_str() );
- GetStyledTextArray( initialText, mStyledText );
+ GetStyledTextArray( initialText, mStyledText, IsMarkupProcessingEnabled() );
if( mStyledText.empty() )
{
mCursorPosition = mTextLayoutInfo.mCharacterLayoutInfoTable.size();
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition( mCursorPosition );
- imfManager.SetSurroundingText( initialText );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition( mCursorPosition );
+ imfManager.SetSurroundingText( initialText );
+ imfManager.NotifyCursorPosition();
+ }
if( IsScrollEnabled() )
{
if ( !mStyledText.empty() && ( mCursorPosition > 0 ) )
{
DALI_ASSERT_DEBUG( ( 0 <= mCursorPosition-1 ) && ( mCursorPosition-1 < mStyledText.size() ) );
-
style = mStyledText.at( mCursorPosition-1 ).mStyle;
}
else // No text.
// Updates the line height accordingly with the input style.
UpdateLineHeight();
- ImfManager imfManager = ImfManager::Get();
-
// Connect the signals to use in text input.
VirtualKeyboard::StatusChangedSignal().Connect( this, &TextInput::KeyboardStatusChanged );
VirtualKeyboard::LanguageChangedSignal().Connect( this, &TextInput::SetTextDirection );
Toolkit::TextInput handle( GetOwner() );
mInputStartedSignalV2.Emit( handle );
- imfManager.EventReceivedSignal().Connect(this, &TextInput::ImfEventReceived);
+ ImfManager imfManager = ImfManager::Get();
+
+ if ( imfManager )
+ {
+ imfManager.EventReceivedSignal().Connect(this, &TextInput::ImfEventReceived);
- // Notify that the text editing start.
- imfManager.Activate();
+ // Notify that the text editing start.
+ imfManager.Activate();
- // When window gain lost focus, the imf manager is deactivated. Thus when window gain focus again, the imf manager must be activated.
- imfManager.SetRestoreAferFocusLost( true );
+ // When window gain lost focus, the imf manager is deactivated. Thus when window gain focus again, the imf manager must be activated.
+ imfManager.SetRestoreAferFocusLost( true );
- imfManager.SetCursorPosition( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ imfManager.SetCursorPosition( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
mClipboard = Clipboard::Get(); // Store handle to clipboard
}
ImfManager imfManager = ImfManager::Get();
+ if ( imfManager )
+ {
+ // The text editing is finished. Therefore the imf manager don't have restore activation.
+ imfManager.SetRestoreAferFocusLost( false );
- // The text editing is finished. Therefore the imf manager don't have restore activation.
- imfManager.SetRestoreAferFocusLost( false );
-
- // Notify that the text editing finish.
- imfManager.Deactivate();
-
- imfManager.EventReceivedSignal().Disconnect(this, &TextInput::ImfEventReceived);
+ // Notify that the text editing finish.
+ imfManager.Deactivate();
+ imfManager.EventReceivedSignal().Disconnect(this, &TextInput::ImfEventReceived);
+ }
// Disconnect signal used the text input.
VirtualKeyboard::LanguageChangedSignal().Disconnect( this, &TextInput::SetTextDirection );
notifier.ContentSelectedSignal().Disconnect( this, &TextInput::OnClipboardTextSelected );
}
Clipboard clipboard = Clipboard::Get();
- clipboard.HideClipboard();
+
+ if ( clipboard )
+ {
+ clipboard.HideClipboard();
+ }
}
}
ReturnClosestIndex( tap.localPoint, mCursorPosition );
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
std::size_t start = 0;
std::size_t end = 0;
// Notify keyboard so it can 're-capture' word for predictive text.
// As we have done a reset, is this required, expect IMF keyboard to request this information.
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
-
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
const TextStyle oldInputStyle( mInputStyle );
mInputStyle = GetStyleAtCursor(); // Inherit style from cursor position
ReturnClosestIndex( longPress.localPoint, mCursorPosition );
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
-
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
std::size_t start = 0;
std::size_t end = 0;
Dali::Toolkit::Internal::TextProcessor::FindNearestWord( mStyledText, mCursorPosition, start, end );
void TextInput::CreateTextViewActor()
{
mDisplayedTextView = Toolkit::TextView::New();
+ mDisplayedTextView.SetMarkupProcessingEnabled( mMarkUpEnabled );
mDisplayedTextView.SetParentOrigin(ParentOrigin::TOP_LEFT);
mDisplayedTextView.SetAnchorPoint(AnchorPoint::TOP_LEFT);
mDisplayedTextView.SetMultilinePolicy(Toolkit::TextView::SplitByWord);
mPreserveCursorPosition = preserveCursorPosition;
// Reset incase we are in a pre-edit state.
- ImfManager::Get().Reset(); // Will trigger a commit message
+ ImfManager imfManager = ImfManager::Get();
+ if ( imfManager )
+ {
+ imfManager.Reset(); // Will trigger a commit message
+ }
}
void TextInput::CursorUpdate()
{
DrawCursor();
- std::string text( GetText() );
ImfManager imfManager = ImfManager::Get();
- imfManager.SetSurroundingText( text ); // Notifying IMF of a cursor change triggers a surrounding text request so updating it now.
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ std::string text( GetText() );
+ imfManager.SetSurroundingText( text ); // Notifying IMF of a cursor change triggers a surrounding text request so updating it now.
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
}
/* Delete highlighted characters redisplay*/
}
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
}
}
// When replacing highlighted text keyboard should ignore current word at cursor hence notify keyboard that the cursor is at the start of the highlight.
mSelectingText = true;
- ImfManager imfManager = ImfManager::Get();
mCursorPosition = std::min( start, end ); // Set cursor position to start of highlighted text.
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.SetSurroundingText( GetText() );
- imfManager.NotifyCursorPosition();
+
+ ImfManager imfManager = ImfManager::Get();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.SetSurroundingText( GetText() );
+ imfManager.NotifyCursorPosition();
+ }
// As the imfManager has been notified of the new cursor position we do not need to reset the pre-edit as it will be updated instead.
// Hide grab handle when selecting.
mCursorPosition = std::min(mSelectionHandleOnePosition, mSelectionHandleTwoPosition);
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
DeleteHighlightedText( true );
update = true;
}
mCursorPosition += insertedStringLength;
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
update = update || ( insertedStringLength > 0 );
if( update )
return snapshotEnabled;
}
+void TextInput::SetMarkupProcessingEnabled( bool enable )
+{
+ mMarkUpEnabled = enable;
+}
+
+bool TextInput::IsMarkupProcessingEnabled() const
+{
+ return mMarkUpEnabled;
+}
+
void TextInput::SetScrollEnabled( bool enable )
{
if( mDisplayedTextView )