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=5e9e7d91a16eeba3640483b72a7e410f5612a70a;hp=02594712039ddedb370e7bfb3810171f5eeda9cb;hb=48000ec3ab1ca2d1f8001d192112e32357bb1dfc;hpb=2ce2322bceab836c613dca571a9b846d31b7a497 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 0259471..5e9e7d9 100644 --- a/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp @@ -341,6 +341,16 @@ float TextEditor::GetVerticalScrollPosition() return 0; } +Vector TextEditor::GetTextSize(const uint32_t startIndex, const uint32_t endIndex) const +{ + return mController->GetTextSize(startIndex, endIndex); +} + +Vector TextEditor::GetTextPosition(const uint32_t startIndex, const uint32_t endIndex) const +{ + return mController->GetTextPosition(startIndex, endIndex); +} + string TextEditor::GetSelectedText() const { string selectedText = ""; @@ -478,6 +488,11 @@ Toolkit::TextEditor::ScrollStateChangedSignalType& TextEditor::ScrollStateChange return mScrollStateChangedSignal; } +void TextEditor::OnAccessibilityStatusChanged() +{ + CommonTextUtils::SynchronizeTextAnchorsInParent(Self(), mController, mAnchorActors); +} + void TextEditor::OnInitialize() { Actor self = Self(); @@ -568,6 +583,9 @@ void TextEditor::OnInitialize() return std::unique_ptr( new AccessibleImpl(actor, Dali::Accessibility::Role::ENTRY)); }); + + Accessibility::Bridge::EnabledSignal().Connect(this, &TextEditor::OnAccessibilityStatusChanged); + Accessibility::Bridge::DisabledSignal().Connect(this, &TextEditor::OnAccessibilityStatusChanged); } void TextEditor::OnStyleChange(Toolkit::StyleManager styleManager, StyleChange::Type change) @@ -724,7 +742,7 @@ void TextEditor::OnRelayout(const Vector2& size, RelayoutContainer& container) void TextEditor::RenderText(Text::Controller::UpdateTextType updateTextType) { - CommonTextUtils::RenderText(Self(), mRenderer, mController, mDecorator, mAlignmentOffset, mRenderableActor, mBackgroundActor, mStencil, mClippingDecorationActors, updateTextType); + CommonTextUtils::RenderText(Self(), mRenderer, mController, mDecorator, mAlignmentOffset, mRenderableActor, mBackgroundActor, mStencil, mClippingDecorationActors, mAnchorActors, updateTextType); if(mRenderableActor) { ApplyScrollPosition(); @@ -1540,6 +1558,30 @@ bool TextEditor::AccessibleImpl::SetTextContents(std::string newContents) return true; } +int32_t TextEditor::AccessibleImpl::GetLinkCount() const +{ + auto self = Toolkit::TextEditor::DownCast(Self()); + return Dali::Toolkit::GetImpl(self).mAnchorActors.size(); +} + +Accessibility::Hyperlink* TextEditor::AccessibleImpl::GetLink(int32_t linkIndex) const +{ + if(linkIndex < 0 || linkIndex >= GetLinkCount()) + { + return nullptr; + } + auto self = Toolkit::TextEditor::DownCast(Self()); + auto anchorActor = Dali::Toolkit::GetImpl(self).mAnchorActors[linkIndex]; + return dynamic_cast(Dali::Accessibility::Accessible::Get(anchorActor)); +} + +int32_t TextEditor::AccessibleImpl::GetLinkIndex(int32_t characterOffset) const +{ + auto self = Toolkit::TextEditor::DownCast(Self()); + auto controller = Dali::Toolkit::GetImpl(self).GetTextController(); + return controller->GetAnchorIndex(static_cast(characterOffset)); +} + } // namespace Internal } // namespace Toolkit