Multi-language support interface 26/33926/7
authorVictor Cebollada <v.cebollada@samsung.com>
Fri, 16 Jan 2015 13:59:51 +0000 (13:59 +0000)
committerVictor Cebollada <v.cebollada@samsung.com>
Tue, 3 Mar 2015 16:15:50 +0000 (16:15 +0000)
Change-Id: Id3e798702c7584bea698ee1e02f93f6e21e6ce48
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
dali-toolkit/internal/text/multi-language-support-impl.cpp
dali-toolkit/internal/text/multi-language-support-impl.h
dali-toolkit/public-api/text/bidirectional-support.cpp
dali-toolkit/public-api/text/multi-language-support.cpp
dali-toolkit/public-api/text/multi-language-support.h

index f6a9a22..27d0ee2 100644 (file)
@@ -353,6 +353,13 @@ void MultilanguageSupport::SetScripts( const Vector<Character>& text,
   }
 }
 
+void MultilanguageSupport::ReplaceScripts( LogicalModel& model,
+                                           CharacterIndex characterIndex,
+                                           Length numberOfCharactersToRemove,
+                                           Length numberOfCharactersToInsert )
+{
+}
+
 void MultilanguageSupport::ValidateFonts( const Vector<Character>& text,
                                           const Vector<ScriptRun>& scripts,
                                           Vector<FontRun>& fonts )
@@ -528,6 +535,13 @@ void MultilanguageSupport::ValidateFonts( const Vector<Character>& text,
   }
 }
 
+void MultilanguageSupport::ValidateFonts( LogicalModel& model,
+                                          CharacterIndex characterIndex,
+                                          Length numberOfCharactersToRemove,
+                                          Length numberOfCharactersToInsert )
+{
+}
+
 } // namespace Internal
 
 } // namespace Text
index 643dea3..65933b5 100644 (file)
@@ -96,13 +96,29 @@ public:
   void SetScripts( const Vector<Character>& text,
                    const Vector<LineBreakInfo>& lineBreakInfo,
                    Vector<ScriptRun>& 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<Character>& text, const Vector<ScriptRun>& scripts, Vector<FontRun>& fonts )
    */
   void ValidateFonts( const Vector<Character>& text,
                       const Vector<ScriptRun>& scripts,
                       Vector<FontRun>& 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<FontId>                  mDefaultFontPerScriptCache; ///< Caches the default font for a script.
   Vector<ValidateFontsPerScript*> mValidFontsPerScriptCache;  ///< Caches valid fonts for a script.
index c3b2a52..ebff453 100644 (file)
@@ -39,6 +39,7 @@ void ReorderLines( const Vector<BidirectionalParagraphInfoRun>& bidirectionalInf
 {
 }
 
+
 } // namespace Text
 
 } // namespace Toolkit
index b9edd83..1d43f37 100644 (file)
@@ -57,6 +57,17 @@ void MultilanguageSupport::SetScripts( const Vector<Character>& 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<Character>& text,
                                           const Vector<ScriptRun>& scripts,
                                           Vector<FontRun>& fonts )
@@ -66,6 +77,17 @@ void MultilanguageSupport::ValidateFonts( const Vector<Character>& text,
                                             fonts );
 }
 
+void MultilanguageSupport::ValidateFonts( LogicalModel& model,
+                                          CharacterIndex characterIndex,
+                                          Length numberOfCharactersToRemove,
+                                          Length numberOfCharactersToInsert )
+{
+  GetImplementation( *this ).ValidateFonts( model,
+                                            characterIndex,
+                                            numberOfCharactersToRemove,
+                                            numberOfCharactersToInsert );
+}
+
 } // namespace Text
 
 } // namespace Toolkit
index 531fdad..36eb349 100644 (file)
@@ -97,6 +97,24 @@ public:
                    Vector<ScriptRun>& 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<Character>& text,
                       const Vector<ScriptRun>& scripts,
                       Vector<FontRun>& 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