namespace Dali
{
+namespace TextAbstraction
+{
+//Forward declaration
+class FontClient;
+}
+
namespace Toolkit
{
*
* @return @e true if the font is in the vector of valid fonts.
*/
- bool FindValidFont( FontId fontId ) const;
+ bool IsValidFont( FontId fontId ) const;
Vector<FontId> mValidFonts;
};
/**
+ * @brief Stores default font ids per script. It can be different sizes for a default font family.
+ */
+struct DefaultFonts
+{
+ /**
+ * Default constructor.
+ */
+ DefaultFonts()
+ : mFonts()
+ {}
+
+ /**
+ * Default destructor.
+ */
+ ~DefaultFonts()
+ {}
+
+ /**
+ * @brief Finds a default font for the given @p size.
+ *
+ * @param[in] fontClient The font client.
+ * @param[in] size The given size.
+ *
+ * @return The font id of a default font for the given @p size. If there isn't any font cached it returns 0.
+ */
+ FontId FindFont( TextAbstraction::FontClient& fontClient, PointSize26Dot6 size ) const;
+
+ Vector<FontId> mFonts;
+};
+
+/**
* @brief Multi-language support implementation. @see Text::MultilanguageSupport.
*/
class MultilanguageSupport : public BaseObject
* @copydoc Dali::MultilanguageSupport::SetScripts()
*/
void SetScripts( const Vector<Character>& text,
- const Vector<LineBreakInfo>& lineBreakInfo,
+ CharacterIndex startIndex,
+ Length numberOfCharacters,
Vector<ScriptRun>& scripts );
/**
- * @copydoc Dali::MultilanguageSupport::ReplaceScripts()
- */
- void ReplaceScripts( LogicalModel& model,
- CharacterIndex characterIndex,
- Length numberOfCharactersToRemove,
- Length numberOfCharactersToInsert );
-
- /**
- * @copydoc Dali::MultilanguageSupport::ValidateFonts( const Vector<Character>& text, const Vector<ScriptRun>& scripts, Vector<FontRun>& fonts )
+ * @copydoc Dali::MultilanguageSupport::ValidateFonts()
*/
void ValidateFonts( const Vector<Character>& text,
const Vector<ScriptRun>& scripts,
+ const Vector<FontDescriptionRun>& fontDescriptions,
+ FontId defaultFontId,
+ CharacterIndex startIndex,
+ Length numberOfCharacters,
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<DefaultFonts*> mDefaultFontPerScriptCache; ///< Caches default fonts for a script.
Vector<ValidateFontsPerScript*> mValidFontsPerScriptCache; ///< Caches valid fonts for a script.
};