+ * @brief Stores default font ids per script. It can be different sizes for a default font family.
+ */
+struct DefaultFonts
+{
+ struct CacheItem
+ {
+ TextAbstraction::FontDescription description;
+ FontId fontId;
+ };
+
+ /**
+ * 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] description The font's description.
+ * @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,
+ const TextAbstraction::FontDescription& description,
+ PointSize26Dot6 size ) const;
+
+ void Cache( const TextAbstraction::FontDescription& description, FontId fontId );
+
+ std::vector<CacheItem> mFonts;
+};
+
+/**