X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-editor-impl.cpp;h=be18ec523b2e27740ef5c1f6e3170ab0d74b5cf8;hp=7347c00508120a44d208e4601adaab597c61d4ad;hb=a2687fd49865332236bd240452b5c1efe96e5e9b;hpb=92cbca2f5bd2e15fa589448d4c884b71f4fef03c 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 7347c00..be18ec5 100644 --- a/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp @@ -147,6 +147,7 @@ DALI_DEVEL_PROPERTY_REGISTRATION_READ_ONLY(Toolkit, TextEditor, "selectedText", DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextEditor, "fontSizeScale", FLOAT, FONT_SIZE_SCALE ) DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextEditor, "primaryCursorPosition", INTEGER, PRIMARY_CURSOR_POSITION ) DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextEditor, "grabHandleColor", VECTOR4, GRAB_HANDLE_COLOR ) +DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextEditor, "enableGrabHandlePopup", BOOLEAN, ENABLE_GRAB_HANDLE_POPUP ) DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "textChanged", SIGNAL_TEXT_CHANGED ) DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "inputStyleChanged", SIGNAL_INPUT_STYLE_CHANGED) @@ -775,6 +776,14 @@ void TextEditor::SetProperty(BaseObject* object, Property::Index index, const Pr impl.RequestTextRelayout(); break; } + case Toolkit::DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP: + { + const bool grabHandlePopupEnabled = value.Get(); + DALI_LOG_INFO(gLogFilter, Debug::General, "TextEditor %p ENABLE_GRAB_HANDLE_POPUP %d\n", impl.mController.Get(), grabHandlePopupEnabled); + + impl.mController->SetGrabHandlePopupEnabled(grabHandlePopupEnabled); + break; + } } // switch } // texteditor } @@ -1136,6 +1145,11 @@ Property::Value TextEditor::GetProperty(BaseObject* object, Property::Index inde value = impl.mDecorator->GetHandleColor(); break; } + case Toolkit::DevelTextEditor::Property::ENABLE_GRAB_HANDLE_POPUP: + { + value = impl.mController->IsGrabHandlePopupEnabled(); + break; + } } //switch } @@ -1456,6 +1470,12 @@ void TextEditor::OnRelayout(const Vector2& size, RelayoutContainer& container) ResizeActor(mActiveLayer, contentSize); } + // If there is text changed, callback is called. + if(mTextChanged) + { + EmitTextChangedSignal(); + } + const Text::Controller::UpdateTextType updateTextType = mController->Relayout(contentSize, layoutDirection); if((Text::Controller::NONE_UPDATED != updateTextType) || @@ -1475,12 +1495,6 @@ void TextEditor::OnRelayout(const Vector2& size, RelayoutContainer& container) } RenderText(updateTextType); - - // If there is text changed, callback is called. - if(mTextChanged) - { - EmitTextChangedSignal(); - } } // The text-editor emits signals when the input style changes. These changes of style are @@ -2247,7 +2261,22 @@ bool TextEditor::AccessibleImpl::CutText(size_t startPosition, Dali::Toolkit::GetImpl(slf).getController()->CopyStringToClipboard(txt.substr(startPosition, endPosition - startPosition)); slf.SetProperty(Toolkit::TextEditor::Property::TEXT, - txt.substr(0, startPosition) + txt.substr(endPosition - startPosition, txt.size())); + txt.substr(0, startPosition) + txt.substr(endPosition)); + + return true; +} + +bool TextEditor::AccessibleImpl::DeleteText(size_t startPosition, + size_t endPosition) +{ + if(endPosition <= startPosition) + return false; + + auto slf = Toolkit::TextEditor::DownCast(Self()); + auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get(); + + slf.SetProperty(Toolkit::TextEditor::Property::TEXT, + txt.substr(0, startPosition) + txt.substr(endPosition)); return true; } @@ -2269,6 +2298,26 @@ Dali::Accessibility::States TextEditor::AccessibleImpl::CalculateStates() return states; } +bool TextEditor::AccessibleImpl::InsertText(size_t startPosition, + std::string text) +{ + auto slf = Toolkit::TextEditor::DownCast(Self()); + auto txt = slf.GetProperty(Toolkit::TextEditor::Property::TEXT).Get(); + + txt.insert(startPosition, text); + + slf.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(txt)); + + return true; +} + +bool TextEditor::AccessibleImpl::SetTextContents(std::string newContents) +{ + auto slf = Toolkit::TextEditor::DownCast(Self()); + slf.SetProperty(Toolkit::TextEditor::Property::TEXT, std::move(newContents)); + return true; +} + } // namespace Internal } // namespace Toolkit