1 // 2 // C++ Interface: fmfontstrings 3 // 4 // Description: 5 // 6 // 7 // Author: Pierre Marchand <pierremarc@oep-h.com>, (C) 2008 8 // 9 // Copyright: See COPYING file that comes with this distribution 10 // 11 // 12 13 #ifndef FMFONTSTRINGS_H 14 #define FMFONTSTRINGS_H 15 16 #include "fontitem.h" 17 #include "fmfontdb.h" 18 #include <QObject> 19 20 class FontStrings : public QObject 21 { 22 Q_OBJECT 23 FontStrings(); ~FontStrings()24 ~FontStrings() {} 25 static FontStrings* instance; 26 static FontStrings* getInstance(); 27 28 public: 29 enum PanoseKey 30 { 31 FamilyType = 0, 32 SerifStyle, 33 Weight, 34 Proportion, 35 Contrast, 36 StrokeVariation, 37 ArmStyle, 38 Letterform, 39 Midline, 40 XHeight, 41 InvalidPK = 9999999 42 43 }; 44 static PanoseKey firstPanoseKey(); 45 static PanoseKey nextPanoseKey(PanoseKey pk); 46 47 static const QMap<FMFontDb::InfoItem,QString>& Names(); 48 static const QMap< PanoseKey, QMap<int, QString> >& Panose(); 49 static const QString PanoseKeyName(PanoseKey pk); 50 static const QString PanoseKeyInfo(PanoseKey pk); 51 static const QString Encoding(FT_Encoding enc); 52 static const QMap<QString,QString>& Tables(); 53 static QString FsType(int fstype_part, bool shortString = true); 54 static QString UnicodeCategory(QChar::Category); 55 static QString scriptTagName(const QString& script); 56 57 private: 58 59 QMap<FMFontDb::InfoItem,QString> m_name; 60 void fillNamesMeaning(); 61 void fillCharsetMap(); 62 void fillPanoseMap(); 63 void panoseFromFile(const QString& path); 64 void fillTTTableList(); 65 void fillFSftypeMap(); 66 void fillUniCat(); 67 void fillScriptTagNames(); 68 69 QMap< PanoseKey, QMap<int, QString> > m_panoseMap; 70 QMap< PanoseKey, QString > m_panoseKeyName; 71 QMap< PanoseKey, QString > m_panoseKeyInfo; 72 QMap<FT_Encoding, QString> charsetMap; 73 QMap<QString,QString> tttableList;// <TT name, description> 74 QMap< int, QString > m_FsType; 75 QMap<QChar::Category, QString> unicodeCategory; 76 QMap<QString, QString> scriptTagNames; 77 }; 78 79 #endif 80 81