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-label-impl.h;h=d345d21d1df4ec4c2260a0e8c54ec635709ddf1a;hp=87a80e0241d0a81ae40209d98c5b503e97c7908c;hb=c039ebb7a115f5516aa792c1aa3bd6370e61acfd;hpb=9ddd5fea6278d06b8874988498c7c4c6508750ba diff --git a/dali-toolkit/internal/controls/text-controls/text-label-impl.h b/dali-toolkit/internal/controls/text-controls/text-label-impl.h index 87a80e0..d345d21 100644 --- a/dali-toolkit/internal/controls/text-controls/text-label-impl.h +++ b/dali-toolkit/internal/controls/text-controls/text-label-impl.h @@ -24,6 +24,7 @@ // INTERNAL INCLUDES #include #include +#include #include #include #include @@ -41,7 +42,7 @@ namespace Internal /** * @brief A control which renders a short text string. */ -class TextLabel : public Control, public Text::ControlInterface, public Text::ScrollerInterface +class TextLabel : public Control, public Text::ControlInterface, public Text::ScrollerInterface, public Text::AnchorControlInterface { public: /** @@ -69,7 +70,33 @@ public: */ static Property::Value GetProperty(BaseObject* object, Property::Index index); - Text::ControllerPtr getController(); + /** + * @copydoc Dali::Toollkit::TextLabel::AnchorClickedSignal() + */ + DevelTextLabel::AnchorClickedSignalType& AnchorClickedSignal(); + + /** + * @copydoc Dali::Toollkit::TextLabel::TextFitChangedSignal() + */ + DevelTextLabel::TextFitChangedSignalType& TextFitChangedSignal(); + + /** + * Connects a callback function with the object's signals. + * @param[in] object The object providing the signal. + * @param[in] tracker Used to disconnect the signal. + * @param[in] signalName The signal to connect to. + * @param[in] functor A newly allocated FunctorDelegate. + * @return True if the signal was connected. + * @post If a signal was connected, ownership of functor was passed to CallbackBase. Otherwise the caller is responsible for deleting the unused functor. + */ + static bool DoConnectSignal(BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor); + + /** + * @brief Gets text controller + * + * @return The text controller + */ + Text::ControllerPtr GetTextController(); private: // From Control /** @@ -88,6 +115,11 @@ private: // From Control void OnRelayout(const Vector2& size, RelayoutContainer& container) override; /** + * @copydoc Control::OnTap() + */ + void OnTap(const TapGesture& tap) override; + + /** * @copydoc Control::GetNaturalSize() */ Vector3 GetNaturalSize() override; @@ -115,6 +147,12 @@ private: // from TextScroller */ void ScrollingFinished() override; +public: // From AnchorControlInterface + /** + * @copydoc Text::AnchorControlInterface::AnchorClicked() + */ + void AnchorClicked(const std::string& href) override; + private: // Implementation /** * Construct a new TextLabel. @@ -149,31 +187,89 @@ private: return mTextScroller; } + /** + * @brief Callback function for when the layout is changed. + * @param[in] actor The actor whose layoutDirection is changed. + * @param[in] type The layoutDirection. + */ + void OnLayoutDirectionChanged(Actor actor, LayoutDirection::Type type); + + /** + * @brief Emits TextFitChanged signal. + */ + void EmitTextFitChangedSignal(); + private: // Data Text::ControllerPtr mController; Text::TextScrollerPtr mTextScroller; Toolkit::Visual::Base mVisual; + // Signals + Toolkit::DevelTextLabel::AnchorClickedSignalType mAnchorClickedSignal; + Toolkit::DevelTextLabel::TextFitChangedSignalType mTextFitChangedSignal; + int mRenderingBackend; bool mTextUpdateNeeded : 1; protected: - struct AccessibleImpl : public Control::Impl::AccessibleImpl, + /** + * @brief This structure is to connect TextLabel with Accessible functions. + */ + struct AccessibleImpl : public DevelControl::AccessibleImpl, public virtual Dali::Accessibility::Text { - using Control::Impl::AccessibleImpl::AccessibleImpl; - - std::string GetText(size_t startOffset, size_t endOffset) override; - size_t GetCharacterCount() override; - size_t GetCaretOffset() override; - bool SetCaretOffset(size_t offset) override; + using DevelControl::AccessibleImpl::AccessibleImpl; + + /** + * @copydoc Dali::Accessibility::Text::GetText() + */ + std::string GetText(size_t startOffset, size_t endOffset) override; + + /** + * @copydoc Dali::Accessibility::Text::GetCharacterCount() + */ + size_t GetCharacterCount() override; + + /** + * @copydoc Dali::Accessibility::Text::GetCursorOffset() + */ + size_t GetCursorOffset() override; + + /** + * @copydoc Dali::Accessibility::Text::SetCursorOffset() + */ + bool SetCursorOffset(size_t offset) override; + + /** + * @copydoc Dali::Accessibility::Text::GetTextAtOffset() + */ Accessibility::Range GetTextAtOffset(size_t offset, Accessibility::TextBoundary boundary) override; - Accessibility::Range GetSelection(size_t selectionNum) override; - bool RemoveSelection(size_t selectionNum) override; - bool SetSelection(size_t selectionNum, size_t startOffset, size_t endOffset) override; - std::string GetNameRaw() override; - Property::Index GetNamePropertyIndex() override; + + /** + * @copydoc Dali::Accessibility::Text::GetRangeOfSelection() + */ + Accessibility::Range GetRangeOfSelection(size_t selectionIndex) override; + + /** + * @copydoc Dali::Accessibility::Text::RemoveSelection() + */ + bool RemoveSelection(size_t selectionIndex) override; + + /** + * @copydoc Dali::Accessibility::Text::SetRangeOfSelection() + */ + bool SetRangeOfSelection(size_t selectionIndex, size_t startOffset, size_t endOffset) override; + + /** + * @copydoc Dali::Accessibility::Text::GetNameRaw() + */ + std::string GetNameRaw() override; + + /** + * @copydoc Dali::Accessibility::Text::GetNamePropertyIndex() + */ + Property::Index GetNamePropertyIndex() override; }; };