00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _STELFONTMGR_HPP_
00020 #define _STELFONTMGR_HPP_
00021
00022 #include <map>
00023 #include <QString>
00024
00025 class StelFont;
00026
00031 class StelFontMgr
00032 {
00033 public:
00034 StelFontMgr();
00035 ~StelFontMgr();
00036
00040 StelFont& getStandardFont(const QString& langageName, double size=12.);
00041
00045 StelFont& getFixedFont(const QString& langageName, double size=12.);
00046
00047 private:
00050 class FontForLanguage
00051 {
00052 public:
00053 QString langageName;
00054 QString fontFileName;
00055 double fontScale;
00056 QString fixedFontFileName;
00057 double fixedFontScale;
00058 bool operator == (const FontForLanguage& f) const;
00059 };
00060
00063 class LoadedFont
00064 {
00065 public:
00066 LoadedFont(const QString& fileName, int size);
00067 QString fileName;
00068 int size;
00069 };
00070
00073 struct ltLoadedFont
00074 {
00075 bool operator()(const LoadedFont l1, const LoadedFont l2) const
00076 {
00077 return (l1.fileName<l2.fileName || (l1.fileName==l2.fileName && l1.size<l2.size));
00078 }
00079 };
00080
00082 FontForLanguage& getFontForLanguage(const QString& langageName);
00083
00085 void loadFontForLanguage(const QString& fontMapFile);
00086
00088 std::map<QString, FontForLanguage> fontMapping;
00089
00091 std::map<LoadedFont, StelFont*, ltLoadedFont> loadedFonts;
00092 };
00093
00094 #endif // _STELFONTMGR_HPP_