00001 #ifndef _MYTHFONTMANAGER_H
00002 #define _MYTHFONTMANAGER_H
00003
00004 #include <QMultiHash>
00005 #include <QMutex>
00006 #include <QString>
00007
00008 #include "mythuiexp.h"
00009
00010 class MythFontReference;
00011 typedef QMultiHash<QString, MythFontReference*> FontPathToReference;
00012
00013 class MUI_PUBLIC MythFontManager
00014 {
00015 public:
00016 MythFontManager() {}
00017
00018 void LoadFonts(const QString &directory, const QString ®isteredFor);
00019 void ReleaseFonts(const QString ®isteredFor);
00020
00021 static MythFontManager *GetGlobalFontManager(void);
00022
00023 private:
00024 void LoadFonts(const QString &directory, const QString ®isteredFor,
00025 int *maxDirs);
00026 void LoadFontsFromDirectory(const QString &directory,
00027 const QString ®isteredFor);
00028 void LoadFontFile(const QString &fontPath, const QString ®isteredFor);
00029 bool RegisterFont(const QString &fontPath, const QString ®isteredFor,
00030 const int fontID = -1);
00031 bool IsFontFileLoaded(const QString &fontPath);
00032
00033 QMutex m_lock;
00034 FontPathToReference m_fontPathToReference;
00035
00036 };
00037
00038 MUI_PUBLIC MythFontManager *GetGlobalFontManager(void);
00039
00040 class MythFontReference
00041 {
00042 public:
00043 MythFontReference(const QString &fontPath, const QString ®isteredFor,
00044 const int fontID);
00045
00046 QString GetFontPath(void) const { return m_fontPath; }
00047 QString GetRegisteredFor(void) const { return m_registeredFor; }
00048 int GetFontID(void) const { return m_fontID; }
00049
00050 private:
00051 const QString m_fontPath;
00052 const QString m_registeredFor;
00053 const int m_fontID;
00054 };
00055
00056 #endif
00057
00058