X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.h;h=ddb1051c69b02ae82f07e62c317fac02f3d5dd5e;hb=77af5d8a3230bf16729573df1866be763938ca40;hp=ee77ca3f7b779f089654d1a80a0f49919275bdd1;hpb=f1f00d9cc45208a85918e6e9d528c4416945182e;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller.h b/dali-toolkit/internal/text/text-controller.h index ee77ca3..ddb1051 100644 --- a/dali-toolkit/internal/text/text-controller.h +++ b/dali-toolkit/internal/text/text-controller.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -77,11 +78,8 @@ private: GET_GLYPH_METRICS = 0x0080, LAYOUT = 0x0100, UPDATE_ACTUAL_SIZE = 0x0200, - UPDATE_POSITIONS = 0x0400, - UPDATE_LINES = 0x0800, - REORDER = 0x1000, - ALIGNMENT = 0x2000, - RENDER = 0x4000, + REORDER = 0x0400, + ALIGN = 0x0800, ALL_OPERATIONS = 0xFFFF }; @@ -175,6 +173,34 @@ public: void GetDefaultFonts( Dali::Vector& fonts, Length numberOfCharacters ); /** + * @brief Set the shadow offset. + * + * @param[in] shadowOffset The shadow offset, 0,0 indicates no shadow. + */ + void SetShadowOffset( const Vector2& shadowOffset ); + + /** + * @brief Retrieve the shadow offset. + * + * @return The shadow offset. + */ + const Vector2& GetShadowOffset() const; + + /** + * @brief Set the shadow color. + * + * @param[in] shadowColor The shadow color. + */ + void SetShadowColor( const Vector4& shadowColor ); + + /** + * @brief Retrieve the shadow color. + * + * @return The shadow color. + */ + const Vector4& GetShadowColor() const; + + /** * @brief Called to enable text input. * * @note Only selectable or editable controls should calls this. @@ -198,20 +224,68 @@ public: bool GetEnableCursorBlink() const; /** + * @brief Query the current scroll position; the UI control is responsible for moving actors to this position. + * + * @return The scroll position. + */ + const Vector2& GetScrollPosition() const; + + /** + * @brief Query the alignment offset. + * + * @return The alignmnet offset. + */ + const Vector2& GetAlignmentOffset() const; + + /** + * @copydoc Control::GetNaturalSize() + */ + Vector3 GetNaturalSize(); + + /** + * @copydoc Control::GetHeightForWidth() + */ + float GetHeightForWidth( float width ); + + /** * @brief Triggers a relayout which updates View (if necessary). * * @note UI Controls are expected to minimize calls to this method e.g. call once after size negotiation. * @param[in] size A the size of a bounding box to layout text within. * @return True if the text model or decorations were updated. */ - bool Relayout( const Vector2& size ); + bool Relayout( const Size& size ); + + /** + * @brief Process queued events which modify the model. + */ + void ProcessModifyEvents(); /** - * @brief Update the model with new text. + * @brief Used to process an event queued from SetText() * - * @param[in] operations The layout operations which need to be done. + * @param[in] newText The new text to store in the logical model. + */ + void ReplaceTextEvent( const std::string& newText ); + + /** + * @brief Used to process an event queued from key events etc. + * + * @param[in] text The text to insert into the logical model. + */ + void InsertTextEvent( const std::string& text ); + + /** + * @brief Used to process an event queued from backspace key etc. */ - void ReplaceText( OperationsMask operations ); + void DeleteTextEvent(); + + /** + * @brief Update the model following text replace/insert etc. + * + * @param[in] operationsRequired The layout operations which need to be done. + */ + void UpdateModel( OperationsMask operationsRequired ); /** * @brief Lays-out the text. @@ -222,19 +296,16 @@ public: * @param[in] operations The layout operations which need to be done. * @param[out] layoutSize The size of the laid-out text. */ - bool DoRelayout( const Vector2& size, + bool DoRelayout( const Size& size, OperationsMask operations, Size& layoutSize ); /** - * @copydoc Control::GetNaturalSize() - */ - Vector3 GetNaturalSize(); - - /** - * @copydoc Control::GetHeightForWidth() + * @brief Calulates the alignment of the whole text inside the bounding box. + * + * @param[in] size The size of the bounding box. */ - float GetHeightForWidth( float width ); + void CalculateTextAlignment( const Size& size ); /** * @brief Return the layout engine. @@ -250,6 +321,8 @@ public: */ View& GetView(); + // Text-input Event Queuing + /** * @brief Caller by editable UI controls when keyboard focus is gained. */ @@ -276,6 +349,14 @@ public: void TapEvent( unsigned int tapCount, float x, float y ); /** + * @brief Caller by editable UI controls when a pan gesture occurs. + * + * @param[in] state The state of the gesture. + * @param[in] displacement This distance panned since the last pan gesture. + */ + void PanEvent( Gesture::State state, const Vector2& displacement ); + + /** * @copydoc Dali::Toolkit::Text::Decorator::Observer::GrabHandleEvent() */ virtual void GrabHandleEvent( GrabHandleState state, float x, float y );