X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-impl.h;h=003aec51020e07082658d9cbde4986c4efad8e1e;hb=2af20bd47b6f3ed138d87d4ddb0d458ae8b8f3e3;hp=c996a1f582be48695484af50bd390c88f1c69c5d;hpb=ded447ca28a294ce011a4c1f25f481b1cc04eefd;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index c996a1f..003aec5 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -117,12 +117,6 @@ struct EventData InputStyle mInputStyle; ///< The style to be set to the new inputed text. - /** - * 0,0 means that the top-left corner of the layout matches the top-left corner of the UI control. - * Typically this will have a negative value with scrolling occurs. - */ - Vector2 mScrollPosition; ///< The text is offset by this position when scrolling. - State mState; ///< Selection mode, edit mode etc. CharacterIndex mPrimaryCursorPosition; ///< Index into logical model for primary cursor. @@ -259,6 +253,30 @@ struct TextUpdateInfo } }; +struct UnderlineDefaults +{ + std::string properties; + // TODO: complete with underline parameters. +}; + +struct ShadowDefaults +{ + std::string properties; + // TODO: complete with shadow parameters. +}; + +struct EmbossDefaults +{ + std::string properties; + // TODO: complete with emboss parameters. +}; + +struct OutlineDefaults +{ + std::string properties; + // TODO: complete with outline parameters. +}; + struct Controller::Impl { Impl( ControlInterface& controlInterface ) @@ -266,6 +284,10 @@ struct Controller::Impl mLogicalModel(), mVisualModel(), mFontDefaults( NULL ), + mUnderlineDefaults( NULL ), + mShadowDefaults( NULL ), + mEmbossDefaults( NULL ), + mOutlineDefaults( NULL ), mEventData( NULL ), mFontClient(), mClipboard(), @@ -274,7 +296,6 @@ struct Controller::Impl mLayoutEngine(), mModifyEvents(), mTextColor( Color::BLACK ), - mAlignmentOffset(), mTextUpdateInfo(), mOperationsPending( NO_OPERATION ), mMaximumNumberOfCharacters( 50u ), @@ -304,6 +325,10 @@ struct Controller::Impl ~Impl() { delete mFontDefaults; + delete mUnderlineDefaults; + delete mShadowDefaults; + delete mEmbossDefaults; + delete mOutlineDefaults; delete mEventData; } @@ -404,6 +429,37 @@ struct Controller::Impl } } + /** + * @brief Helper to notify IMF manager with surrounding text & cursor changes. + */ + void NotifyImfManager(); + + /** + * @brief Retrieve the current cursor position. + * + * @return The cursor position. + */ + CharacterIndex GetLogicalCursorPosition() const; + + /** + * @brief Retrieves the number of consecutive white spaces starting from the given @p index. + * + * @param[in] index The character index from where to count the number of consecutive white spaces. + * + * @return The number of consecutive white spaces. + */ + Length GetNumberOfWhiteSpaces( CharacterIndex index ) const; + + /** + * @brief Retrieve any text previously set starting from the given @p index. + * + * @param[in] index The character index from where to retrieve the text. + * @param[out] text A string of UTF-8 characters. + * + * @see Dali::Toolkit::Text::Controller::GetText() + */ + void GetText( CharacterIndex index, std::string& text ) const; + bool IsClipboardEmpty() { bool result( mClipboard && mClipboard.NumberOfItems() ); @@ -499,6 +555,12 @@ struct Controller::Impl void OnSelectAllEvent(); + /** + * @brief Retrieves the selected text. It removes the text if the @p deleteAfterRetrieval parameter is @e true. + * + * @param[out] selectedText The selected text encoded in utf8. + * @param[in] deleteAfterRetrieval Whether the text should be deleted after retrieval. + */ void RetrieveSelection( std::string& selectedText, bool deleteAfterRetrieval ); void ShowClipboard(); @@ -610,6 +672,10 @@ public: LogicalModelPtr mLogicalModel; ///< Pointer to the logical model. VisualModelPtr mVisualModel; ///< Pointer to the visual model. FontDefaults* mFontDefaults; ///< Avoid allocating this when the user does not specify a font. + UnderlineDefaults* mUnderlineDefaults; ///< Avoid allocating this when the user does not specify underline parameters. + ShadowDefaults* mShadowDefaults; ///< Avoid allocating this when the user does not specify shadow parameters. + EmbossDefaults* mEmbossDefaults; ///< Avoid allocating this when the user does not specify emboss parameters. + OutlineDefaults* mOutlineDefaults; ///< Avoid allocating this when the user does not specify outline parameters. EventData* mEventData; ///< Avoid allocating everything for text input until EnableTextInput(). TextAbstraction::FontClient mFontClient; ///< Handle to the font client. Clipboard mClipboard; ///< Handle to the system clipboard @@ -618,7 +684,11 @@ public: LayoutEngine mLayoutEngine; ///< The layout engine. Vector mModifyEvents; ///< Temporary stores the text set until the next relayout. Vector4 mTextColor; ///< The regular text color - Vector2 mAlignmentOffset; ///< Vertical and horizontal offset of the whole text inside the control due to alignment. + /** + * 0,0 means that the top-left corner of the layout matches the top-left corner of the UI control. + * Typically this will have a negative value with scrolling occurs. + */ + Vector2 mScrollPosition; ///< The text is offset by this position when scrolling. TextUpdateInfo mTextUpdateInfo; ///< Info of the characters updated. OperationsMask mOperationsPending; ///< Operations pending to be done to layout the text. Length mMaximumNumberOfCharacters; ///< Maximum number of characters that can be inserted.