From 46473dfeb61ee8bf42aced8c738060bf41aa0a96 Mon Sep 17 00:00:00 2001 From: Victor Cebollada Date: Fri, 16 Jan 2015 13:59:51 +0000 Subject: [PATCH] Multi-language support interface Change-Id: Id3e798702c7584bea698ee1e02f93f6e21e6ce48 Signed-off-by: Victor Cebollada --- .../internal/text/multi-language-support-impl.cpp | 14 ++++++++ .../internal/text/multi-language-support-impl.h | 18 +++++++++- .../public-api/text/bidirectional-support.cpp | 1 + .../public-api/text/multi-language-support.cpp | 22 ++++++++++++ .../public-api/text/multi-language-support.h | 40 ++++++++++++++++++++++ 5 files changed, 94 insertions(+), 1 deletion(-) diff --git a/dali-toolkit/internal/text/multi-language-support-impl.cpp b/dali-toolkit/internal/text/multi-language-support-impl.cpp index f6a9a22..27d0ee2 100644 --- a/dali-toolkit/internal/text/multi-language-support-impl.cpp +++ b/dali-toolkit/internal/text/multi-language-support-impl.cpp @@ -353,6 +353,13 @@ void MultilanguageSupport::SetScripts( const Vector& text, } } +void MultilanguageSupport::ReplaceScripts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ) +{ +} + void MultilanguageSupport::ValidateFonts( const Vector& text, const Vector& scripts, Vector& fonts ) @@ -528,6 +535,13 @@ void MultilanguageSupport::ValidateFonts( const Vector& text, } } +void MultilanguageSupport::ValidateFonts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ) +{ +} + } // namespace Internal } // namespace Text diff --git a/dali-toolkit/internal/text/multi-language-support-impl.h b/dali-toolkit/internal/text/multi-language-support-impl.h index 643dea3..65933b5 100644 --- a/dali-toolkit/internal/text/multi-language-support-impl.h +++ b/dali-toolkit/internal/text/multi-language-support-impl.h @@ -96,13 +96,29 @@ public: void SetScripts( const Vector& text, const Vector& lineBreakInfo, Vector& scripts ); + + /** + * @copydoc Dali::MultilanguageSupport::ReplaceScripts() + */ + void ReplaceScripts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ); + /** - * @copydoc Dali::MultilanguageSupport::ValidateFonts() + * @copydoc Dali::MultilanguageSupport::ValidateFonts( const Vector& text, const Vector& scripts, Vector& fonts ) */ void ValidateFonts( const Vector& text, const Vector& scripts, Vector& fonts ); + /** + * @copydoc Dali::MultilanguageSupport::ValidateFonts( LogicalModel& model, CharacterIndex characterIndex, Length numberOfCharactersToRemove, Length numberOfCharactersToInsert ) + */ + void ValidateFonts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ); private: Vector mDefaultFontPerScriptCache; ///< Caches the default font for a script. Vector mValidFontsPerScriptCache; ///< Caches valid fonts for a script. diff --git a/dali-toolkit/public-api/text/bidirectional-support.cpp b/dali-toolkit/public-api/text/bidirectional-support.cpp index c3b2a52..ebff453 100644 --- a/dali-toolkit/public-api/text/bidirectional-support.cpp +++ b/dali-toolkit/public-api/text/bidirectional-support.cpp @@ -39,6 +39,7 @@ void ReorderLines( const Vector& bidirectionalInf { } + } // namespace Text } // namespace Toolkit diff --git a/dali-toolkit/public-api/text/multi-language-support.cpp b/dali-toolkit/public-api/text/multi-language-support.cpp index b9edd83..1d43f37 100644 --- a/dali-toolkit/public-api/text/multi-language-support.cpp +++ b/dali-toolkit/public-api/text/multi-language-support.cpp @@ -57,6 +57,17 @@ void MultilanguageSupport::SetScripts( const Vector& text, scripts ); } +void MultilanguageSupport::ReplaceScripts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ) +{ + GetImplementation( *this ).ReplaceScripts( model, + characterIndex, + numberOfCharactersToRemove, + numberOfCharactersToInsert ); +} + void MultilanguageSupport::ValidateFonts( const Vector& text, const Vector& scripts, Vector& fonts ) @@ -66,6 +77,17 @@ void MultilanguageSupport::ValidateFonts( const Vector& text, fonts ); } +void MultilanguageSupport::ValidateFonts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ) +{ + GetImplementation( *this ).ValidateFonts( model, + characterIndex, + numberOfCharactersToRemove, + numberOfCharactersToInsert ); +} + } // namespace Text } // namespace Toolkit diff --git a/dali-toolkit/public-api/text/multi-language-support.h b/dali-toolkit/public-api/text/multi-language-support.h index 531fdad..36eb349 100644 --- a/dali-toolkit/public-api/text/multi-language-support.h +++ b/dali-toolkit/public-api/text/multi-language-support.h @@ -97,6 +97,24 @@ public: Vector& scripts ); /** + * Replaces the scrips of the given range of characters. + * + * @pre The @p model needs to have a text set. + * + * If the @p numberOfCharactersToRemove is zero, this operation is like an insert. + * If the @p numberOfCharactersToInsert is zero, this operation is like a remove. + * + * @param[in,out] model The text's logical model. + * @param[in] characterIndex Index to the first character. + * @param[in] numberOfCharactersToRemove The number of characters removed from the text. + * @param[in] numberOfCharactersToInsert The number of characters inserted in the text. + */ + void ReplaceScripts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ); + + /** * @brief Validates the character's font of the whole text. * * It may update fonts set by application developers. @@ -116,6 +134,28 @@ public: void ValidateFonts( const Vector& text, const Vector& scripts, Vector& fonts ); + + /** + * Validates the character's font of the given range of characters. + * + * It may update fonts set by the mark-up processor. + * It sets default fonts based on the script to those characters without a font set. + * + * @pre The @p model needs to have a text set. + * @pre The @p model needs to have the scripts set. + * + * If the @p numberOfCharactersToRemove is zero, this operation is like an insert. + * If the @p numberOfCharactersToInsert is zero, this operation is like a remove. + * + * @param[in,out] model The text's logical model. + * @param[in] characterIndex Index to the first character. + * @param[in] numberOfCharactersToRemove The number of characters removed from the text. + * @param[in] numberOfCharactersToInsert The number of characters inserted in the text. + */ + void ValidateFonts( LogicalModel& model, + CharacterIndex characterIndex, + Length numberOfCharactersToRemove, + Length numberOfCharactersToInsert ); }; } // namespace Text -- 2.7.4