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=7347c00508120a44d208e4601adaab597c61d4ad;hp=ee2d6e835ab0e9407b4c093803724c03f791fac0;hb=92cbca2f5bd2e15fa589448d4c884b71f4fef03c;hpb=19b6edb066bc90ab6fd4ce93b9dc49b5224d7815 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 ee2d6e8..7347c00 100644 --- a/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp @@ -151,6 +151,7 @@ DALI_DEVEL_PROPERTY_REGISTRATION(Toolkit, TextEditor, "grabHandleColor DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "textChanged", SIGNAL_TEXT_CHANGED ) DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "inputStyleChanged", SIGNAL_INPUT_STYLE_CHANGED) DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "maxLengthReached", SIGNAL_MAX_LENGTH_REACHED ) +DALI_SIGNAL_REGISTRATION(Toolkit, TextEditor, "anchorClicked", SIGNAL_ANCHOR_CLICKED ) DALI_TYPE_REGISTRATION_END() // clang-format on @@ -1204,6 +1205,11 @@ DevelTextEditor::MaxLengthReachedSignalType& TextEditor::MaxLengthReachedSignal( return mMaxLengthReachedSignal; } +DevelTextEditor::AnchorClickedSignalType& TextEditor::AnchorClickedSignal() +{ + return mAnchorClickedSignal; +} + Text::ControllerPtr TextEditor::getController() { return mController; @@ -1232,6 +1238,14 @@ bool TextEditor::DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* editorImpl.MaxLengthReachedSignal().Connect(tracker, functor); } } + else if(0 == strcmp(signalName.c_str(), SIGNAL_ANCHOR_CLICKED)) + { + if(editor) + { + Internal::TextEditor& editorImpl(GetImpl(editor)); + editorImpl.AnchorClickedSignal().Connect(tracker, functor); + } + } else { // signalName does not match any signal @@ -1260,7 +1274,7 @@ void TextEditor::OnInitialize() { Actor self = Self(); - mController = Text::Controller::New(this, this, this); + mController = Text::Controller::New(this, this, this, this); mDecorator = Text::Decorator::New(*mController, *mController); @@ -1610,6 +1624,7 @@ void TextEditor::OnTap(const TapGesture& gesture) padding = Self().GetProperty(Toolkit::Control::Property::PADDING); const Vector2& localPoint = gesture.GetLocalPoint(); mController->TapEvent(gesture.GetNumberOfTaps(), localPoint.x - padding.start, localPoint.y - padding.top); + mController->AnchorEvent(localPoint.x - padding.start, localPoint.y - padding.top); SetKeyInputFocus(); } @@ -1759,6 +1774,12 @@ void TextEditor::InputStyleChanged(Text::InputStyle::Mask inputStyleMask) mInputStyleChangedSignal.Emit(handle, editorInputStyleMask); } +void TextEditor::AnchorClicked(const std::string& href) +{ + Dali::Toolkit::TextEditor handle(GetOwner()); + mAnchorClickedSignal.Emit(handle, href.c_str(), href.length()); +} + void TextEditor::AddDecoration(Actor& actor, bool needsClipping) { if(actor)