* Full author contact details are available in file CREDITS.
*/
-#ifndef LYX_FONTLOADER_H
-#define LYX_FONTLOADER_H
+#ifndef FONTLOADER_H
+#define FONTLOADER_H
-class LyXFont;
+#include "support/strfwd.h"
namespace lyx {
+
+class FontInfo;
+
namespace frontend {
+class FontMetrics;
+
/// Hold info about a particular font
class FontLoader
{
public:
///
- FontLoader() {}
- ///
- virtual ~FontLoader() {}
+ FontLoader();
+ /// Clears cache
+ ~FontLoader();
/// Update fonts after zoom, dpi, font names, or norm change
- virtual void update() = 0;
+ // (basically by deleting all cached values)
+ void update();
/// Is the given font available ?
- virtual bool available(LyXFont const & f) = 0;
+ bool available(FontInfo const & f);
+
+ /// Can the given symbol be displayed in general?
+ bool canBeDisplayed(char_type c);
+
+ /// Get the Font metrics for this FontInfo
+ FontMetrics const & metrics(FontInfo const & f);
};
+
} // namespace frontend
+
+/// Implementation is in Application.cpp
+extern frontend::FontLoader & theFontLoader();
+
} // namespace lyx
-#endif // QFONT_LOADER_H
+#endif // FONTLOADER_H